@wordpress/block-library 9.48.0 → 9.48.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 (519) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/build/columns/transforms.cjs +65 -0
  3. package/build/columns/transforms.cjs.map +2 -2
  4. package/build/gallery/edit.cjs +212 -331
  5. package/build/gallery/edit.cjs.map +2 -2
  6. package/build/gallery/transforms.cjs +43 -0
  7. package/build/gallery/transforms.cjs.map +2 -2
  8. package/build/heading/edit.cjs +0 -1
  9. package/build/heading/edit.cjs.map +2 -2
  10. package/build/list/edit.cjs +1 -8
  11. package/build/list/edit.cjs.map +2 -2
  12. package/build/list/ordered-list-settings.cjs +1 -44
  13. package/build/list/ordered-list-settings.cjs.map +2 -2
  14. package/build/list-item/hooks/use-merge.cjs +47 -24
  15. package/build/list-item/hooks/use-merge.cjs.map +2 -2
  16. package/build/navigation/edit/index.cjs +15 -26
  17. package/build/navigation/edit/index.cjs.map +2 -2
  18. package/build/navigation-link/edit.cjs +0 -1
  19. package/build/navigation-link/edit.cjs.map +2 -2
  20. package/build/navigation-submenu/edit.cjs +2 -1
  21. package/build/navigation-submenu/edit.cjs.map +2 -2
  22. package/build/paragraph/deprecated.cjs +1 -0
  23. package/build/paragraph/deprecated.cjs.map +2 -2
  24. package/build/paragraph/edit.cjs +10 -1
  25. package/build/paragraph/edit.cjs.map +3 -3
  26. package/build/playlist/block.json +12 -0
  27. package/build/playlist/edit.cjs +27 -1
  28. package/build/playlist/edit.cjs.map +2 -2
  29. package/build/playlist/save.cjs +8 -1
  30. package/build/playlist/save.cjs.map +2 -2
  31. package/build/playlist/view.cjs +1 -0
  32. package/build/playlist/view.cjs.map +2 -2
  33. package/build/post-time-to-read/index.cjs +1 -1
  34. package/build/post-time-to-read/index.cjs.map +2 -2
  35. package/build/post-time-to-read/variations.cjs +1 -1
  36. package/build/post-time-to-read/variations.cjs.map +2 -2
  37. package/build/pullquote/edit.cjs +2 -7
  38. package/build/pullquote/edit.cjs.map +2 -2
  39. package/build/quote/edit.cjs +4 -9
  40. package/build/quote/edit.cjs.map +2 -2
  41. package/build/shortcode/transforms.cjs +2 -2
  42. package/build/shortcode/transforms.cjs.map +2 -2
  43. package/build/utils/waveform-player.cjs +42 -9
  44. package/build/utils/waveform-player.cjs.map +2 -2
  45. package/build/utils/waveform-utils.cjs +6 -4
  46. package/build/utils/waveform-utils.cjs.map +2 -2
  47. package/build/video/edit-common-settings.cjs +3 -6
  48. package/build/video/edit-common-settings.cjs.map +2 -2
  49. package/build-module/columns/transforms.mjs +65 -0
  50. package/build-module/columns/transforms.mjs.map +2 -2
  51. package/build-module/gallery/edit.mjs +214 -334
  52. package/build-module/gallery/edit.mjs.map +2 -2
  53. package/build-module/gallery/transforms.mjs +43 -0
  54. package/build-module/gallery/transforms.mjs.map +2 -2
  55. package/build-module/heading/edit.mjs +1 -2
  56. package/build-module/heading/edit.mjs.map +2 -2
  57. package/build-module/list/edit.mjs +2 -9
  58. package/build-module/list/edit.mjs.map +2 -2
  59. package/build-module/list/ordered-list-settings.mjs +1 -45
  60. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  61. package/build-module/list-item/hooks/use-merge.mjs +48 -25
  62. package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
  63. package/build-module/navigation/edit/index.mjs +16 -33
  64. package/build-module/navigation/edit/index.mjs.map +2 -2
  65. package/build-module/navigation-link/edit.mjs +0 -1
  66. package/build-module/navigation-link/edit.mjs.map +2 -2
  67. package/build-module/navigation-submenu/edit.mjs +2 -1
  68. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  69. package/build-module/paragraph/deprecated.mjs +1 -0
  70. package/build-module/paragraph/deprecated.mjs.map +2 -2
  71. package/build-module/paragraph/edit.mjs +12 -2
  72. package/build-module/paragraph/edit.mjs.map +2 -2
  73. package/build-module/playlist/block.json +12 -0
  74. package/build-module/playlist/edit.mjs +27 -1
  75. package/build-module/playlist/edit.mjs.map +2 -2
  76. package/build-module/playlist/save.mjs +8 -1
  77. package/build-module/playlist/save.mjs.map +2 -2
  78. package/build-module/playlist/view.mjs +1 -0
  79. package/build-module/playlist/view.mjs.map +2 -2
  80. package/build-module/post-time-to-read/index.mjs +1 -1
  81. package/build-module/post-time-to-read/index.mjs.map +2 -2
  82. package/build-module/post-time-to-read/variations.mjs +2 -2
  83. package/build-module/post-time-to-read/variations.mjs.map +2 -2
  84. package/build-module/pullquote/edit.mjs +2 -7
  85. package/build-module/pullquote/edit.mjs.map +2 -2
  86. package/build-module/quote/edit.mjs +5 -10
  87. package/build-module/quote/edit.mjs.map +2 -2
  88. package/build-module/shortcode/transforms.mjs +2 -2
  89. package/build-module/shortcode/transforms.mjs.map +2 -2
  90. package/build-module/utils/waveform-player.mjs +44 -11
  91. package/build-module/utils/waveform-player.mjs.map +2 -2
  92. package/build-module/utils/waveform-utils.mjs +6 -4
  93. package/build-module/utils/waveform-utils.mjs.map +2 -2
  94. package/build-module/video/edit-common-settings.mjs +4 -7
  95. package/build-module/video/edit-common-settings.mjs.map +2 -2
  96. package/build-style/comment-template/style-rtl.css +1 -0
  97. package/build-style/comment-template/style.css +1 -0
  98. package/build-style/common-rtl.css +30 -10
  99. package/build-style/common.css +30 -10
  100. package/build-style/cover/style-rtl.css +2 -1
  101. package/build-style/cover/style.css +2 -1
  102. package/build-style/editor-rtl.css +22 -11
  103. package/build-style/editor.css +22 -11
  104. package/build-style/form-input/style-rtl.css +2 -0
  105. package/build-style/form-input/style.css +2 -0
  106. package/build-style/gallery/style-rtl.css +4 -2
  107. package/build-style/gallery/style.css +4 -2
  108. package/build-style/media-text/style-rtl.css +2 -1
  109. package/build-style/media-text/style.css +2 -1
  110. package/build-style/playlist/style-rtl.css +3 -0
  111. package/build-style/playlist/style.css +3 -0
  112. package/build-style/query/editor-rtl.css +8 -4
  113. package/build-style/query/editor.css +8 -4
  114. package/build-style/read-more/style-rtl.css +1 -0
  115. package/build-style/read-more/style.css +1 -0
  116. package/build-style/reset-rtl.css +3 -1
  117. package/build-style/reset.css +3 -1
  118. package/build-style/search/style-rtl.css +3 -1
  119. package/build-style/search/style.css +3 -1
  120. package/build-style/site-logo/editor-rtl.css +2 -1
  121. package/build-style/site-logo/editor.css +2 -1
  122. package/build-style/style-rtl.css +53 -17
  123. package/build-style/style.css +53 -17
  124. package/build-style/tab/style-rtl.css +3 -1
  125. package/build-style/tab/style.css +3 -1
  126. package/build-style/template-part/editor-rtl.css +8 -4
  127. package/build-style/template-part/editor.css +8 -4
  128. package/build-style/video/style-rtl.css +2 -1
  129. package/build-style/video/style.css +2 -1
  130. package/package.json +49 -45
  131. package/src/accordion/README.md +97 -0
  132. package/src/accordion-heading/README.md +81 -0
  133. package/src/accordion-item/README.md +85 -0
  134. package/src/accordion-panel/README.md +74 -0
  135. package/src/archives/README.md +56 -0
  136. package/src/audio/README.md +55 -0
  137. package/src/avatar/README.md +74 -0
  138. package/src/block/README.md +56 -0
  139. package/src/breadcrumbs/README.md +67 -0
  140. package/src/button/README.md +93 -0
  141. package/src/buttons/README.md +80 -0
  142. package/src/calendar/README.md +51 -0
  143. package/src/categories/README.md +69 -0
  144. package/src/code/README.md +55 -0
  145. package/src/column/README.md +72 -0
  146. package/src/columns/README.md +90 -0
  147. package/src/columns/test/transforms.js +164 -0
  148. package/src/columns/transforms.js +74 -0
  149. package/src/comment-author-avatar/README.md +63 -0
  150. package/src/comment-author-name/README.md +67 -0
  151. package/src/comment-content/README.md +61 -0
  152. package/src/comment-date/README.md +67 -0
  153. package/src/comment-edit-link/README.md +67 -0
  154. package/src/comment-reply-link/README.md +63 -0
  155. package/src/comment-template/README.md +60 -0
  156. package/src/comments/README.md +88 -0
  157. package/src/comments-pagination/README.md +77 -0
  158. package/src/comments-pagination-next/README.md +64 -0
  159. package/src/comments-pagination-numbers/README.md +64 -0
  160. package/src/comments-pagination-previous/README.md +64 -0
  161. package/src/comments-title/README.md +70 -0
  162. package/src/common.scss +63 -10
  163. package/src/cover/README.md +111 -0
  164. package/src/details/README.md +65 -0
  165. package/src/embed/README.md +56 -0
  166. package/src/file/README.md +60 -0
  167. package/src/footnotes/README.md +64 -0
  168. package/src/form/README.md +90 -0
  169. package/src/form-input/README.md +74 -0
  170. package/src/form-submission-notification/README.md +50 -0
  171. package/src/form-submit-button/README.md +54 -0
  172. package/src/freeform/README.md +49 -0
  173. package/src/gallery/README.md +115 -0
  174. package/src/gallery/edit.js +213 -350
  175. package/src/gallery/test/transforms.js +155 -0
  176. package/src/gallery/transforms.js +47 -0
  177. package/src/group/README.md +80 -0
  178. package/src/heading/README.md +60 -0
  179. package/src/heading/edit.js +1 -2
  180. package/src/home-link/README.md +66 -0
  181. package/src/home-link/index.php +3 -15
  182. package/src/html/README.md +48 -0
  183. package/src/icon/README.md +63 -0
  184. package/src/image/README.md +102 -0
  185. package/src/image/index.php +4 -4
  186. package/src/latest-comments/README.md +57 -0
  187. package/src/latest-posts/README.md +71 -0
  188. package/src/list/README.md +70 -0
  189. package/src/list/edit.js +2 -9
  190. package/src/list/ordered-list-settings.js +46 -92
  191. package/src/list-item/README.md +71 -0
  192. package/src/list-item/hooks/use-merge.js +53 -46
  193. package/src/loginout/README.md +56 -0
  194. package/src/math/README.md +50 -0
  195. package/src/media-text/README.md +92 -0
  196. package/src/missing/README.md +55 -0
  197. package/src/more/README.md +49 -0
  198. package/src/navigation/README.md +115 -0
  199. package/src/navigation/edit/index.js +10 -30
  200. package/src/navigation-link/README.md +93 -0
  201. package/src/navigation-link/edit.js +0 -1
  202. package/src/navigation-link/index.php +1 -15
  203. package/src/navigation-overlay-close/README.md +48 -0
  204. package/src/navigation-submenu/README.md +84 -0
  205. package/src/navigation-submenu/edit.js +1 -0
  206. package/src/navigation-submenu/index.php +1 -17
  207. package/src/nextpage/README.md +50 -0
  208. package/src/page-list/README.md +84 -0
  209. package/src/page-list/index.php +3 -15
  210. package/src/page-list-item/README.md +77 -0
  211. package/src/paragraph/README.md +70 -0
  212. package/src/paragraph/deprecated.js +1 -0
  213. package/src/paragraph/edit.js +13 -1
  214. package/src/pattern/README.md +45 -0
  215. package/src/playlist/README.md +86 -0
  216. package/src/playlist/block.json +12 -0
  217. package/src/playlist/edit.js +27 -0
  218. package/src/playlist/index.php +10 -3
  219. package/src/playlist/save.js +9 -1
  220. package/src/playlist/style.scss +7 -0
  221. package/src/playlist/view.js +1 -0
  222. package/src/playlist-track/README.md +69 -0
  223. package/src/post-author/README.md +78 -0
  224. package/src/post-author-biography/README.md +59 -0
  225. package/src/post-author-name/README.md +63 -0
  226. package/src/post-author-name/index.php +1 -1
  227. package/src/post-comment/README.md +61 -0
  228. package/src/post-comments-count/README.md +58 -0
  229. package/src/post-comments-form/README.md +59 -0
  230. package/src/post-comments-link/README.md +60 -0
  231. package/src/post-content/README.md +71 -0
  232. package/src/post-date/README.md +65 -0
  233. package/src/post-date/index.php +1 -1
  234. package/src/post-excerpt/README.md +66 -0
  235. package/src/post-featured-image/README.md +85 -0
  236. package/src/post-featured-image/index.php +1 -1
  237. package/src/post-navigation-link/README.md +63 -0
  238. package/src/post-template/README.md +71 -0
  239. package/src/post-terms/README.md +65 -0
  240. package/src/post-time-to-read/README.md +63 -0
  241. package/src/post-time-to-read/index.js +1 -1
  242. package/src/post-time-to-read/variations.js +2 -2
  243. package/src/post-title/README.md +69 -0
  244. package/src/preformatted/README.md +50 -0
  245. package/src/pullquote/README.md +64 -0
  246. package/src/pullquote/edit.js +1 -7
  247. package/src/query/README.md +64 -0
  248. package/src/query-no-results/README.md +65 -0
  249. package/src/query-pagination/README.md +79 -0
  250. package/src/query-pagination-next/README.md +67 -0
  251. package/src/query-pagination-numbers/README.md +65 -0
  252. package/src/query-pagination-previous/README.md +67 -0
  253. package/src/query-title/README.md +65 -0
  254. package/src/query-total/README.md +66 -0
  255. package/src/quote/README.md +75 -0
  256. package/src/quote/edit.js +3 -9
  257. package/src/read-more/README.md +61 -0
  258. package/src/read-more/index.php +2 -2
  259. package/src/rss/README.md +62 -0
  260. package/src/search/README.md +66 -0
  261. package/src/separator/README.md +62 -0
  262. package/src/shortcode/README.md +44 -0
  263. package/src/shortcode/transforms.js +2 -2
  264. package/src/site-logo/README.md +72 -0
  265. package/src/site-tagline/README.md +56 -0
  266. package/src/site-title/README.md +57 -0
  267. package/src/social-link/README.md +64 -0
  268. package/src/social-links/README.md +98 -0
  269. package/src/spacer/README.md +53 -0
  270. package/src/tab/README.md +69 -0
  271. package/src/tab-list/README.md +79 -0
  272. package/src/tab-panel/README.md +75 -0
  273. package/src/tab-panels/README.md +75 -0
  274. package/src/table/README.md +71 -0
  275. package/src/table-of-contents/README.md +61 -0
  276. package/src/tabs/README.md +83 -0
  277. package/src/tag-cloud/README.md +62 -0
  278. package/src/template-part/README.md +48 -0
  279. package/src/term-count/README.md +59 -0
  280. package/src/term-description/README.md +60 -0
  281. package/src/term-name/README.md +65 -0
  282. package/src/term-template/README.md +65 -0
  283. package/src/terms-query/README.md +58 -0
  284. package/src/text-columns/README.md +51 -0
  285. package/src/utils/test/waveform-player.js +254 -0
  286. package/src/utils/waveform-player.js +90 -18
  287. package/src/utils/waveform-utils.js +15 -11
  288. package/src/verse/README.md +58 -0
  289. package/src/video/README.md +58 -0
  290. package/src/video/edit-common-settings.js +4 -7
  291. package/src/audio/edit.native.js +0 -250
  292. package/src/audio/style.native.scss +0 -13
  293. package/src/audio/test/__snapshots__/edit.native.js.snap +0 -546
  294. package/src/audio/test/__snapshots__/transforms.native.js.snap +0 -25
  295. package/src/audio/test/edit.native.js +0 -132
  296. package/src/audio/test/transforms.native.js +0 -43
  297. package/src/audio/transforms.native.js +0 -12
  298. package/src/block/edit-title.native.js +0 -67
  299. package/src/block/edit.native.js +0 -247
  300. package/src/block/editor.native.scss +0 -125
  301. package/src/block/test/__snapshots__/transforms.native.js.snap +0 -15
  302. package/src/block/test/edit.native.js +0 -262
  303. package/src/block/test/transforms.native.js +0 -40
  304. package/src/button/color-background.native.js +0 -41
  305. package/src/button/edit.native.js +0 -567
  306. package/src/button/editor.native.scss +0 -70
  307. package/src/button/rich-text.android.scss +0 -6
  308. package/src/button/rich-text.ios.scss +0 -6
  309. package/src/buttons/edit.native.js +0 -157
  310. package/src/buttons/editor.native.scss +0 -11
  311. package/src/buttons/test/__snapshots__/edit.native.js.snap +0 -99
  312. package/src/buttons/test/__snapshots__/transforms.native.js.snap +0 -31
  313. package/src/buttons/test/edit.native.js +0 -485
  314. package/src/buttons/test/transforms.native.js +0 -48
  315. package/src/buttons/transforms.native.js +0 -12
  316. package/src/code/edit.native.js +0 -70
  317. package/src/code/test/__snapshots__/edit.native.js.snap +0 -13
  318. package/src/code/test/edit.native.js +0 -65
  319. package/src/code/theme.native.scss +0 -22
  320. package/src/code/transforms.native.js +0 -12
  321. package/src/column/column-preview.native.js +0 -58
  322. package/src/column/edit.native.js +0 -273
  323. package/src/column/editor.native.scss +0 -75
  324. package/src/columns/columnCalculations.native.js +0 -178
  325. package/src/columns/edit.native.js +0 -507
  326. package/src/columns/editor.native.scss +0 -17
  327. package/src/columns/test/__snapshots__/edit.native.js.snap +0 -305
  328. package/src/columns/test/__snapshots__/transforms.native.js.snap +0 -61
  329. package/src/columns/test/edit.native.js +0 -496
  330. package/src/columns/test/transforms.native.js +0 -89
  331. package/src/columns/transforms.native.js +0 -12
  332. package/src/cover/controls.native.js +0 -307
  333. package/src/cover/edit.native.js +0 -708
  334. package/src/cover/focal-point-settings-button.native.js +0 -53
  335. package/src/cover/overlay-color-settings.native.js +0 -106
  336. package/src/cover/style.native.scss +0 -220
  337. package/src/cover/test/__snapshots__/edit.native.js.snap +0 -105
  338. package/src/cover/test/__snapshots__/transforms.native.js.snap +0 -73
  339. package/src/cover/test/edit.native.js +0 -701
  340. package/src/cover/test/transforms.native.js +0 -116
  341. package/src/cover/transforms.native.js +0 -12
  342. package/src/cover/use-cover-is-dark.native.js +0 -51
  343. package/src/embed/edit.native.js +0 -345
  344. package/src/embed/embed-controls.native.js +0 -65
  345. package/src/embed/embed-link-settings.native.js +0 -99
  346. package/src/embed/embed-loading.native.js +0 -29
  347. package/src/embed/embed-no-preview.native.js +0 -230
  348. package/src/embed/embed-placeholder.native.js +0 -178
  349. package/src/embed/embed-preview.native.js +0 -157
  350. package/src/embed/styles.native.scss +0 -196
  351. package/src/embed/test/__snapshots__/index.native.js.snap +0 -191
  352. package/src/embed/test/__snapshots__/transforms.native.js.snap +0 -23
  353. package/src/embed/test/index.native.js +0 -1125
  354. package/src/embed/test/transforms.native.js +0 -44
  355. package/src/embed/transforms.native.js +0 -12
  356. package/src/embed/wp-embed-preview.native.js +0 -80
  357. package/src/file/edit.native.js +0 -605
  358. package/src/file/style.native.scss +0 -79
  359. package/src/file/test/__snapshots__/edit.native.js.snap +0 -580
  360. package/src/file/test/__snapshots__/transforms.native.js.snap +0 -19
  361. package/src/file/test/edit.native.js +0 -93
  362. package/src/file/test/transforms.native.js +0 -43
  363. package/src/file/transforms.native.js +0 -12
  364. package/src/freeform/edit.native.js +0 -13
  365. package/src/freeform/test/__snapshots__/index.native.js.snap +0 -7
  366. package/src/freeform/test/__snapshots__/transforms.native.js.snap +0 -19
  367. package/src/freeform/test/index.native.js +0 -57
  368. package/src/freeform/test/transforms.native.js +0 -39
  369. package/src/gallery/gallery-styles.native.scss +0 -8
  370. package/src/gallery/gallery.native.js +0 -124
  371. package/src/gallery/styles.native.scss +0 -7
  372. package/src/gallery/test/__snapshots__/index.native.js.snap +0 -177
  373. package/src/gallery/test/__snapshots__/transforms.native.js.snap +0 -53
  374. package/src/gallery/test/helpers.native.js +0 -106
  375. package/src/gallery/test/index.native.js +0 -700
  376. package/src/gallery/test/transforms.native.js +0 -53
  377. package/src/gallery/test/use-get-media.native.js +0 -24
  378. package/src/gallery/transforms.native.js +0 -12
  379. package/src/gallery/use-get-media.native.js +0 -49
  380. package/src/group/edit.native.js +0 -137
  381. package/src/group/editor.native.scss +0 -56
  382. package/src/group/test/__snapshots__/edit.native.js.snap +0 -19
  383. package/src/group/test/__snapshots__/transforms.native.js.snap +0 -35
  384. package/src/group/test/edit.native.js +0 -100
  385. package/src/group/test/transforms.native.js +0 -73
  386. package/src/heading/edit.native.js +0 -159
  387. package/src/heading/test/__snapshots__/index.native.js.snap +0 -43
  388. package/src/heading/test/__snapshots__/transforms.native.js.snap +0 -47
  389. package/src/heading/test/index.native.js +0 -257
  390. package/src/heading/test/transforms.native.js +0 -46
  391. package/src/heading/transforms.native.js +0 -12
  392. package/src/html/transforms.native.js +0 -11
  393. package/src/image/edit.native.js +0 -959
  394. package/src/image/styles.native.scss +0 -70
  395. package/src/image/test/__snapshots__/transforms.native.js.snap +0 -49
  396. package/src/image/test/edit.native.js +0 -459
  397. package/src/image/test/transforms.native.js +0 -49
  398. package/src/image/transforms.native.js +0 -12
  399. package/src/index.native.js +0 -274
  400. package/src/latest-posts/edit.native.js +0 -294
  401. package/src/latest-posts/style.native.scss +0 -47
  402. package/src/latest-posts/test/__snapshots__/edit.native.js.snap +0 -3
  403. package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +0 -15
  404. package/src/latest-posts/test/edit.native.js +0 -49
  405. package/src/latest-posts/test/transforms.native.js +0 -61
  406. package/src/list/tag-name.native.js +0 -12
  407. package/src/list/test/__snapshots__/edit.native.js.snap +0 -121
  408. package/src/list/test/__snapshots__/transforms.native.js.snap +0 -85
  409. package/src/list/test/edit.native.js +0 -602
  410. package/src/list/test/transforms.native.js +0 -56
  411. package/src/list/transforms.native.js +0 -12
  412. package/src/list-item/edit.native.js +0 -175
  413. package/src/list-item/hooks/use-enter.native.js +0 -81
  414. package/src/list-item/icons.native.js +0 -34
  415. package/src/list-item/list-style-type.native.js +0 -146
  416. package/src/list-item/style.native.scss +0 -57
  417. package/src/media-text/edit.native.js +0 -417
  418. package/src/media-text/icon-retry.native.js +0 -11
  419. package/src/media-text/media-container.native.js +0 -393
  420. package/src/media-text/style.native.scss +0 -191
  421. package/src/media-text/test/__snapshots__/transforms.native.js.snap +0 -73
  422. package/src/media-text/test/edit.native.js +0 -58
  423. package/src/media-text/test/transforms.native.js +0 -116
  424. package/src/media-text/transforms.native.js +0 -12
  425. package/src/missing/edit.native.js +0 -294
  426. package/src/missing/style.native.scss +0 -79
  427. package/src/missing/test/__snapshots__/edit.native.js.snap +0 -110
  428. package/src/missing/test/edit-integration.native.js +0 -168
  429. package/src/missing/test/edit.native.js +0 -81
  430. package/src/more/edit.native.js +0 -36
  431. package/src/more/editor.native.scss +0 -21
  432. package/src/more/test/__snapshots__/edit.native.js.snap +0 -7
  433. package/src/more/test/__snapshots__/transforms.native.js.snap +0 -19
  434. package/src/more/test/edit.native.js +0 -41
  435. package/src/more/test/transforms.native.js +0 -42
  436. package/src/more/transforms.native.js +0 -12
  437. package/src/navigation-link/shared/build-css-font-sizes.php +0 -43
  438. package/src/nextpage/edit.native.js +0 -58
  439. package/src/nextpage/editor.native.scss +0 -21
  440. package/src/nextpage/test/__snapshots__/transforms.native.js.snap +0 -19
  441. package/src/nextpage/test/transforms.native.js +0 -42
  442. package/src/nextpage/transforms.native.js +0 -12
  443. package/src/paragraph/edit.native.js +0 -116
  444. package/src/paragraph/test/__snapshots__/edit.native.js.snap +0 -88
  445. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +0 -65
  446. package/src/paragraph/test/edit.native.js +0 -999
  447. package/src/paragraph/test/transforms.native.js +0 -51
  448. package/src/paragraph/transforms.native.js +0 -12
  449. package/src/preformatted/edit.native.js +0 -48
  450. package/src/preformatted/styles.native.scss +0 -30
  451. package/src/preformatted/test/__snapshots__/edit.native.js.snap +0 -95
  452. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +0 -37
  453. package/src/preformatted/test/edit.native.js +0 -111
  454. package/src/preformatted/test/transforms.native.js +0 -47
  455. package/src/preformatted/transforms.native.js +0 -12
  456. package/src/pullquote/blockquote.native.js +0 -39
  457. package/src/pullquote/blockquote.native.scss +0 -8
  458. package/src/pullquote/edit.native.js +0 -128
  459. package/src/pullquote/figure.native.js +0 -33
  460. package/src/pullquote/figure.native.scss +0 -16
  461. package/src/pullquote/test/__snapshots__/transforms.native.js.snap +0 -47
  462. package/src/pullquote/test/edit.native.js +0 -73
  463. package/src/pullquote/test/transforms.native.js +0 -46
  464. package/src/pullquote/transforms.native.js +0 -12
  465. package/src/quote/test/__snapshots__/transforms.native.js.snap +0 -49
  466. package/src/quote/test/edit.native.js +0 -94
  467. package/src/quote/test/transforms.native.js +0 -69
  468. package/src/quote/transforms.native.js +0 -12
  469. package/src/search/edit.native.js +0 -486
  470. package/src/search/style.native.scss +0 -99
  471. package/src/search/test/__snapshots__/edit.native.js.snap +0 -827
  472. package/src/search/test/__snapshots__/transforms.native.js.snap +0 -15
  473. package/src/search/test/edit.native.js +0 -170
  474. package/src/search/test/transforms.native.js +0 -40
  475. package/src/separator/separator-settings.native.js +0 -3
  476. package/src/separator/test/__snapshots__/edit.native.js.snap +0 -7
  477. package/src/separator/test/__snapshots__/transforms.native.js.snap +0 -25
  478. package/src/separator/test/edit.native.js +0 -41
  479. package/src/separator/test/transforms.native.js +0 -42
  480. package/src/separator/transforms.native.js +0 -12
  481. package/src/shortcode/edit.native.js +0 -77
  482. package/src/shortcode/style.native.scss +0 -44
  483. package/src/shortcode/test/__snapshots__/edit.native.js.snap +0 -9
  484. package/src/shortcode/test/__snapshots__/transforms.native.js.snap +0 -19
  485. package/src/shortcode/test/edit.native.js +0 -70
  486. package/src/shortcode/test/transforms.native.js +0 -42
  487. package/src/shortcode/transforms.native.js +0 -12
  488. package/src/social-link/edit.native.js +0 -219
  489. package/src/social-link/editor.native.scss +0 -18
  490. package/src/social-links/edit.native.js +0 -147
  491. package/src/social-links/editor.native.scss +0 -25
  492. package/src/social-links/test/__snapshots__/edit.native.js.snap +0 -57
  493. package/src/social-links/test/__snapshots__/transforms.native.js.snap +0 -31
  494. package/src/social-links/test/edit.native.js +0 -266
  495. package/src/social-links/test/transforms.native.js +0 -53
  496. package/src/spacer/controls.native.js +0 -86
  497. package/src/spacer/edit.native.js +0 -110
  498. package/src/spacer/editor.native.scss +0 -18
  499. package/src/spacer/save.native.js +0 -18
  500. package/src/spacer/test/__snapshots__/index.native.js.snap +0 -43
  501. package/src/spacer/test/__snapshots__/transforms.native.js.snap +0 -25
  502. package/src/spacer/test/index.native.js +0 -257
  503. package/src/spacer/test/transforms.native.js +0 -42
  504. package/src/table/transforms.native.js +0 -11
  505. package/src/text-columns/transforms.native.js +0 -12
  506. package/src/utils/init-block.native.js +0 -40
  507. package/src/utils/transformation-categories.native.js +0 -47
  508. package/src/verse/test/__snapshots__/edit.native.js.snap +0 -13
  509. package/src/verse/test/__snapshots__/transforms.native.js.snap +0 -31
  510. package/src/verse/test/edit.native.js +0 -118
  511. package/src/verse/test/transforms.native.js +0 -46
  512. package/src/verse/transforms.native.js +0 -12
  513. package/src/video/edit.native.js +0 -406
  514. package/src/video/icon-retry.native.js +0 -11
  515. package/src/video/style.native.scss +0 -81
  516. package/src/video/test/__snapshots__/transforms.native.js.snap +0 -41
  517. package/src/video/test/edit.native.js +0 -53
  518. package/src/video/test/transforms.native.js +0 -49
  519. package/src/video/transforms.native.js +0 -12
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/gallery/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarDropdownMenu,\n\tPanelBody,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n\tuseSettings,\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 { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tlink as linkIcon,\n\tcustomLink,\n\timage as imageIcon,\n\tlinkOff,\n\tfullscreen,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\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\tLINK_DESTINATION_LIGHTBOX,\n\tDEFAULT_MEDIA_SIZE_SLUG,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst LINK_OPTIONS = [\n\t{\n\t\ticon: customLink,\n\t\tlabel: __( 'Link images to attachment pages' ),\n\t\tvalue: LINK_DESTINATION_ATTACHMENT,\n\t\tnoticeText: __( 'Attachment Pages' ),\n\t},\n\t{\n\t\ticon: imageIcon,\n\t\tlabel: __( 'Link images to media files' ),\n\t\tvalue: LINK_DESTINATION_MEDIA,\n\t\tnoticeText: __( 'Media Files' ),\n\t},\n\t{\n\t\ticon: fullscreen,\n\t\tlabel: __( 'Enlarge on click' ),\n\t\tvalue: LINK_DESTINATION_LIGHTBOX,\n\t\tnoticeText: __( 'Lightbox effect' ),\n\t\tinfoText: __( 'Scale images with a lightbox effect' ),\n\t},\n\t{\n\t\ticon: linkOff,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tnoticeText: __( 'None' ),\n\t},\n];\nconst NAVIGATION_BUTTON_TYPE_OPTIONS = [\n\t{\n\t\tlabel: __( 'Icon' ),\n\t\tvalue: 'icon',\n\t},\n\t{\n\t\tlabel: __( 'Text' ),\n\t\tvalue: 'text',\n\t},\n\t{\n\t\tlabel: __( 'Both' ),\n\t\tvalue: 'both',\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'Add media' )\n\t: __( 'Drag and drop images, upload, or choose from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nconst DEFAULT_BLOCK = { name: 'core/image' };\nconst EMPTY_ARRAY = [];\n\nexport default function GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t\tonFocus,\n\t} = props;\n\n\tconst [ lightboxSetting, defaultRatios, themeRatios, showDefaultRatios ] =\n\t\tuseSettings(\n\t\t\t'blocks.core/image.lightbox',\n\t\t\t'dimensions.aspectRatios.default',\n\t\t\t'dimensions.aspectRatios.theme',\n\t\t\t'dimensions.defaultAspectRatios'\n\t\t);\n\n\tconst linkOptions = ! lightboxSetting?.allowEditing\n\t\t? LINK_OPTIONS.filter(\n\t\t\t\t( option ) => option.value !== LINK_DESTINATION_LIGHTBOX\n\t\t )\n\t\t: LINK_OPTIONS;\n\n\tconst {\n\t\tnavigationButtonType,\n\t\tcolumns,\n\t\timageCrop,\n\t\trandomOrder,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst {\n\t\tgetBlock,\n\t\tgetSettings,\n\t\tinnerBlockImages,\n\t\tblockWasJustInserted,\n\t\tmultiGallerySelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\twasBlockJustInserted,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tinnerBlockImages:\n\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\tblockWasJustInserted: wasBlockJustInserted(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'inserter_menu'\n\t\t\t\t),\n\t\t\t\tmultiGallerySelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t),\n\t\t\t};\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\t// Check if there is at least one image with lightbox enabled\n\tconst hasLightboxImages = lightboxSetting?.enabled\n\t\t? images.filter(\n\t\t\t\t( image ) =>\n\t\t\t\t\timage.attributes?.lightbox?.enabled === undefined ||\n\t\t\t\t\timage.attributes?.lightbox?.enabled === true\n\t\t ).length > 0\n\t\t: images.filter( ( image ) => image.attributes.lightbox?.enabled )\n\t\t\t\t.length > 0;\n\n\tconst themeOptions = themeRatios?.map( ( { name, ratio } ) => ( {\n\t\tlabel: name,\n\t\tvalue: ratio,\n\t} ) );\n\tconst defaultOptions = defaultRatios?.map( ( { name, ratio } ) => ( {\n\t\tlabel: name,\n\t\tvalue: ratio,\n\t} ) );\n\tconst aspectRatioOptions = [\n\t\t{\n\t\t\tlabel: _x(\n\t\t\t\t'Original',\n\t\t\t\t'Aspect ratio option for dimensions control'\n\t\t\t),\n\t\t\tvalue: 'auto',\n\t\t},\n\t\t...( showDefaultRatios ? defaultOptions || [] : [] ),\n\t\t...( themeOptions || [] ),\n\t];\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( 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 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} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption:\n\t\t\t\timageAttributes.caption.length > 0\n\t\t\t\t\t? imageAttributes.caption\n\t\t\t\t\t: image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t\taspectRatio: aspectRatio === 'auto' ? undefined : aspectRatio,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.blob\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 {\n\t\t\t\t\t\t\tblob: 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\tcreateErrorNotice(\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', type: 'snackbar' }\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 {\n\t\t\t\t\t\tblob: file.blob || 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\tblob: image.blob,\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\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\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? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue,\n\t\t\t\tfalse,\n\t\t\t\tblock.attributes,\n\t\t\t\tlightboxSetting\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\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.noticeText\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 toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\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, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\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? imageData.find( ( { id } ) => 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, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\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 ?? newSizeSlug\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\tfunction setAspectRatio( value ) {\n\t\tsetAttributes( { aspectRatio: value } );\n\n\t\t// Update all inner image blocks with the new aspect ratio\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = {\n\t\t\t\taspectRatio: value === 'auto' ? undefined : value,\n\t\t\t};\n\t\t} );\n\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\n\t\tconst aspectRatioText = aspectRatioOptions.find(\n\t\t\t( option ) => option.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: aspect ratio setting */\n\t\t\t\t__( 'All gallery images updated to aspect ratio: %s' ),\n\t\t\t\taspectRatioText?.label || value\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-aspectRatio',\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( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && blockWasJustInserted,\n\t\t\tonFocus,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\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{ Platform.isWeb && (\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tnavigationButtonType: 'icon',\n\t\t\t\t\t\t\t\tcolumns: undefined,\n\t\t\t\t\t\t\t\timageCrop: true,\n\t\t\t\t\t\t\t\trandomOrder: false,\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\tsetAspectRatio( 'auto' );\n\n\t\t\t\t\t\t\tif ( sizeSlug !== DEFAULT_MEDIA_SIZE_SLUG ) {\n\t\t\t\t\t\t\t\tupdateImagesSize( DEFAULT_MEDIA_SIZE_SLUG );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( linkTarget ) {\n\t\t\t\t\t\t\t\ttoggleOpenInNewTab( false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t\t!! columns && columns !== images.length\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetColumnsNumber( undefined )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t\t\t: defaultColumnsNumber(\n\t\t\t\t\t\t\t\t\t\t\t\t\timages.length\n\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tmax={ Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_COLUMNS,\n\t\t\t\t\t\t\t\t\t\timages.length\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t\tsizeSlug !== DEFAULT_MEDIA_SIZE_SLUG\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tupdateImagesSize( DEFAULT_MEDIA_SIZE_SLUG )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\t\thasValue={ () => ! imageCrop }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { imageCrop: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\t\thasValue={ () => !! randomOrder }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { randomOrder: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\t\thasValue={ () => !! linkTarget }\n\t\t\t\t\t\t\t\tonDeselect={ () => toggleOpenInNewTab( false ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ aspectRatioOptions.length > 1 && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t\t!! aspectRatio && aspectRatio !== 'auto'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\t\t\t\tonDeselect={ () => setAspectRatio( 'auto' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Set a consistent aspect ratio for all images in the gallery.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\t\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\t\t\t\t\t\tonChange={ setAspectRatio }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Navigation button type' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => navigationButtonType !== 'icon' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tnavigationButtonType: 'icon',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasLightboxImages && (\n\t\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Navigation button type' ) }\n\t\t\t\t\t\t\t\t\tvalue={ navigationButtonType }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tnavigationButtonType: value,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Adjust the appearance of buttons in the lightbox.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ NAVIGATION_BUTTON_TYPE_OPTIONS.map(\n\t\t\t\t\t\t\t\t\t\t( option ) => (\n\t\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t) }\n\t\t\t\t{ Platform.isNative && (\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ aspectRatioOptions.length > 1 && (\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Aspect Ratio' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Set a consistent aspect ratio for all images in the gallery.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\t\t\t\t\tonChange={ setAspectRatio }\n\t\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ Platform.isWeb ? (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t{ linkOptions.map( ( linkItem ) => {\n\t\t\t\t\t\t\t\t\tconst isOptionSelected =\n\t\t\t\t\t\t\t\t\t\tlinkTo === linkItem.value;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ linkItem.value }\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isOptionSelected }\n\t\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisOptionSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ linkItem.icon }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetLinkTo( linkItem.value );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\tinfo={ linkItem.infoText }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ linkItem.label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</BlockControls>\n\t\t\t) : null }\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tlink as linkIcon,\n\tcustomLink,\n\timage as imageIcon,\n\tlinkOff,\n\tfullscreen,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\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\tLINK_DESTINATION_LIGHTBOX,\n\tDEFAULT_MEDIA_SIZE_SLUG,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst LINK_OPTIONS = [\n\t{\n\t\ticon: customLink,\n\t\tlabel: __( 'Link images to attachment pages' ),\n\t\tvalue: LINK_DESTINATION_ATTACHMENT,\n\t\tnoticeText: __( 'Attachment Pages' ),\n\t},\n\t{\n\t\ticon: imageIcon,\n\t\tlabel: __( 'Link images to media files' ),\n\t\tvalue: LINK_DESTINATION_MEDIA,\n\t\tnoticeText: __( 'Media Files' ),\n\t},\n\t{\n\t\ticon: fullscreen,\n\t\tlabel: __( 'Enlarge on click' ),\n\t\tvalue: LINK_DESTINATION_LIGHTBOX,\n\t\tnoticeText: __( 'Lightbox effect' ),\n\t\tinfoText: __( 'Scale images with a lightbox effect' ),\n\t},\n\t{\n\t\ticon: linkOff,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tnoticeText: __( 'None' ),\n\t},\n];\nconst NAVIGATION_BUTTON_TYPE_OPTIONS = [\n\t{\n\t\tlabel: __( 'Icon' ),\n\t\tvalue: 'icon',\n\t},\n\t{\n\t\tlabel: __( 'Text' ),\n\t\tvalue: 'text',\n\t},\n\t{\n\t\tlabel: __( 'Both' ),\n\t\tvalue: 'both',\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = __(\n\t'Drag and drop images, upload, or choose from your library.'\n);\n\nconst DEFAULT_BLOCK = { name: 'core/image' };\nconst EMPTY_ARRAY = [];\n\nexport default function GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t} = props;\n\n\tconst [ lightboxSetting, defaultRatios, themeRatios, showDefaultRatios ] =\n\t\tuseSettings(\n\t\t\t'blocks.core/image.lightbox',\n\t\t\t'dimensions.aspectRatios.default',\n\t\t\t'dimensions.aspectRatios.theme',\n\t\t\t'dimensions.defaultAspectRatios'\n\t\t);\n\n\tconst linkOptions = ! lightboxSetting?.allowEditing\n\t\t? LINK_OPTIONS.filter(\n\t\t\t\t( option ) => option.value !== LINK_DESTINATION_LIGHTBOX\n\t\t )\n\t\t: LINK_OPTIONS;\n\n\tconst {\n\t\tnavigationButtonType,\n\t\tcolumns,\n\t\timageCrop,\n\t\trandomOrder,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, innerBlockImages, multiGallerySelection } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockName,\n\t\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\t\tgetSettings: _getSettings,\n\t\t\t\t\tgetBlock: _getBlock,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\t\treturn {\n\t\t\t\t\tgetBlock: _getBlock,\n\t\t\t\t\tgetSettings: _getSettings,\n\t\t\t\t\tinnerBlockImages:\n\t\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\t\tmultiGallerySelection:\n\t\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\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\t// Check if there is at least one image with lightbox enabled\n\tconst hasLightboxImages = lightboxSetting?.enabled\n\t\t? images.filter(\n\t\t\t\t( image ) =>\n\t\t\t\t\timage.attributes?.lightbox?.enabled === undefined ||\n\t\t\t\t\timage.attributes?.lightbox?.enabled === true\n\t\t ).length > 0\n\t\t: images.filter( ( image ) => image.attributes.lightbox?.enabled )\n\t\t\t\t.length > 0;\n\n\tconst themeOptions = themeRatios?.map( ( { name, ratio } ) => ( {\n\t\tlabel: name,\n\t\tvalue: ratio,\n\t} ) );\n\tconst defaultOptions = defaultRatios?.map( ( { name, ratio } ) => ( {\n\t\tlabel: name,\n\t\tvalue: ratio,\n\t} ) );\n\tconst aspectRatioOptions = [\n\t\t{\n\t\t\tlabel: _x(\n\t\t\t\t'Original',\n\t\t\t\t'Aspect ratio option for dimensions control'\n\t\t\t),\n\t\t\tvalue: 'auto',\n\t\t},\n\t\t...( showDefaultRatios ? defaultOptions || [] : [] ),\n\t\t...( themeOptions || [] ),\n\t];\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( 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 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} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption:\n\t\t\t\timageAttributes.caption.length > 0\n\t\t\t\t\t? imageAttributes.caption\n\t\t\t\t\t: image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t\taspectRatio: aspectRatio === 'auto' ? undefined : aspectRatio,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\tconst mediaTypeSelector = file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.blob\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 {\n\t\t\t\t\t\t\tblob: 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\tcreateErrorNotice(\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', type: 'snackbar' }\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 {\n\t\t\t\t\t\tblob: file.blob || 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\tblob: image.blob,\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\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\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? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue,\n\t\t\t\tfalse,\n\t\t\t\tblock.attributes,\n\t\t\t\tlightboxSetting\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\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.noticeText\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 toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\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, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\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? imageData.find( ( { id } ) => 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, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\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 ?? newSizeSlug\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\tfunction setAspectRatio( value ) {\n\t\tsetAttributes( { aspectRatio: value } );\n\n\t\t// Update all inner image blocks with the new aspect ratio\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = {\n\t\t\t\taspectRatio: value === 'auto' ? undefined : value,\n\t\t\t};\n\t\t} );\n\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\n\t\tconst aspectRatioText = aspectRatioOptions.find(\n\t\t\t( option ) => option.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: aspect ratio setting */\n\t\t\t\t__( 'All gallery images updated to aspect ratio: %s' ),\n\t\t\t\taspectRatioText?.label || value\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-aspectRatio',\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 mediaPlaceholderProps = {\n\t\taddToGallery: false,\n\t\tdisableMediaButtons: imagesUploading,\n\t\tvalue: {},\n\t};\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( className, 'has-nested-images' ),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t} );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\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<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tnavigationButtonType: 'icon',\n\t\t\t\t\t\t\tcolumns: undefined,\n\t\t\t\t\t\t\timageCrop: true,\n\t\t\t\t\t\t\trandomOrder: false,\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tsetAspectRatio( 'auto' );\n\n\t\t\t\t\t\tif ( sizeSlug !== DEFAULT_MEDIA_SIZE_SLUG ) {\n\t\t\t\t\t\t\tupdateImagesSize( DEFAULT_MEDIA_SIZE_SLUG );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( linkTarget ) {\n\t\t\t\t\t\t\ttoggleOpenInNewTab( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t!! columns && columns !== images.length\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonDeselect={ () => setColumnsNumber( undefined ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\tsizeSlug !== DEFAULT_MEDIA_SIZE_SLUG\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tupdateImagesSize( DEFAULT_MEDIA_SIZE_SLUG )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\thasValue={ () => ! imageCrop }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { imageCrop: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\thasValue={ () => !! randomOrder }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { randomOrder: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\thasValue={ () => !! linkTarget }\n\t\t\t\t\t\t\tonDeselect={ () => toggleOpenInNewTab( false ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ aspectRatioOptions.length > 1 && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t!! aspectRatio && aspectRatio !== 'auto'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setAspectRatio( 'auto' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Set a consistent aspect ratio for all images in the gallery.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\t\t\t\t\tonChange={ setAspectRatio }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Navigation button type' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => navigationButtonType !== 'icon' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tnavigationButtonType: 'icon',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ hasLightboxImages && (\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Navigation button type' ) }\n\t\t\t\t\t\t\t\tvalue={ navigationButtonType }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tnavigationButtonType: value,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Adjust the appearance of buttons in the lightbox.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ NAVIGATION_BUTTON_TYPE_OPTIONS.map(\n\t\t\t\t\t\t\t\t\t( option ) => (\n\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\t\tkey={ option.value }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<ToolbarDropdownMenu icon={ linkIcon } label={ __( 'Link' ) }>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ linkOptions.map( ( linkItem ) => {\n\t\t\t\t\t\t\t\tconst isOptionSelected =\n\t\t\t\t\t\t\t\t\tlinkTo === linkItem.value;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ linkItem.value }\n\t\t\t\t\t\t\t\t\t\tisSelected={ isOptionSelected }\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t'is-active': isOptionSelected,\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\ticon={ linkItem.icon }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetLinkTo( linkItem.value );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\tinfo={ linkItem.infoText }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ linkItem.label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t</BlockControls>\n\t\t\t<>\n\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t) }\n\t\t\t\t<GapStyles\n\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</>\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={ ! hasImages ? mediaPlaceholder : undefined }\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -7,12 +7,20 @@ import {
7
7
  LINK_DESTINATION_NONE,
8
8
  LINK_DESTINATION_MEDIA
9
9
  } from "./constants.mjs";
10
+ import { defaultColumnsNumber } from "./shared.mjs";
10
11
  var parseShortcodeIds = (ids) => {
11
12
  if (!ids) {
12
13
  return [];
13
14
  }
14
15
  return ids.split(",").map((id) => parseInt(id, 10));
15
16
  };
17
+ var cloneInnerBlocks = (innerBlocks) => innerBlocks.map(
18
+ (innerBlock) => createBlock(
19
+ innerBlock.name,
20
+ innerBlock.attributes,
21
+ cloneInnerBlocks(innerBlock.innerBlocks || [])
22
+ )
23
+ );
16
24
  function updateThirdPartyTransformToGallery(block) {
17
25
  if (block.name === "core/gallery" && block.attributes?.images.length > 0) {
18
26
  const innerBlocks = block.attributes.images.map(
@@ -191,6 +199,41 @@ var transforms = {
191
199
  }
192
200
  return createBlock("core/image", { align });
193
201
  }
202
+ },
203
+ {
204
+ type: "block",
205
+ blocks: ["core/group"],
206
+ variationName: "group-grid",
207
+ transform: (attributes, innerBlocks) => {
208
+ const {
209
+ allowResize,
210
+ aspectRatio,
211
+ caption,
212
+ columns,
213
+ fixedHeight,
214
+ ids,
215
+ imageCrop,
216
+ images,
217
+ linkTarget,
218
+ linkTo,
219
+ navigationButtonType,
220
+ randomOrder,
221
+ shortCodeTransforms,
222
+ sizeSlug,
223
+ ...rest
224
+ } = attributes;
225
+ return createBlock(
226
+ "core/group",
227
+ {
228
+ ...rest,
229
+ layout: {
230
+ type: "grid",
231
+ columnCount: columns ?? defaultColumnsNumber(innerBlocks.length)
232
+ }
233
+ },
234
+ cloneInnerBlocks(innerBlocks)
235
+ );
236
+ }
194
237
  }
195
238
  ]
196
239
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/gallery/transforms.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tif (\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.align === align\n\t\t\t\t)\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.sizeSlug === sizeSlug\n\t\t\t\t)\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = attributes.filter( ( { url } ) => url );\n\n\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t// Gallery images can't currently be resized so make sure height and width are undefined.\n\t\t\t\t\timage.width = undefined;\n\t\t\t\t\timage.height = undefined;\n\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t} );\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t},\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\t\t\ttransform( { named: { ids, columns = 3, link, orderby, size } } ) {\n\t\t\t\tconst imageIds = parseShortcodeIds( ids ).map( ( id ) =>\n\t\t\t\t\tparseInt( id, 10 )\n\t\t\t\t);\n\n\t\t\t\tlet linkTo = LINK_DESTINATION_NONE;\n\t\t\t\tif ( link === 'post' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t} else if ( link === 'file' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_MEDIA;\n\t\t\t\t}\n\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumns: parseInt( columns, 10 ),\n\t\t\t\t\t\tlinkTo,\n\t\t\t\t\t\trandomOrder: orderby === 'rand',\n\t\t\t\t\t\t...( size && { sizeSlug: size } ),\n\t\t\t\t\t},\n\t\t\t\t\timageIds.map( ( imageId ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\tid: imageId,\n\t\t\t\t\t\t\t...( size && { sizeSlug: size } ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\treturn galleryBlock;\n\t\t\t},\n\t\t\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrides the image block transformation when multiple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tfiles.every(\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\treturn createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align }, innerBlocks ) => {\n\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t( {\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\nimport { defaultColumnsNumber } from './shared';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\nconst cloneInnerBlocks = ( innerBlocks ) =>\n\tinnerBlocks.map( ( innerBlock ) =>\n\t\tcreateBlock(\n\t\t\tinnerBlock.name,\n\t\t\tinnerBlock.attributes,\n\t\t\tcloneInnerBlocks( innerBlock.innerBlocks || [] )\n\t\t)\n\t);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tif (\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.align === align\n\t\t\t\t)\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.sizeSlug === sizeSlug\n\t\t\t\t)\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = attributes.filter( ( { url } ) => url );\n\n\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t// Gallery images can't currently be resized so make sure height and width are undefined.\n\t\t\t\t\timage.width = undefined;\n\t\t\t\t\timage.height = undefined;\n\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t} );\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t},\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\t\t\ttransform( { named: { ids, columns = 3, link, orderby, size } } ) {\n\t\t\t\tconst imageIds = parseShortcodeIds( ids ).map( ( id ) =>\n\t\t\t\t\tparseInt( id, 10 )\n\t\t\t\t);\n\n\t\t\t\tlet linkTo = LINK_DESTINATION_NONE;\n\t\t\t\tif ( link === 'post' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t} else if ( link === 'file' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_MEDIA;\n\t\t\t\t}\n\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumns: parseInt( columns, 10 ),\n\t\t\t\t\t\tlinkTo,\n\t\t\t\t\t\trandomOrder: orderby === 'rand',\n\t\t\t\t\t\t...( size && { sizeSlug: size } ),\n\t\t\t\t\t},\n\t\t\t\t\timageIds.map( ( imageId ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\tid: imageId,\n\t\t\t\t\t\t\t...( size && { sizeSlug: size } ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\treturn galleryBlock;\n\t\t\t},\n\t\t\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrides the image block transformation when multiple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tfiles.every(\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\treturn createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align }, innerBlocks ) => {\n\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t( {\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\tvariationName: 'group-grid',\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst {\n\t\t\t\t\tallowResize,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tcaption,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tfixedHeight,\n\t\t\t\t\tids,\n\t\t\t\t\timageCrop,\n\t\t\t\t\timages,\n\t\t\t\t\tlinkTarget,\n\t\t\t\t\tlinkTo,\n\t\t\t\t\tnavigationButtonType,\n\t\t\t\t\trandomOrder,\n\t\t\t\t\tshortCodeTransforms,\n\t\t\t\t\tsizeSlug,\n\t\t\t\t\t...rest\n\t\t\t\t} = attributes;\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\t...rest,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\t\tcolumnCount:\n\t\t\t\t\t\t\t\tcolumns ??\n\t\t\t\t\t\t\t\tdefaultColumnsNumber( innerBlocks.length ),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcloneInnerBlocks( innerBlocks )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  // packages/block-library/src/heading/edit.js
2
2
  import { __ } from "@wordpress/i18n";
3
- import { useEffect, Platform } from "@wordpress/element";
3
+ import { useEffect } from "@wordpress/element";
4
4
  import { useDispatch, useSelect } from "@wordpress/data";
5
5
  import {
6
6
  RichText,
@@ -64,7 +64,6 @@ function HeadingEdit(props) {
64
64
  onReplace,
65
65
  onRemove: () => onReplace([]),
66
66
  placeholder: placeholder || __("Heading"),
67
- ...Platform.isNative && { deleteEnter: true },
68
67
  ...blockProps
69
68
  }
70
69
  ) });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/heading/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, Platform } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { generateAnchor, setAnchor } from './autogenerate-anchors';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nfunction HeadingEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tmergeBlocks,\n\t\tonReplace,\n\t\tstyle,\n\t\tclientId,\n\t} = props;\n\tuseDeprecatedTextAlign( props );\n\tconst { content, level, placeholder, anchor } = attributes;\n\tconst tagName = 'h' + level;\n\tconst blockProps = useBlockProps( {\n\t\tstyle,\n\t} );\n\n\tconst { canGenerateAnchors } = useSelect( ( select ) => {\n\t\tconst { getGlobalBlockCount, getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tcanGenerateAnchors:\n\t\t\t\t!! settings.generateAnchors ||\n\t\t\t\tgetGlobalBlockCount( 'core/table-of-contents' ) > 0,\n\t\t};\n\t}, [] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Initially set anchor for headings that have content but no anchor set.\n\t// This is used when transforming a block to heading, or for legacy anchors.\n\tuseEffect( () => {\n\t\tif ( ! canGenerateAnchors ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! anchor && content ) {\n\t\t\t// This side-effect should not create an undo level.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tanchor: generateAnchor( clientId, content ),\n\t\t\t} );\n\t\t}\n\t\tsetAnchor( clientId, anchor );\n\n\t\t// Remove anchor map when block unmounts.\n\t\treturn () => setAnchor( clientId, null );\n\t}, [ anchor, content, clientId, canGenerateAnchors ] );\n\n\tconst onContentChange = ( value ) => {\n\t\tconst newAttrs = { content: value };\n\t\tif (\n\t\t\tcanGenerateAnchors &&\n\t\t\t( ! anchor ||\n\t\t\t\t! value ||\n\t\t\t\tgenerateAnchor( clientId, content ) === anchor )\n\t\t) {\n\t\t\tnewAttrs.anchor = generateAnchor( clientId, value );\n\t\t}\n\t\tsetAttributes( newAttrs );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName={ tagName }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ onContentChange }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ () => onReplace( [] ) }\n\t\t\t\tplaceholder={ placeholder || __( 'Heading' ) }\n\t\t\t\t{ ...( Platform.isNative && { deleteEnter: true } ) } // setup RichText on native mobile to delete the \"Enter\" key as it's handled by the JS/RN side\n\t\t\t\t{ ...blockProps }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default HeadingEdit;\n"],
5
- "mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,WAAW,gBAAgB;AACpC,SAAS,aAAa,iBAAiB;AACvC;AAAA,EACC;AAAA,EACA;AAAA,EACA,SAAS;AAAA,OACH;AAKP,SAAS,gBAAgB,iBAAiB;AAC1C,OAAO,4BAA4B;AAkEjC,mBACC,WADD;AAhEF,SAAS,YAAa,OAAQ;AAC7B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AACJ,yBAAwB,KAAM;AAC9B,QAAM,EAAE,SAAS,OAAO,aAAa,OAAO,IAAI;AAChD,QAAM,UAAU,MAAM;AACtB,QAAM,aAAa,cAAe;AAAA,IACjC;AAAA,EACD,CAAE;AAEF,QAAM,EAAE,mBAAmB,IAAI,UAAW,CAAE,WAAY;AACvD,UAAM,EAAE,qBAAqB,YAAY,IAAI,OAAQ,gBAAiB;AACtE,UAAM,WAAW,YAAY;AAE7B,WAAO;AAAA,MACN,oBACC,CAAC,CAAE,SAAS,mBACZ,oBAAqB,wBAAyB,IAAI;AAAA,IACpD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,EAAE,wCAAwC,IAC/C,YAAa,gBAAiB;AAI/B,YAAW,MAAM;AAChB,QAAK,CAAE,oBAAqB;AAC3B;AAAA,IACD;AAEA,QAAK,CAAE,UAAU,SAAU;AAE1B,8CAAwC;AACxC,oBAAe;AAAA,QACd,QAAQ,eAAgB,UAAU,OAAQ;AAAA,MAC3C,CAAE;AAAA,IACH;AACA,cAAW,UAAU,MAAO;AAG5B,WAAO,MAAM,UAAW,UAAU,IAAK;AAAA,EACxC,GAAG,CAAE,QAAQ,SAAS,UAAU,kBAAmB,CAAE;AAErD,QAAM,kBAAkB,CAAE,UAAW;AACpC,UAAM,WAAW,EAAE,SAAS,MAAM;AAClC,QACC,uBACE,CAAE,UACH,CAAE,SACF,eAAgB,UAAU,OAAQ,MAAM,SACxC;AACD,eAAS,SAAS,eAAgB,UAAU,KAAM;AAAA,IACnD;AACA,kBAAe,QAAS;AAAA,EACzB;AAEA,SACC,gCACC;AAAA,IAAC;AAAA;AAAA,MACA,YAAW;AAAA,MACX;AAAA,MACA,OAAQ;AAAA,MACR,UAAW;AAAA,MACX,SAAU;AAAA,MACV;AAAA,MACA,UAAW,MAAM,UAAW,CAAC,CAAE;AAAA,MAC/B,aAAc,eAAe,GAAI,SAAU;AAAA,MACzC,GAAK,SAAS,YAAY,EAAE,aAAa,KAAK;AAAA,MAC9C,GAAG;AAAA;AAAA,EACN,GACD;AAEF;AAEA,IAAO,eAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { generateAnchor, setAnchor } from './autogenerate-anchors';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nfunction HeadingEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tmergeBlocks,\n\t\tonReplace,\n\t\tstyle,\n\t\tclientId,\n\t} = props;\n\tuseDeprecatedTextAlign( props );\n\tconst { content, level, placeholder, anchor } = attributes;\n\tconst tagName = 'h' + level;\n\tconst blockProps = useBlockProps( {\n\t\tstyle,\n\t} );\n\n\tconst { canGenerateAnchors } = useSelect( ( select ) => {\n\t\tconst { getGlobalBlockCount, getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tcanGenerateAnchors:\n\t\t\t\t!! settings.generateAnchors ||\n\t\t\t\tgetGlobalBlockCount( 'core/table-of-contents' ) > 0,\n\t\t};\n\t}, [] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Initially set anchor for headings that have content but no anchor set.\n\t// This is used when transforming a block to heading, or for legacy anchors.\n\tuseEffect( () => {\n\t\tif ( ! canGenerateAnchors ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! anchor && content ) {\n\t\t\t// This side-effect should not create an undo level.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tanchor: generateAnchor( clientId, content ),\n\t\t\t} );\n\t\t}\n\t\tsetAnchor( clientId, anchor );\n\n\t\t// Remove anchor map when block unmounts.\n\t\treturn () => setAnchor( clientId, null );\n\t}, [ anchor, content, clientId, canGenerateAnchors ] );\n\n\tconst onContentChange = ( value ) => {\n\t\tconst newAttrs = { content: value };\n\t\tif (\n\t\t\tcanGenerateAnchors &&\n\t\t\t( ! anchor ||\n\t\t\t\t! value ||\n\t\t\t\tgenerateAnchor( clientId, content ) === anchor )\n\t\t) {\n\t\t\tnewAttrs.anchor = generateAnchor( clientId, value );\n\t\t}\n\t\tsetAttributes( newAttrs );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName={ tagName }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ onContentChange }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ () => onReplace( [] ) }\n\t\t\t\tplaceholder={ placeholder || __( 'Heading' ) }\n\t\t\t\t{ ...blockProps }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default HeadingEdit;\n"],
5
+ "mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,iBAAiB;AAC1B,SAAS,aAAa,iBAAiB;AACvC;AAAA,EACC;AAAA,EACA;AAAA,EACA,SAAS;AAAA,OACH;AAKP,SAAS,gBAAgB,iBAAiB;AAC1C,OAAO,4BAA4B;AAkEjC,mBACC,WADD;AAhEF,SAAS,YAAa,OAAQ;AAC7B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AACJ,yBAAwB,KAAM;AAC9B,QAAM,EAAE,SAAS,OAAO,aAAa,OAAO,IAAI;AAChD,QAAM,UAAU,MAAM;AACtB,QAAM,aAAa,cAAe;AAAA,IACjC;AAAA,EACD,CAAE;AAEF,QAAM,EAAE,mBAAmB,IAAI,UAAW,CAAE,WAAY;AACvD,UAAM,EAAE,qBAAqB,YAAY,IAAI,OAAQ,gBAAiB;AACtE,UAAM,WAAW,YAAY;AAE7B,WAAO;AAAA,MACN,oBACC,CAAC,CAAE,SAAS,mBACZ,oBAAqB,wBAAyB,IAAI;AAAA,IACpD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,EAAE,wCAAwC,IAC/C,YAAa,gBAAiB;AAI/B,YAAW,MAAM;AAChB,QAAK,CAAE,oBAAqB;AAC3B;AAAA,IACD;AAEA,QAAK,CAAE,UAAU,SAAU;AAE1B,8CAAwC;AACxC,oBAAe;AAAA,QACd,QAAQ,eAAgB,UAAU,OAAQ;AAAA,MAC3C,CAAE;AAAA,IACH;AACA,cAAW,UAAU,MAAO;AAG5B,WAAO,MAAM,UAAW,UAAU,IAAK;AAAA,EACxC,GAAG,CAAE,QAAQ,SAAS,UAAU,kBAAmB,CAAE;AAErD,QAAM,kBAAkB,CAAE,UAAW;AACpC,UAAM,WAAW,EAAE,SAAS,MAAM;AAClC,QACC,uBACE,CAAE,UACH,CAAE,SACF,eAAgB,UAAU,OAAQ,MAAM,SACxC;AACD,eAAS,SAAS,eAAgB,UAAU,KAAM;AAAA,IACnD;AACA,kBAAe,QAAS;AAAA,EACzB;AAEA,SACC,gCACC;AAAA,IAAC;AAAA;AAAA,MACA,YAAW;AAAA,MACX;AAAA,MACA,OAAQ;AAAA,MACR,UAAW;AAAA,MACX,SAAU;AAAA,MACV;AAAA,MACA,UAAW,MAAM,UAAW,CAAC,CAAE;AAAA,MAC/B,aAAc,eAAe,GAAI,SAAU;AAAA,MACzC,GAAG;AAAA;AAAA,EACN,GACD;AAEF;AAEA,IAAO,eAAQ;",
6
6
  "names": []
7
7
  }
@@ -17,7 +17,7 @@ import {
17
17
  formatOutdentRTL
18
18
  } from "@wordpress/icons";
19
19
  import { createBlock } from "@wordpress/blocks";
20
- import { useCallback, useEffect, Platform } from "@wordpress/element";
20
+ import { useCallback, useEffect } from "@wordpress/element";
21
21
  import deprecated from "@wordpress/deprecated";
22
22
  import OrderedListSettings from "./ordered-list-settings.mjs";
23
23
  import { migrateToListV2 } from "./utils.mjs";
@@ -27,7 +27,6 @@ var DEFAULT_BLOCK = {
27
27
  name: "core/list-item"
28
28
  };
29
29
  var TEMPLATE = [["core/list-item"]];
30
- var NATIVE_MARGIN_SPACING = 8;
31
30
  function useMigrateOnLoad(attributes, clientId) {
32
31
  const registry = useRegistry();
33
32
  const { updateBlockAttributes, replaceInnerBlocks } = useDispatch(blockEditorStore);
@@ -82,11 +81,10 @@ function IndentUI({ clientId }) {
82
81
  }
83
82
  ) });
84
83
  }
85
- function Edit({ attributes, setAttributes, clientId, style }) {
84
+ function Edit({ attributes, setAttributes, clientId }) {
86
85
  const { ordered, type, reversed, start } = attributes;
87
86
  const blockProps = useBlockProps({
88
87
  style: {
89
- ...Platform.isNative && style,
90
88
  listStyleType: ordered && type !== "decimal" ? type : void 0
91
89
  }
92
90
  });
@@ -96,11 +94,6 @@ function Edit({ attributes, setAttributes, clientId, style }) {
96
94
  template: TEMPLATE,
97
95
  templateLock: false,
98
96
  templateInsertUpdatesSelection: true,
99
- ...Platform.isNative && {
100
- marginVertical: NATIVE_MARGIN_SPACING,
101
- marginHorizontal: NATIVE_MARGIN_SPACING,
102
- renderAppender: false
103
- },
104
97
  __experimentalCaptureToolbars: true
105
98
  });
106
99
  useMigrateOnLoad(attributes, clientId);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/list/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n\tformatOutdent,\n\tformatOutdentRTL,\n} from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useCallback, useEffect, Platform } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport OrderedListSettings from './ordered-list-settings';\nimport { migrateToListV2 } from './utils';\nimport TagName from './tag-name';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/list-item',\n};\nconst TEMPLATE = [ [ 'core/list-item' ] ];\nconst NATIVE_MARGIN_SPACING = 8;\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old list block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nfunction useMigrateOnLoad( attributes, clientId ) {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.values ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] = migrateToListV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the list block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.values ] );\n}\n\nfunction useOutdentList( clientId ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockAttributes, getBlock } =\n\t\tuseSelect( blockEditorStore );\n\n\treturn useCallback( () => {\n\t\tconst parentBlockId = getBlockRootClientId( clientId );\n\t\tconst parentBlockAttributes = getBlockAttributes( parentBlockId );\n\t\t// Create a new parent block without the inner blocks.\n\t\tconst newParentBlock = createBlock(\n\t\t\t'core/list-item',\n\t\t\tparentBlockAttributes\n\t\t);\n\t\tconst { innerBlocks } = getBlock( clientId );\n\t\t// Replace the parent block with a new parent block without inner blocks,\n\t\t// and make the inner blocks siblings of the parent.\n\t\treplaceBlocks( [ parentBlockId ], [ newParentBlock, ...innerBlocks ] );\n\t\t// Select the last child of the list being outdent.\n\t\tselectionChange( innerBlocks[ innerBlocks.length - 1 ].clientId );\n\t}, [ clientId ] );\n}\n\nfunction IndentUI( { clientId } ) {\n\tconst outdentList = useOutdentList( clientId );\n\tconst canOutdent = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t'core/list-item'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tdescription={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ outdentList }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function Edit( { attributes, setAttributes, clientId, style } ) {\n\tconst { ordered, type, reversed, start } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tstyle: {\n\t\t\t...( Platform.isNative && style ),\n\t\t\tlistStyleType: ordered && type !== 'decimal' ? type : undefined,\n\t\t},\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\ttemplate: TEMPLATE,\n\t\ttemplateLock: false,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t...( Platform.isNative && {\n\t\t\tmarginVertical: NATIVE_MARGIN_SPACING,\n\t\t\tmarginHorizontal: NATIVE_MARGIN_SPACING,\n\t\t\trenderAppender: false,\n\t\t} ),\n\t\t__experimentalCaptureToolbars: true,\n\t} );\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst controls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\tdescription={ __( 'Convert to unordered list' ) }\n\t\t\t\tisActive={ ordered === false }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: false } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListNumberedRTL : formatListNumbered }\n\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\tdescription={ __( 'Convert to ordered list' ) }\n\t\t\t\tisActive={ ordered === true }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: true } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<IndentUI clientId={ clientId } />\n\t\t</BlockControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<TagName\n\t\t\t\tordered={ ordered }\n\t\t\t\treversed={ reversed }\n\t\t\t\tstart={ start }\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t/>\n\t\t\t{ controls }\n\t\t\t{ ordered && (\n\t\t\t\t<OrderedListSettings\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\treversed,\n\t\t\t\t\t\tstart,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n\tformatOutdent,\n\tformatOutdentRTL,\n} from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useCallback, useEffect } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport OrderedListSettings from './ordered-list-settings';\nimport { migrateToListV2 } from './utils';\nimport TagName from './tag-name';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/list-item',\n};\nconst TEMPLATE = [ [ 'core/list-item' ] ];\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old list block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nfunction useMigrateOnLoad( attributes, clientId ) {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.values ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] = migrateToListV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the list block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.values ] );\n}\n\nfunction useOutdentList( clientId ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockAttributes, getBlock } =\n\t\tuseSelect( blockEditorStore );\n\n\treturn useCallback( () => {\n\t\tconst parentBlockId = getBlockRootClientId( clientId );\n\t\tconst parentBlockAttributes = getBlockAttributes( parentBlockId );\n\t\t// Create a new parent block without the inner blocks.\n\t\tconst newParentBlock = createBlock(\n\t\t\t'core/list-item',\n\t\t\tparentBlockAttributes\n\t\t);\n\t\tconst { innerBlocks } = getBlock( clientId );\n\t\t// Replace the parent block with a new parent block without inner blocks,\n\t\t// and make the inner blocks siblings of the parent.\n\t\treplaceBlocks( [ parentBlockId ], [ newParentBlock, ...innerBlocks ] );\n\t\t// Select the last child of the list being outdent.\n\t\tselectionChange( innerBlocks[ innerBlocks.length - 1 ].clientId );\n\t}, [ clientId ] );\n}\n\nfunction IndentUI( { clientId } ) {\n\tconst outdentList = useOutdentList( clientId );\n\tconst canOutdent = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t'core/list-item'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tdescription={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ outdentList }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function Edit( { attributes, setAttributes, clientId } ) {\n\tconst { ordered, type, reversed, start } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tstyle: {\n\t\t\tlistStyleType: ordered && type !== 'decimal' ? type : undefined,\n\t\t},\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\ttemplate: TEMPLATE,\n\t\ttemplateLock: false,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t__experimentalCaptureToolbars: true,\n\t} );\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst controls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\tdescription={ __( 'Convert to unordered list' ) }\n\t\t\t\tisActive={ ordered === false }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: false } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListNumberedRTL : formatListNumbered }\n\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\tdescription={ __( 'Convert to ordered list' ) }\n\t\t\t\tisActive={ ordered === true }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: true } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<IndentUI clientId={ clientId } />\n\t\t</BlockControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<TagName\n\t\t\t\tordered={ ordered }\n\t\t\t\treversed={ reversed }\n\t\t\t\tstart={ start }\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t/>\n\t\t\t{ controls }\n\t\t\t{ ordered && (\n\t\t\t\t<OrderedListSettings\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\treversed,\n\t\t\t\t\t\tstart,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -3,13 +3,11 @@ import { __ } from "@wordpress/i18n";
3
3
  import { InspectorControls } from "@wordpress/block-editor";
4
4
  import {
5
5
  TextControl,
6
- PanelBody,
7
6
  ToggleControl,
8
7
  SelectControl,
9
8
  __experimentalToolsPanel as ToolsPanel,
10
9
  __experimentalToolsPanelItem as ToolsPanelItem
11
10
  } from "@wordpress/components";
12
- import { Platform } from "@wordpress/element";
13
11
  import { useToolsPanelDropdownMenuProps } from "../utils/hooks.mjs";
14
12
  import { jsx, jsxs } from "react/jsx-runtime";
15
13
  var LIST_STYLE_OPTIONS = [
@@ -36,49 +34,7 @@ var LIST_STYLE_OPTIONS = [
36
34
  ];
37
35
  var OrderedListSettings = ({ setAttributes, reversed, start, type }) => {
38
36
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
39
- return /* @__PURE__ */ jsx(InspectorControls, { children: Platform.isNative ? /* @__PURE__ */ jsxs(PanelBody, { title: __("Settings"), children: [
40
- /* @__PURE__ */ jsx(
41
- SelectControl,
42
- {
43
- __next40pxDefaultSize: true,
44
- label: __("List style"),
45
- options: LIST_STYLE_OPTIONS,
46
- value: type,
47
- onChange: (newValue) => setAttributes({ type: newValue })
48
- }
49
- ),
50
- /* @__PURE__ */ jsx(
51
- TextControl,
52
- {
53
- __next40pxDefaultSize: true,
54
- label: __("Start value"),
55
- type: "number",
56
- onChange: (value) => {
57
- const int = parseInt(value, 10);
58
- setAttributes({
59
- // It should be possible to unset the value,
60
- // e.g. with an empty string.
61
- start: isNaN(int) ? void 0 : int
62
- });
63
- },
64
- value: Number.isInteger(start) ? start.toString(10) : "",
65
- step: "1"
66
- }
67
- ),
68
- /* @__PURE__ */ jsx(
69
- ToggleControl,
70
- {
71
- label: __("Reverse order"),
72
- checked: reversed || false,
73
- onChange: (value) => {
74
- setAttributes({
75
- // Unset the attribute if not reversed.
76
- reversed: value || void 0
77
- });
78
- }
79
- }
80
- )
81
- ] }) : /* @__PURE__ */ jsxs(
37
+ return /* @__PURE__ */ jsx(InspectorControls, { children: /* @__PURE__ */ jsxs(
82
38
  ToolsPanel,
83
39
  {
84
40
  label: __("Settings"),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/list/ordered-list-settings.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst LIST_STYLE_OPTIONS = [\n\t{\n\t\tlabel: __( 'Numbers' ),\n\t\tvalue: 'decimal',\n\t},\n\t{\n\t\tlabel: __( 'Uppercase letters' ),\n\t\tvalue: 'upper-alpha',\n\t},\n\t{\n\t\tlabel: __( 'Lowercase letters' ),\n\t\tvalue: 'lower-alpha',\n\t},\n\t{\n\t\tlabel: __( 'Uppercase Roman numerals' ),\n\t\tvalue: 'upper-roman',\n\t},\n\t{\n\t\tlabel: __( 'Lowercase Roman numerals' ),\n\t\tvalue: 'lower-roman',\n\t},\n];\n\nconst OrderedListSettings = ( { setAttributes, reversed, start, type } ) => {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t{ Platform.isNative ? (\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'List style' ) }\n\t\t\t\t\t\toptions={ LIST_STYLE_OPTIONS }\n\t\t\t\t\t\tvalue={ type }\n\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\tsetAttributes( { type: newValue } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Start value' ) }\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tconst int = parseInt( value, 10 );\n\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t// It should be possible to unset the value,\n\t\t\t\t\t\t\t\t// e.g. with an empty string.\n\t\t\t\t\t\t\t\tstart: isNaN( int ) ? undefined : int,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tNumber.isInteger( start )\n\t\t\t\t\t\t\t\t? start.toString( 10 )\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Reverse order' ) }\n\t\t\t\t\t\tchecked={ reversed || false }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t// Unset the attribute if not reversed.\n\t\t\t\t\t\t\t\treversed: value || undefined,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) : (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttype: undefined,\n\t\t\t\t\t\t\tstart: undefined,\n\t\t\t\t\t\t\treversed: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'List style' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! type }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\ttype: undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'List style' ) }\n\t\t\t\t\t\t\toptions={ LIST_STYLE_OPTIONS }\n\t\t\t\t\t\t\tvalue={ type || 'decimal' }\n\t\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { type: newValue } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Start value' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! start }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tstart: undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Start value' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst int = parseInt( value, 10 );\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t// It should be possible to unset the value,\n\t\t\t\t\t\t\t\t\t// e.g. with an empty string.\n\t\t\t\t\t\t\t\t\tstart: isNaN( int ) ? undefined : int,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tNumber.isInteger( start )\n\t\t\t\t\t\t\t\t\t? start.toString( 10 )\n\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Reverse order' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! reversed }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\treversed: undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Reverse order' ) }\n\t\t\t\t\t\t\tchecked={ reversed || false }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t// Unset the attribute if not reversed.\n\t\t\t\t\t\t\t\t\treversed: value || undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n};\n\nexport default OrderedListSettings;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tToggleControl,\n\tSelectControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst LIST_STYLE_OPTIONS = [\n\t{\n\t\tlabel: __( 'Numbers' ),\n\t\tvalue: 'decimal',\n\t},\n\t{\n\t\tlabel: __( 'Uppercase letters' ),\n\t\tvalue: 'upper-alpha',\n\t},\n\t{\n\t\tlabel: __( 'Lowercase letters' ),\n\t\tvalue: 'lower-alpha',\n\t},\n\t{\n\t\tlabel: __( 'Uppercase Roman numerals' ),\n\t\tvalue: 'upper-roman',\n\t},\n\t{\n\t\tlabel: __( 'Lowercase Roman numerals' ),\n\t\tvalue: 'lower-roman',\n\t},\n];\n\nconst OrderedListSettings = ( { setAttributes, reversed, start, type } ) => {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\ttype: undefined,\n\t\t\t\t\t\tstart: undefined,\n\t\t\t\t\t\treversed: undefined,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'List style' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => !! type }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttype: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'List style' ) }\n\t\t\t\t\t\toptions={ LIST_STYLE_OPTIONS }\n\t\t\t\t\t\tvalue={ type || 'decimal' }\n\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\tsetAttributes( { type: newValue } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Start value' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => !! start }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tstart: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Start value' ) }\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tconst int = parseInt( value, 10 );\n\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t// It should be possible to unset the value,\n\t\t\t\t\t\t\t\t// e.g. with an empty string.\n\t\t\t\t\t\t\t\tstart: isNaN( int ) ? undefined : int,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tNumber.isInteger( start )\n\t\t\t\t\t\t\t\t? start.toString( 10 )\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Reverse order' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => !! reversed }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\treversed: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Reverse order' ) }\n\t\t\t\t\t\tchecked={ reversed || false }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t// Unset the attribute if not reversed.\n\t\t\t\t\t\t\t\treversed: value || undefined,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default OrderedListSettings;\n"],
5
+ "mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,yBAAyB;AAClC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA,4BAA4B;AAAA,EAC5B,gCAAgC;AAAA,OAC1B;AAKP,SAAS,sCAAsC;AA8B5C,SAqBE,KArBF;AA5BH,IAAM,qBAAqB;AAAA,EAC1B;AAAA,IACC,OAAO,GAAI,SAAU;AAAA,IACrB,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO,GAAI,mBAAoB;AAAA,IAC/B,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO,GAAI,mBAAoB;AAAA,IAC/B,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO,GAAI,0BAA2B;AAAA,IACtC,OAAO;AAAA,EACR;AAAA,EACA;AAAA,IACC,OAAO,GAAI,0BAA2B;AAAA,IACtC,OAAO;AAAA,EACR;AACD;AAEA,IAAM,sBAAsB,CAAE,EAAE,eAAe,UAAU,OAAO,KAAK,MAAO;AAC3E,QAAM,oBAAoB,+BAA+B;AAEzD,SACC,oBAAC,qBACA;AAAA,IAAC;AAAA;AAAA,MACA,OAAQ,GAAI,UAAW;AAAA,MACvB,UAAW,MAAM;AAChB,sBAAe;AAAA,UACd,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,QACX,CAAE;AAAA,MACH;AAAA,MACA;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,OAAQ,GAAI,YAAa;AAAA,YACzB,kBAAgB;AAAA,YAChB,UAAW,MAAM,CAAC,CAAE;AAAA,YACpB,YAAa,MACZ,cAAe;AAAA,cACd,MAAM;AAAA,YACP,CAAE;AAAA,YAGH;AAAA,cAAC;AAAA;AAAA,gBACA,uBAAqB;AAAA,gBACrB,OAAQ,GAAI,YAAa;AAAA,gBACzB,SAAU;AAAA,gBACV,OAAQ,QAAQ;AAAA,gBAChB,UAAW,CAAE,aACZ,cAAe,EAAE,MAAM,SAAS,CAAE;AAAA;AAAA,YAEpC;AAAA;AAAA,QACD;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACA,OAAQ,GAAI,aAAc;AAAA,YAC1B,kBAAgB;AAAA,YAChB,UAAW,MAAM,CAAC,CAAE;AAAA,YACpB,YAAa,MACZ,cAAe;AAAA,cACd,OAAO;AAAA,YACR,CAAE;AAAA,YAGH;AAAA,cAAC;AAAA;AAAA,gBACA,uBAAqB;AAAA,gBACrB,OAAQ,GAAI,aAAc;AAAA,gBAC1B,MAAK;AAAA,gBACL,UAAW,CAAE,UAAW;AACvB,wBAAM,MAAM,SAAU,OAAO,EAAG;AAEhC,gCAAe;AAAA;AAAA;AAAA,oBAGd,OAAO,MAAO,GAAI,IAAI,SAAY;AAAA,kBACnC,CAAE;AAAA,gBACH;AAAA,gBACA,OACC,OAAO,UAAW,KAAM,IACrB,MAAM,SAAU,EAAG,IACnB;AAAA,gBAEJ,MAAK;AAAA;AAAA,YACN;AAAA;AAAA,QACD;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACA,OAAQ,GAAI,eAAgB;AAAA,YAC5B,kBAAgB;AAAA,YAChB,UAAW,MAAM,CAAC,CAAE;AAAA,YACpB,YAAa,MACZ,cAAe;AAAA,cACd,UAAU;AAAA,YACX,CAAE;AAAA,YAGH;AAAA,cAAC;AAAA;AAAA,gBACA,OAAQ,GAAI,eAAgB;AAAA,gBAC5B,SAAU,YAAY;AAAA,gBACtB,UAAW,CAAE,UAAW;AACvB,gCAAe;AAAA;AAAA,oBAEd,UAAU,SAAS;AAAA,kBACpB,CAAE;AAAA,gBACH;AAAA;AAAA,YACD;AAAA;AAAA,QACD;AAAA;AAAA;AAAA,EACD,GACD;AAEF;AAEA,IAAO,gCAAQ;",
6
6
  "names": []
7
7
  }