@wordpress/block-library 10.1.1-next.v.202607070741.0 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/build/accordion/block.json +1 -0
  3. package/build/button/edit.cjs +18 -8
  4. package/build/button/edit.cjs.map +2 -2
  5. package/build/cover/block.json +11 -0
  6. package/build/cover/edit/block-controls.cjs +11 -4
  7. package/build/cover/edit/block-controls.cjs.map +2 -2
  8. package/build/cover/edit/embed-video-url-input.cjs +5 -3
  9. package/build/cover/edit/embed-video-url-input.cjs.map +3 -3
  10. package/build/cover/edit/index.cjs +1 -1
  11. package/build/cover/edit/index.cjs.map +2 -2
  12. package/build/cover/embed-video-utils.cjs +17 -7
  13. package/build/cover/embed-video-utils.cjs.map +2 -2
  14. package/build/details/transforms.cjs +1 -3
  15. package/build/details/transforms.cjs.map +2 -2
  16. package/build/embed/embed-placeholder.cjs +0 -1
  17. package/build/embed/embed-placeholder.cjs.map +2 -2
  18. package/build/file/edit.cjs +4 -3
  19. package/build/file/edit.cjs.map +2 -2
  20. package/build/file/transforms.cjs +25 -60
  21. package/build/file/transforms.cjs.map +2 -2
  22. package/build/gallery/block.json +4 -2
  23. package/build/gallery/edit.cjs +1 -1
  24. package/build/gallery/edit.cjs.map +3 -3
  25. package/build/gallery/gap-styles.cjs +49 -13
  26. package/build/gallery/gap-styles.cjs.map +3 -3
  27. package/build/group/transforms.cjs +1 -1
  28. package/build/group/transforms.cjs.map +2 -2
  29. package/build/icon/components/custom-inserter/icon-grid.cjs +25 -12
  30. package/build/icon/components/custom-inserter/icon-grid.cjs.map +2 -2
  31. package/build/icon/components/custom-inserter/index.cjs +100 -31
  32. package/build/icon/components/custom-inserter/index.cjs.map +3 -3
  33. package/build/icon/edit.cjs +11 -12
  34. package/build/icon/edit.cjs.map +2 -2
  35. package/build/image/block.json +1 -1
  36. package/build/image/edit.cjs +0 -34
  37. package/build/image/edit.cjs.map +2 -2
  38. package/build/image/image.cjs +4 -23
  39. package/build/image/image.cjs.map +3 -3
  40. package/build/image/transforms.cjs +78 -0
  41. package/build/image/transforms.cjs.map +3 -3
  42. package/build/index.cjs +18 -8
  43. package/build/index.cjs.map +2 -2
  44. package/build/latest-posts/edit.cjs +5 -8
  45. package/build/latest-posts/edit.cjs.map +2 -2
  46. package/build/list-item/edit.cjs +1 -1
  47. package/build/list-item/edit.cjs.map +2 -2
  48. package/build/list-item/hooks/use-enter.cjs +14 -17
  49. package/build/list-item/hooks/use-enter.cjs.map +3 -3
  50. package/build/list-item/hooks/use-space.cjs +3 -2
  51. package/build/list-item/hooks/use-space.cjs.map +3 -3
  52. package/build/paragraph/block.json +1 -0
  53. package/build/paragraph/use-enter.cjs +3 -7
  54. package/build/paragraph/use-enter.cjs.map +3 -3
  55. package/build/playlist/block.json +29 -10
  56. package/build/playlist/edit.cjs +216 -14
  57. package/build/playlist/edit.cjs.map +3 -3
  58. package/build/playlist/index.cjs +1 -1
  59. package/build/playlist/index.cjs.map +2 -2
  60. package/build/playlist/utils.cjs +19 -5
  61. package/build/playlist/utils.cjs.map +2 -2
  62. package/build/playlist/view.cjs +83 -13
  63. package/build/playlist/view.cjs.map +2 -2
  64. package/build/playlist-track/block.json +4 -2
  65. package/build/playlist-track/edit.cjs +94 -64
  66. package/build/playlist-track/edit.cjs.map +2 -2
  67. package/build/post-content/block.json +1 -0
  68. package/build/post-template/block.json +2 -1
  69. package/build/post-template/edit.cjs +10 -1
  70. package/build/post-template/edit.cjs.map +2 -2
  71. package/build/pullquote/block.json +3 -1
  72. package/build/query/block.json +3 -2
  73. package/build/query/edit/inspector-controls/index.cjs +38 -4
  74. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  75. package/build/query/edit/inspector-controls/offset-controls.cjs +0 -1
  76. package/build/query/edit/inspector-controls/offset-controls.cjs.map +2 -2
  77. package/build/query/edit/inspector-controls/pages-control.cjs +0 -1
  78. package/build/query/edit/inspector-controls/pages-control.cjs.map +2 -2
  79. package/build/query/edit/query-content.cjs +10 -3
  80. package/build/query/edit/query-content.cjs.map +2 -2
  81. package/build/query/index.cjs +2 -1
  82. package/build/query/index.cjs.map +2 -2
  83. package/build/quote/block.json +3 -1
  84. package/build/quote/transforms.cjs +1 -3
  85. package/build/quote/transforms.cjs.map +2 -2
  86. package/build/rss/edit.cjs +0 -1
  87. package/build/rss/edit.cjs.map +2 -2
  88. package/build/tab-list/block.json +2 -2
  89. package/build/tab-list/edit.cjs +65 -11
  90. package/build/tab-list/edit.cjs.map +3 -3
  91. package/build/tab-panel/block.json +1 -6
  92. package/build/tab-panel/edit.cjs +15 -15
  93. package/build/tab-panel/edit.cjs.map +2 -2
  94. package/build/tab-panels/block.json +0 -1
  95. package/build/tabs/block.json +0 -5
  96. package/build/tabs/edit.cjs +4 -39
  97. package/build/tabs/edit.cjs.map +3 -3
  98. package/build/tabs/use-tab-list-items-sync.cjs +19 -1
  99. package/build/tabs/use-tab-list-items-sync.cjs.map +2 -2
  100. package/build/term-name/block.json +1 -3
  101. package/build/term-name/deprecated.cjs +105 -0
  102. package/build/term-name/deprecated.cjs.map +7 -0
  103. package/build/term-name/edit.cjs +11 -37
  104. package/build/term-name/edit.cjs.map +3 -3
  105. package/build/term-name/index.cjs +3 -1
  106. package/build/term-name/index.cjs.map +3 -3
  107. package/build/utils/waveform-player.cjs +138 -22
  108. package/build/utils/waveform-player.cjs.map +2 -2
  109. package/build/utils/waveform-utils.cjs +315 -17
  110. package/build/utils/waveform-utils.cjs.map +2 -2
  111. package/build/video/edit.cjs +2 -11
  112. package/build/video/edit.cjs.map +3 -3
  113. package/build-module/accordion/block.json +1 -0
  114. package/build-module/button/edit.mjs +19 -14
  115. package/build-module/button/edit.mjs.map +2 -2
  116. package/build-module/cover/block.json +11 -0
  117. package/build-module/cover/edit/block-controls.mjs +11 -4
  118. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  119. package/build-module/cover/edit/embed-video-url-input.mjs +5 -4
  120. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  121. package/build-module/cover/edit/index.mjs +1 -1
  122. package/build-module/cover/edit/index.mjs.map +2 -2
  123. package/build-module/cover/embed-video-utils.mjs +16 -7
  124. package/build-module/cover/embed-video-utils.mjs.map +2 -2
  125. package/build-module/details/transforms.mjs +2 -7
  126. package/build-module/details/transforms.mjs.map +2 -2
  127. package/build-module/embed/embed-placeholder.mjs +0 -1
  128. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  129. package/build-module/file/edit.mjs +4 -3
  130. package/build-module/file/edit.mjs.map +2 -2
  131. package/build-module/file/transforms.mjs +25 -60
  132. package/build-module/file/transforms.mjs.map +2 -2
  133. package/build-module/gallery/block.json +4 -2
  134. package/build-module/gallery/edit.mjs +3 -3
  135. package/build-module/gallery/edit.mjs.map +2 -2
  136. package/build-module/gallery/gap-styles.mjs +53 -14
  137. package/build-module/gallery/gap-styles.mjs.map +2 -2
  138. package/build-module/group/transforms.mjs +2 -5
  139. package/build-module/group/transforms.mjs.map +2 -2
  140. package/build-module/icon/components/custom-inserter/icon-grid.mjs +25 -12
  141. package/build-module/icon/components/custom-inserter/icon-grid.mjs.map +2 -2
  142. package/build-module/icon/components/custom-inserter/index.mjs +102 -33
  143. package/build-module/icon/components/custom-inserter/index.mjs.map +2 -2
  144. package/build-module/icon/edit.mjs +11 -12
  145. package/build-module/icon/edit.mjs.map +2 -2
  146. package/build-module/image/block.json +1 -1
  147. package/build-module/image/edit.mjs +0 -34
  148. package/build-module/image/edit.mjs.map +2 -2
  149. package/build-module/image/image.mjs +4 -13
  150. package/build-module/image/image.mjs.map +2 -2
  151. package/build-module/image/transforms.mjs +78 -0
  152. package/build-module/image/transforms.mjs.map +2 -2
  153. package/build-module/index.mjs +18 -8
  154. package/build-module/index.mjs.map +2 -2
  155. package/build-module/latest-posts/edit.mjs +5 -8
  156. package/build-module/latest-posts/edit.mjs.map +2 -2
  157. package/build-module/list-item/edit.mjs +1 -1
  158. package/build-module/list-item/edit.mjs.map +2 -2
  159. package/build-module/list-item/hooks/use-enter.mjs +15 -21
  160. package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
  161. package/build-module/list-item/hooks/use-space.mjs +4 -6
  162. package/build-module/list-item/hooks/use-space.mjs.map +2 -2
  163. package/build-module/paragraph/block.json +1 -0
  164. package/build-module/paragraph/use-enter.mjs +4 -11
  165. package/build-module/paragraph/use-enter.mjs.map +2 -2
  166. package/build-module/playlist/block.json +29 -10
  167. package/build-module/playlist/edit.mjs +220 -16
  168. package/build-module/playlist/edit.mjs.map +2 -2
  169. package/build-module/playlist/index.mjs +1 -1
  170. package/build-module/playlist/index.mjs.map +2 -2
  171. package/build-module/playlist/utils.mjs +17 -4
  172. package/build-module/playlist/utils.mjs.map +2 -2
  173. package/build-module/playlist/view.mjs +89 -14
  174. package/build-module/playlist/view.mjs.map +2 -2
  175. package/build-module/playlist-track/block.json +4 -2
  176. package/build-module/playlist-track/edit.mjs +96 -65
  177. package/build-module/playlist-track/edit.mjs.map +2 -2
  178. package/build-module/post-content/block.json +1 -0
  179. package/build-module/post-template/block.json +2 -1
  180. package/build-module/post-template/edit.mjs +10 -1
  181. package/build-module/post-template/edit.mjs.map +2 -2
  182. package/build-module/pullquote/block.json +3 -1
  183. package/build-module/query/block.json +3 -2
  184. package/build-module/query/edit/inspector-controls/index.mjs +40 -5
  185. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  186. package/build-module/query/edit/inspector-controls/offset-controls.mjs +0 -1
  187. package/build-module/query/edit/inspector-controls/offset-controls.mjs.map +2 -2
  188. package/build-module/query/edit/inspector-controls/pages-control.mjs +0 -1
  189. package/build-module/query/edit/inspector-controls/pages-control.mjs.map +2 -2
  190. package/build-module/query/edit/query-content.mjs +10 -3
  191. package/build-module/query/edit/query-content.mjs.map +2 -2
  192. package/build-module/query/index.mjs +2 -1
  193. package/build-module/query/index.mjs.map +2 -2
  194. package/build-module/quote/block.json +3 -1
  195. package/build-module/quote/transforms.mjs +2 -4
  196. package/build-module/quote/transforms.mjs.map +2 -2
  197. package/build-module/rss/edit.mjs +0 -1
  198. package/build-module/rss/edit.mjs.map +2 -2
  199. package/build-module/tab-list/block.json +2 -2
  200. package/build-module/tab-list/edit.mjs +72 -13
  201. package/build-module/tab-list/edit.mjs.map +2 -2
  202. package/build-module/tab-panel/block.json +1 -6
  203. package/build-module/tab-panel/edit.mjs +16 -16
  204. package/build-module/tab-panel/edit.mjs.map +2 -2
  205. package/build-module/tab-panels/block.json +0 -1
  206. package/build-module/tabs/block.json +0 -5
  207. package/build-module/tabs/edit.mjs +5 -45
  208. package/build-module/tabs/edit.mjs.map +2 -2
  209. package/build-module/tabs/use-tab-list-items-sync.mjs +19 -1
  210. package/build-module/tabs/use-tab-list-items-sync.mjs.map +2 -2
  211. package/build-module/term-name/block.json +1 -3
  212. package/build-module/term-name/deprecated.mjs +74 -0
  213. package/build-module/term-name/deprecated.mjs.map +7 -0
  214. package/build-module/term-name/edit.mjs +11 -28
  215. package/build-module/term-name/edit.mjs.map +2 -2
  216. package/build-module/term-name/index.mjs +3 -1
  217. package/build-module/term-name/index.mjs.map +2 -2
  218. package/build-module/utils/waveform-player.mjs +144 -23
  219. package/build-module/utils/waveform-player.mjs.map +2 -2
  220. package/build-module/utils/waveform-utils.mjs +310 -16
  221. package/build-module/utils/waveform-utils.mjs.map +2 -2
  222. package/build-module/video/edit.mjs +2 -11
  223. package/build-module/video/edit.mjs.map +2 -2
  224. package/build-style/editor-rtl.css +46 -21
  225. package/build-style/editor.css +46 -21
  226. package/build-style/icon/editor-rtl.css +80 -7
  227. package/build-style/icon/editor.css +80 -7
  228. package/build-style/more/editor-rtl.css +2 -2
  229. package/build-style/more/editor.css +2 -2
  230. package/build-style/navigation/editor-rtl.css +3 -4
  231. package/build-style/navigation/editor.css +3 -4
  232. package/build-style/navigation-link/editor-rtl.css +1 -1
  233. package/build-style/navigation-link/editor.css +1 -1
  234. package/build-style/nextpage/editor-rtl.css +2 -2
  235. package/build-style/nextpage/editor.css +2 -2
  236. package/build-style/playlist/editor-rtl.css +6 -0
  237. package/build-style/playlist/editor.css +6 -0
  238. package/build-style/playlist/style-rtl.css +37 -1
  239. package/build-style/playlist/style.css +37 -1
  240. package/build-style/playlist-track/style-rtl.css +10 -0
  241. package/build-style/playlist-track/style.css +10 -0
  242. package/build-style/style-rtl.css +47 -1
  243. package/build-style/style.css +47 -1
  244. package/build-style/video/editor-rtl.css +1 -1
  245. package/build-style/video/editor.css +1 -1
  246. package/build-types/table-of-contents/list.d.ts +1 -1
  247. package/build-types/table-of-contents/list.d.ts.map +1 -1
  248. package/package.json +46 -44
  249. package/src/accordion/README.md +1 -0
  250. package/src/accordion/block.json +1 -0
  251. package/src/button/edit.js +21 -15
  252. package/src/cover/README.md +60 -0
  253. package/src/cover/block.json +11 -0
  254. package/src/cover/edit/block-controls.js +21 -11
  255. package/src/cover/edit/embed-video-url-input.js +5 -4
  256. package/src/cover/edit/index.js +9 -11
  257. package/src/cover/embed-video-utils.js +38 -13
  258. package/src/details/transforms.js +2 -7
  259. package/src/embed/embed-placeholder.js +0 -1
  260. package/src/file/edit.js +8 -8
  261. package/src/file/transforms.js +28 -60
  262. package/src/gallery/README.md +1 -1
  263. package/src/gallery/block.json +4 -2
  264. package/src/gallery/edit.js +3 -3
  265. package/src/gallery/gap-styles.js +79 -20
  266. package/src/gallery/index.php +103 -43
  267. package/src/group/transforms.js +2 -5
  268. package/src/icon/components/custom-inserter/icon-grid.js +40 -11
  269. package/src/icon/components/custom-inserter/index.js +98 -25
  270. package/src/icon/edit.js +11 -17
  271. package/src/icon/editor.scss +33 -8
  272. package/src/image/README.md +1 -1
  273. package/src/image/block.json +1 -1
  274. package/src/image/edit.js +0 -52
  275. package/src/image/editor.scss +2 -0
  276. package/src/image/image.js +19 -24
  277. package/src/image/transforms.js +128 -0
  278. package/src/index.js +19 -7
  279. package/src/latest-posts/edit.js +5 -8
  280. package/src/latest-posts/index.php +46 -16
  281. package/src/list-item/edit.js +1 -1
  282. package/src/list-item/hooks/use-enter.js +15 -22
  283. package/src/list-item/hooks/use-space.js +4 -6
  284. package/src/media-text/editor.scss +1 -0
  285. package/src/more/editor.scss +1 -1
  286. package/src/navigation/editor.scss +1 -2
  287. package/src/navigation-link/editor.scss +1 -1
  288. package/src/navigation-link/index.php +6 -3
  289. package/src/navigation-submenu/index.php +6 -3
  290. package/src/nextpage/editor.scss +1 -1
  291. package/src/paragraph/README.md +1 -0
  292. package/src/paragraph/block.json +1 -0
  293. package/src/paragraph/use-enter.js +4 -11
  294. package/src/playlist/README.md +17 -18
  295. package/src/playlist/block.json +29 -10
  296. package/src/playlist/edit.js +247 -15
  297. package/src/playlist/editor.scss +6 -0
  298. package/src/playlist/index.js +1 -1
  299. package/src/playlist/index.php +58 -14
  300. package/src/playlist/style.scss +51 -1
  301. package/src/playlist/test/edit.js +13 -2
  302. package/src/playlist/utils.js +25 -7
  303. package/src/playlist/view.js +97 -16
  304. package/src/playlist-track/README.md +3 -3
  305. package/src/playlist-track/block.json +4 -2
  306. package/src/playlist-track/edit.js +94 -70
  307. package/src/playlist-track/index.php +20 -6
  308. package/src/playlist-track/style.scss +10 -0
  309. package/src/playlist-track/test/edit.js +169 -0
  310. package/src/post-content/README.md +1 -0
  311. package/src/post-content/block.json +1 -0
  312. package/src/post-template/README.md +1 -0
  313. package/src/post-template/block.json +2 -1
  314. package/src/post-template/edit.js +9 -0
  315. package/src/pullquote/README.md +1 -0
  316. package/src/pullquote/block.json +3 -1
  317. package/src/query/README.md +2 -1
  318. package/src/query/block.json +3 -2
  319. package/src/query/edit/inspector-controls/index.js +43 -3
  320. package/src/query/edit/inspector-controls/offset-controls.js +0 -1
  321. package/src/query/edit/inspector-controls/pages-control.js +0 -1
  322. package/src/query/edit/query-content.js +19 -3
  323. package/src/query/index.js +1 -0
  324. package/src/quote/README.md +1 -0
  325. package/src/quote/block.json +3 -1
  326. package/src/quote/transforms.js +2 -4
  327. package/src/rss/edit.js +0 -1
  328. package/src/rss/index.php +1 -1
  329. package/src/tab-list/README.md +4 -5
  330. package/src/tab-list/block.json +2 -2
  331. package/src/tab-list/edit.js +90 -28
  332. package/src/tab-list/index.php +9 -4
  333. package/src/tab-panel/README.md +4 -6
  334. package/src/tab-panel/block.json +1 -6
  335. package/src/tab-panel/edit.js +19 -24
  336. package/src/tab-panels/README.md +5 -3
  337. package/src/tab-panels/block.json +0 -1
  338. package/src/tabs/README.md +18 -9
  339. package/src/tabs/block.json +0 -5
  340. package/src/tabs/edit.js +7 -64
  341. package/src/tabs/use-tab-list-items-sync.js +24 -4
  342. package/src/template-part/index.php +1 -16
  343. package/src/term-name/README.md +1 -1
  344. package/src/term-name/block.json +1 -3
  345. package/src/term-name/deprecated.js +74 -0
  346. package/src/term-name/edit.js +2 -18
  347. package/src/term-name/index.js +2 -0
  348. package/src/utils/media-control.scss +1 -5
  349. package/src/utils/test/waveform-player.js +297 -34
  350. package/src/utils/test/waveform-utils.js +410 -5
  351. package/src/utils/waveform-player.js +189 -59
  352. package/src/utils/waveform-utils.js +443 -40
  353. package/src/video/edit.js +0 -8
  354. package/src/video/editor.scss +1 -1
  355. package/build/image/animated-gif-convert-control.cjs +0 -105
  356. package/build/image/animated-gif-convert-control.cjs.map +0 -7
  357. package/build/utils/gif-conversion-attributes.cjs +0 -40
  358. package/build/utils/gif-conversion-attributes.cjs.map +0 -7
  359. package/build/video/gif-restore-control.cjs +0 -73
  360. package/build/video/gif-restore-control.cjs.map +0 -7
  361. package/build-module/image/animated-gif-convert-control.mjs +0 -87
  362. package/build-module/image/animated-gif-convert-control.mjs.map +0 -7
  363. package/build-module/utils/gif-conversion-attributes.mjs +0 -15
  364. package/build-module/utils/gif-conversion-attributes.mjs.map +0 -7
  365. package/build-module/video/gif-restore-control.mjs +0 -55
  366. package/build-module/video/gif-restore-control.mjs.map +0 -7
  367. package/src/image/animated-gif-convert-control.js +0 -135
  368. package/src/image/test/animated-gif-convert-control.js +0 -276
  369. package/src/utils/gif-conversion-attributes.js +0 -30
  370. package/src/utils/test/gif-conversion-attributes.js +0 -60
  371. package/src/video/gif-restore-control.js +0 -92
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n\tregisterBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useDisabled } from '@wordpress/compose';\nimport { select } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport HtmlRenderer from './utils/html-renderer';\n\n/**\n * Internal dependencies\n */\n// Experimental blocks are only registered in the Gutenberg plugin (see\n// `__experimentalRegisterExperimentalCoreBlocks`). `registerCoreBlocks`\n// filters them out via `isBlockMetadataExperimental`, so they are never\n// available in WordPress core regardless of what ends up in the bundle.\nimport * as accordion from './accordion';\nimport * as accordionItem from './accordion-item';\nimport * as accordionHeading from './accordion-heading';\nimport * as accordionPanel from './accordion-panel';\nimport * as archives from './archives';\nimport * as avatar from './avatar';\nimport * as audio from './audio';\nimport * as breadcrumbs from './breadcrumbs';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as comments from './comments';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsPaginationPrevious from './comments-pagination-previous';\nimport * as commentsPagination from './comments-pagination';\nimport * as commentsPaginationNext from './comments-pagination-next';\nimport * as commentsPaginationNumbers from './comments-pagination-numbers';\nimport * as commentsTitle from './comments-title';\nimport * as cover from './cover';\nimport * as details from './details';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as form from './form';\nimport * as formInput from './form-input';\nimport * as formSubmitButton from './form-submit-button';\nimport * as formSubmissionNotification from './form-submission-notification';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as icon from './icon';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as math from './math';\nimport * as listItem from './list-item';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as navigationOverlayClose from './navigation-overlay-close';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as pageListItem from './page-list-item';\nimport * as paragraph from './paragraph';\nimport * as playlist from './playlist';\nimport * as playlistTrack from './playlist-track';\nimport * as postAuthor from './post-author';\nimport * as postAuthorName from './post-author-name';\nimport * as postAuthorBiography from './post-author-biography';\nimport * as postComment from './post-comment';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTimeToRead from './post-time-to-read';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryNoResults from './query-no-results';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as queryTotal from './query-total';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as readMore from './read-more';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as tabPanel from './tab-panel';\nimport * as tabPanels from './tab-panels';\nimport * as table from './table';\nimport * as tableOfContents from './table-of-contents';\nimport * as tabList from './tab-list';\nimport * as tabs from './tabs';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termCount from './term-count';\nimport * as termDescription from './term-description';\nimport * as termName from './term-name';\nimport * as termsQuery from './terms-query';\nimport * as termTemplate from './term-template';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\nimport * as footnotes from './footnotes';\n\nimport isBlockMetadataExperimental from './utils/is-block-metadata-experimental';\nimport { unlock } from './lock-unlock';\n\n/**\n * Function to get all the block-library blocks in an array\n */\nconst getAllBlocks = () => {\n\tconst blocks = [\n\t\t// Common blocks are grouped at the top to prioritize their display\n\t\t// in various contexts — like the inserter and auto-complete components.\n\t\tparagraph,\n\t\timage,\n\t\theading,\n\t\tgallery,\n\t\tlist,\n\t\tlistItem,\n\t\tquote,\n\n\t\t// Register all remaining core blocks.\n\t\taccordion,\n\t\taccordionItem,\n\t\taccordionHeading,\n\t\taccordionPanel,\n\t\tarchives,\n\t\taudio,\n\t\tbutton,\n\t\tbuttons,\n\t\tcalendar,\n\t\tcategories,\n\t\tcode,\n\t\tcolumn,\n\t\tcolumns,\n\t\tcommentAuthorAvatar,\n\t\tcover,\n\t\tdetails,\n\t\tembed,\n\t\tfile,\n\t\tgroup,\n\t\thtml,\n\t\tmath,\n\t\tlatestComments,\n\t\tlatestPosts,\n\t\tmediaText,\n\t\tmissing,\n\t\tmore,\n\t\tnextpage,\n\t\tpageList,\n\t\tpageListItem,\n\t\tpattern,\n\t\tpreformatted,\n\t\tpullquote,\n\t\treusableBlock,\n\t\trss,\n\t\tsearch,\n\t\tseparator,\n\t\tshortcode,\n\t\tsocialLink,\n\t\tsocialLinks,\n\t\tspacer,\n\t\ttable,\n\t\ttagCloud,\n\t\ttextColumns,\n\t\tverse,\n\t\tvideo,\n\t\tfootnotes,\n\n\t\t// theme blocks\n\t\tnavigation,\n\t\tnavigationLink,\n\t\tnavigationSubmenu,\n\t\tsiteLogo,\n\t\tsiteTitle,\n\t\tsiteTagline,\n\t\tquery,\n\t\ttemplatePart,\n\t\tavatar,\n\t\tpostTitle,\n\t\tpostExcerpt,\n\t\tpostFeaturedImage,\n\t\tpostContent,\n\t\tpostAuthor,\n\t\tpostAuthorName,\n\t\tpostComment,\n\t\tpostCommentsCount,\n\t\tpostCommentsLink,\n\t\tpostDate,\n\t\tpostTerms,\n\t\tpostNavigationLink,\n\t\tpostTemplate,\n\t\tpostTimeToRead,\n\t\tqueryPagination,\n\t\tqueryPaginationNext,\n\t\tqueryPaginationNumbers,\n\t\tqueryPaginationPrevious,\n\t\tqueryNoResults,\n\t\tqueryTotal,\n\t\treadMore,\n\t\tcomments,\n\t\tcommentAuthorName,\n\t\tcommentContent,\n\t\tcommentDate,\n\t\tcommentEditLink,\n\t\tcommentReplyLink,\n\t\tcommentTemplate,\n\t\tcommentsTitle,\n\t\tcommentsPagination,\n\t\tcommentsPaginationNext,\n\t\tcommentsPaginationNumbers,\n\t\tcommentsPaginationPrevious,\n\t\tpostCommentsForm,\n\t\ttableOfContents,\n\t\thomeLink,\n\t\ticon,\n\t\tlogInOut,\n\t\tnavigationOverlayClose,\n\t\ttermCount,\n\t\ttermDescription,\n\t\ttermName,\n\t\ttermsQuery,\n\t\ttermTemplate,\n\t\tqueryTitle,\n\t\tpostAuthorBiography,\n\t\tbreadcrumbs,\n\t];\n\n\tif ( window?.__experimentalEnableFormBlocks ) {\n\t\tblocks.push( form );\n\t\tblocks.push( formInput );\n\t\tblocks.push( formSubmitButton );\n\t\tblocks.push( formSubmissionNotification );\n\t}\n\n\tif ( window?.__experimentalEnableBlockExperiments ) {\n\t\tblocks.push( tabList );\n\t\tblocks.push( tabs );\n\t\tblocks.push( tabPanel );\n\t\tblocks.push( tabPanels );\n\t\tblocks.push( playlist );\n\t\tblocks.push( playlistTrack );\n\t}\n\n\tblocks.push( classic );\n\n\treturn blocks.filter( Boolean );\n};\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () =>\n\tgetAllBlocks().filter(\n\t\t( { metadata } ) => ! isBlockMetadataExperimental( metadata )\n\t);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( ( { init } ) => init() );\n\n\t// Auto-register PHP-only blocks with ServerSideRender\n\tif ( window.__unstableAutoRegisterBlocks ) {\n\t\twindow.__unstableAutoRegisterBlocks.forEach( ( blockName ) => {\n\t\t\tconst bootstrappedBlockType = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBootstrappedBlockType( blockName );\n\n\t\t\tregisterBlockType( blockName, {\n\t\t\t\t// Use all metadata from PHP registration,\n\t\t\t\t// but fall back title to block name if not provided,\n\t\t\t\t// ensure minimum apiVersion 3 for block wrapper support,\n\t\t\t\t// and override with a ServerSideRender-based edit function.\n\t\t\t\t...bootstrappedBlockType,\n\t\t\t\ttitle: bootstrappedBlockType?.title || blockName,\n\t\t\t\t...( ( bootstrappedBlockType?.apiVersion ?? 0 ) < 3 && {\n\t\t\t\t\tapiVersion: 3,\n\t\t\t\t} ),\n\t\t\t\t// Inspector controls are rendered by the auto-register hook in block-editor\n\t\t\t\tedit: function Edit( { attributes } ) {\n\t\t\t\t\tconst disabledRef = useDisabled();\n\t\t\t\t\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\t\t\t\t\tconst { content, status, error } = useServerSideRender( {\n\t\t\t\t\t\tblock: blockName,\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( status === 'loading' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>{ __( 'Loading…' ) }</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( status === 'error' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: error message describing the problem */\n\t\t\t\t\t\t\t\t\t__( 'Error loading block: %s' ),\n\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<HtmlRenderer\n\t\t\t\t\t\t\twrapperProps={ blockProps }\n\t\t\t\t\t\t\thtml={ content }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tsave: () => null,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tsetDefaultBlockName( paragraph.name );\n\tif (\n\t\twindow.wp &&\n\t\twindow.wp.oldEditor &&\n\t\tblocks.some( ( { name } ) => name === classic.name )\n\t) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tsetGroupingBlockName( group.name );\n};\n\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\nexport const __experimentalRegisterExperimentalCoreBlocks =\n\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t? ( { enableFSEBlocks } = {} ) => {\n\t\t\t\tconst enabledExperiments = [ enableFSEBlocks ? 'fse' : null ];\n\t\t\t\tgetAllBlocks()\n\t\t\t\t\t.filter( ( { metadata } ) =>\n\t\t\t\t\t\tisBlockMetadataExperimental( metadata )\n\t\t\t\t\t)\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t( { metadata: { __experimental } } ) =>\n\t\t\t\t\t\t\t__experimental === true ||\n\t\t\t\t\t\t\tenabledExperiments.includes( __experimental )\n\t\t\t\t\t)\n\t\t\t\t\t.forEach( ( { init } ) => init() );\n\t\t }\n\t\t: undefined;\n\nexport { privateApis } from './private-apis';\n"],
5
- "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AACpC,SAAS,IAAI,eAAe;AAK5B,OAAO,kBAAkB;AASzB,YAAY,eAAe;AAC3B,YAAY,mBAAmB;AAC/B,YAAY,sBAAsB;AAClC,YAAY,oBAAoB;AAChC,YAAY,cAAc;AAC1B,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,iBAAiB;AAC7B,YAAY,YAAY;AACxB,YAAY,aAAa;AACzB,YAAY,cAAc;AAC1B,YAAY,gBAAgB;AAC5B,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,YAAY;AACxB,YAAY,aAAa;AACzB,YAAY,cAAc;AAC1B,YAAY,yBAAyB;AACrC,YAAY,uBAAuB;AACnC,YAAY,oBAAoB;AAChC,YAAY,iBAAiB;AAC7B,YAAY,qBAAqB;AACjC,YAAY,sBAAsB;AAClC,YAAY,qBAAqB;AACjC,YAAY,gCAAgC;AAC5C,YAAY,wBAAwB;AACpC,YAAY,4BAA4B;AACxC,YAAY,+BAA+B;AAC3C,YAAY,mBAAmB;AAC/B,YAAY,WAAW;AACvB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,eAAe;AAC3B,YAAY,sBAAsB;AAClC,YAAY,gCAAgC;AAC5C,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,aAAa;AACzB,YAAY,cAAc;AAC1B,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,oBAAoB;AAChC,YAAY,iBAAiB;AAC7B,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,cAAc;AAC1B,YAAY,cAAc;AAC1B,YAAY,eAAe;AAC3B,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,gBAAgB;AAC5B,YAAY,oBAAoB;AAChC,YAAY,uBAAuB;AACnC,YAAY,cAAc;AAC1B,YAAY,4BAA4B;AACxC,YAAY,aAAa;AACzB,YAAY,cAAc;AAC1B,YAAY,kBAAkB;AAC9B,YAAY,eAAe;AAC3B,YAAY,cAAc;AAC1B,YAAY,mBAAmB;AAC/B,YAAY,gBAAgB;AAC5B,YAAY,oBAAoB;AAChC,YAAY,yBAAyB;AACrC,YAAY,iBAAiB;AAC7B,YAAY,uBAAuB;AACnC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,iBAAiB;AAC7B,YAAY,cAAc;AAC1B,YAAY,iBAAiB;AAC7B,YAAY,uBAAuB;AACnC,YAAY,wBAAwB;AACpC,YAAY,kBAAkB;AAC9B,YAAY,eAAe;AAC3B,YAAY,oBAAoB;AAChC,YAAY,eAAe;AAC3B,YAAY,kBAAkB;AAC9B,YAAY,eAAe;AAC3B,YAAY,WAAW;AACvB,YAAY,oBAAoB;AAChC,YAAY,qBAAqB;AACjC,YAAY,yBAAyB;AACrC,YAAY,4BAA4B;AACxC,YAAY,6BAA6B;AACzC,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,YAAY,WAAW;AACvB,YAAY,mBAAmB;AAC/B,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB,YAAY,YAAY;AACxB,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B,YAAY,cAAc;AAC1B,YAAY,iBAAiB;AAC7B,YAAY,eAAe;AAC3B,YAAY,gBAAgB;AAC5B,YAAY,iBAAiB;AAC7B,YAAY,YAAY;AACxB,YAAY,cAAc;AAC1B,YAAY,eAAe;AAC3B,YAAY,WAAW;AACvB,YAAY,qBAAqB;AACjC,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,cAAc;AAC1B,YAAY,kBAAkB;AAC9B,YAAY,eAAe;AAC3B,YAAY,qBAAqB;AACjC,YAAY,cAAc;AAC1B,YAAY,gBAAgB;AAC5B,YAAY,kBAAkB;AAC9B,YAAY,iBAAiB;AAC7B,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,eAAe;AAE3B,OAAO,iCAAiC;AACxC,SAAS,cAAc;AAiRvB,SAAS,mBAAmB;AApErB;AAxMP,IAAM,eAAe,MAAM;AAC1B,QAAM,SAAS;AAAA;AAAA;AAAA,IAGd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,MAAK,QAAQ,gCAAiC;AAC7C,WAAO,KAAM,IAAK;AAClB,WAAO,KAAM,SAAU;AACvB,WAAO,KAAM,gBAAiB;AAC9B,WAAO,KAAM,0BAA2B;AAAA,EACzC;AAEA,MAAK,QAAQ,sCAAuC;AACnD,WAAO,KAAM,OAAQ;AACrB,WAAO,KAAM,IAAK;AAClB,WAAO,KAAM,QAAS;AACtB,WAAO,KAAM,SAAU;AACvB,WAAO,KAAM,QAAS;AACtB,WAAO,KAAM,aAAc;AAAA,EAC5B;AAEA,SAAO,KAAM,OAAQ;AAErB,SAAO,OAAO,OAAQ,OAAQ;AAC/B;AAYO,IAAM,8BAA8B,MAC1C,aAAa,EAAE;AAAA,EACd,CAAE,EAAE,SAAS,MAAO,CAAE,4BAA6B,QAAS;AAC7D;AAcM,IAAM,qBAAqB,CACjC,SAAS,4BAA4B,MACjC;AACJ,SAAO,QAAS,CAAE,EAAE,KAAK,MAAO,KAAK,CAAE;AAGvC,MAAK,OAAO,8BAA+B;AAC1C,WAAO,6BAA6B,QAAS,CAAE,cAAe;AAC7D,YAAM,wBAAwB;AAAA,QAC7B,OAAQ,WAAY;AAAA,MACrB,EAAE,yBAA0B,SAAU;AAEtC,wBAAmB,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,QAK7B,GAAG;AAAA,QACH,OAAO,uBAAuB,SAAS;AAAA,QACvC,IAAO,uBAAuB,cAAc,KAAM,KAAK;AAAA,UACtD,YAAY;AAAA,QACb;AAAA;AAAA,QAEA,MAAM,SAAS,KAAM,EAAE,WAAW,GAAI;AACrC,gBAAM,cAAc,YAAY;AAChC,gBAAM,aAAa,cAAe,EAAE,KAAK,YAAY,CAAE;AACvD,gBAAM,EAAE,SAAS,QAAQ,MAAM,IAAI,oBAAqB;AAAA,YACvD,OAAO;AAAA,YACP;AAAA,UACD,CAAE;AAEF,cAAK,WAAW,WAAY;AAC3B,mBACC,oBAAC,SAAM,GAAG,YAAe,aAAI,UAAW,GAAG;AAAA,UAE7C;AAEA,cAAK,WAAW,SAAU;AACzB,mBACC,oBAAC,SAAM,GAAG,YACP;AAAA;AAAA,cAED,GAAI,yBAA0B;AAAA,cAC9B;AAAA,YACD,GACD;AAAA,UAEF;AAEA,iBACC;AAAA,YAAC;AAAA;AAAA,cACA,cAAe;AAAA,cACf,MAAO;AAAA;AAAA,UACR;AAAA,QAEF;AAAA,QACA,MAAM,MAAM;AAAA,MACb,CAAE;AAAA,IACH,CAAE;AAAA,EACH;AAEA,sBAA+B,cAAK;AACpC,MACC,OAAO,MACP,OAAO,GAAG,aACV,OAAO,KAAM,CAAE,EAAE,MAAAA,MAAK,MAAOA,UAAiB,YAAK,GAClD;AACD,kCAAuC,YAAK;AAAA,EAC7C;AACA,iCAAwC,YAAK;AAC7C,uBAA4B,UAAK;AAClC;AAaO,IAAM,+CACZ,WAAW,sBACR,CAAE,EAAE,gBAAgB,IAAI,CAAC,MAAO;AAChC,QAAM,qBAAqB,CAAE,kBAAkB,QAAQ,IAAK;AAC5D,eAAa,EACX;AAAA,IAAQ,CAAE,EAAE,SAAS,MACrB,4BAA6B,QAAS;AAAA,EACvC,EACC;AAAA,IACA,CAAE,EAAE,UAAU,EAAE,eAAe,EAAE,MAChC,mBAAmB,QACnB,mBAAmB,SAAU,cAAe;AAAA,EAC9C,EACC,QAAS,CAAE,EAAE,KAAK,MAAO,KAAK,CAAE;AAClC,IACA;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n\tregisterBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useDisabled } from '@wordpress/compose';\nimport { select } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport HtmlRenderer from './utils/html-renderer';\n\n/**\n * Internal dependencies\n */\n// Experimental blocks are only registered in the Gutenberg plugin (see\n// `__experimentalRegisterExperimentalCoreBlocks`). `registerCoreBlocks`\n// filters them out via `isBlockMetadataExperimental`, so they are never\n// available in WordPress core regardless of what ends up in the bundle.\nimport * as accordion from './accordion';\nimport * as accordionItem from './accordion-item';\nimport * as accordionHeading from './accordion-heading';\nimport * as accordionPanel from './accordion-panel';\nimport * as archives from './archives';\nimport * as avatar from './avatar';\nimport * as audio from './audio';\nimport * as breadcrumbs from './breadcrumbs';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as comments from './comments';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsPaginationPrevious from './comments-pagination-previous';\nimport * as commentsPagination from './comments-pagination';\nimport * as commentsPaginationNext from './comments-pagination-next';\nimport * as commentsPaginationNumbers from './comments-pagination-numbers';\nimport * as commentsTitle from './comments-title';\nimport * as cover from './cover';\nimport * as details from './details';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as form from './form';\nimport * as formInput from './form-input';\nimport * as formSubmitButton from './form-submit-button';\nimport * as formSubmissionNotification from './form-submission-notification';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as icon from './icon';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as math from './math';\nimport * as listItem from './list-item';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as navigationOverlayClose from './navigation-overlay-close';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as pageListItem from './page-list-item';\nimport * as paragraph from './paragraph';\nimport * as playlist from './playlist';\nimport * as playlistTrack from './playlist-track';\nimport * as postAuthor from './post-author';\nimport * as postAuthorName from './post-author-name';\nimport * as postAuthorBiography from './post-author-biography';\nimport * as postComment from './post-comment';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTimeToRead from './post-time-to-read';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryNoResults from './query-no-results';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as queryTotal from './query-total';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as readMore from './read-more';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as tabPanel from './tab-panel';\nimport * as tabPanels from './tab-panels';\nimport * as table from './table';\nimport * as tableOfContents from './table-of-contents';\nimport * as tabList from './tab-list';\nimport * as tabs from './tabs';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termCount from './term-count';\nimport * as termDescription from './term-description';\nimport * as termName from './term-name';\nimport * as termsQuery from './terms-query';\nimport * as termTemplate from './term-template';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\nimport * as footnotes from './footnotes';\n\nimport isBlockMetadataExperimental from './utils/is-block-metadata-experimental';\nimport { unlock } from './lock-unlock';\n\n/**\n * Function to get all the block-library blocks in an array\n */\nconst getAllBlocks = () => {\n\tconst blocks = [\n\t\t// Common blocks are grouped at the top to prioritize their display\n\t\t// in various contexts — like the inserter and auto-complete components.\n\t\tparagraph,\n\t\timage,\n\t\theading,\n\t\tgallery,\n\t\tlist,\n\t\tlistItem,\n\t\tquote,\n\n\t\t// Register all remaining core blocks.\n\t\taccordion,\n\t\taccordionItem,\n\t\taccordionHeading,\n\t\taccordionPanel,\n\t\tarchives,\n\t\taudio,\n\t\tbutton,\n\t\tbuttons,\n\t\tcalendar,\n\t\tcategories,\n\t\tcode,\n\t\tcolumn,\n\t\tcolumns,\n\t\tcommentAuthorAvatar,\n\t\tcover,\n\t\tdetails,\n\t\tembed,\n\t\tfile,\n\t\tgroup,\n\t\thtml,\n\t\tmath,\n\t\tlatestComments,\n\t\tlatestPosts,\n\t\tmediaText,\n\t\tmissing,\n\t\tmore,\n\t\tnextpage,\n\t\tpageList,\n\t\tpageListItem,\n\t\tpattern,\n\t\tplaylist,\n\t\tplaylistTrack,\n\t\tpreformatted,\n\t\tpullquote,\n\t\treusableBlock,\n\t\trss,\n\t\tsearch,\n\t\tseparator,\n\t\tshortcode,\n\t\tsocialLink,\n\t\tsocialLinks,\n\t\tspacer,\n\t\ttable,\n\t\ttabs,\n\t\ttabList,\n\t\ttabPanels,\n\t\ttabPanel,\n\t\ttagCloud,\n\t\ttextColumns,\n\t\tverse,\n\t\tvideo,\n\t\tfootnotes,\n\n\t\t// theme blocks\n\t\tnavigation,\n\t\tnavigationLink,\n\t\tnavigationSubmenu,\n\t\tsiteLogo,\n\t\tsiteTitle,\n\t\tsiteTagline,\n\t\tquery,\n\t\ttemplatePart,\n\t\tavatar,\n\t\tpostTitle,\n\t\tpostExcerpt,\n\t\tpostFeaturedImage,\n\t\tpostContent,\n\t\tpostAuthor,\n\t\tpostAuthorName,\n\t\tpostComment,\n\t\tpostCommentsCount,\n\t\tpostCommentsLink,\n\t\tpostDate,\n\t\tpostTerms,\n\t\tpostNavigationLink,\n\t\tpostTemplate,\n\t\tpostTimeToRead,\n\t\tqueryPagination,\n\t\tqueryPaginationNext,\n\t\tqueryPaginationNumbers,\n\t\tqueryPaginationPrevious,\n\t\tqueryNoResults,\n\t\tqueryTotal,\n\t\treadMore,\n\t\tcomments,\n\t\tcommentAuthorName,\n\t\tcommentContent,\n\t\tcommentDate,\n\t\tcommentEditLink,\n\t\tcommentReplyLink,\n\t\tcommentTemplate,\n\t\tcommentsTitle,\n\t\tcommentsPagination,\n\t\tcommentsPaginationNext,\n\t\tcommentsPaginationNumbers,\n\t\tcommentsPaginationPrevious,\n\t\tpostCommentsForm,\n\t\ttableOfContents,\n\t\thomeLink,\n\t\ticon,\n\t\tlogInOut,\n\t\tnavigationOverlayClose,\n\t\ttermCount,\n\t\ttermDescription,\n\t\ttermName,\n\t\ttermsQuery,\n\t\ttermTemplate,\n\t\tqueryTitle,\n\t\tpostAuthorBiography,\n\t\tbreadcrumbs,\n\t];\n\n\tif ( window?.__experimentalEnableFormBlocks ) {\n\t\tblocks.push( form );\n\t\tblocks.push( formInput );\n\t\tblocks.push( formSubmitButton );\n\t\tblocks.push( formSubmissionNotification );\n\t}\n\n\tif ( window?.__experimentalEnableBlockExperiments ) {\n\t\t// Blocks added here are only registered when the \"Block experiments\"\n\t\t// option is enabled in the Gutenberg > Experiments settings page.\n\t}\n\n\tblocks.push( classic );\n\n\treturn blocks.filter( Boolean );\n};\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () =>\n\tgetAllBlocks().filter(\n\t\t( { metadata } ) => ! isBlockMetadataExperimental( metadata )\n\t);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( ( { init } ) => init() );\n\n\t// Auto-register PHP-only blocks with ServerSideRender\n\tif ( window.__unstableAutoRegisterBlocks ) {\n\t\twindow.__unstableAutoRegisterBlocks.forEach( ( blockName ) => {\n\t\t\tconst bootstrappedBlockType = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBootstrappedBlockType( blockName );\n\n\t\t\tregisterBlockType( blockName, {\n\t\t\t\t// Use all metadata from PHP registration,\n\t\t\t\t// but fall back title to block name if not provided,\n\t\t\t\t// ensure minimum apiVersion 3 for block wrapper support,\n\t\t\t\t// and override with a ServerSideRender-based edit function.\n\t\t\t\t...bootstrappedBlockType,\n\t\t\t\ttitle: bootstrappedBlockType?.title || blockName,\n\t\t\t\t...( ( bootstrappedBlockType?.apiVersion ?? 0 ) < 3 && {\n\t\t\t\t\tapiVersion: 3,\n\t\t\t\t} ),\n\t\t\t\t// Always pass the postId context so the server-side render can\n\t\t\t\t// reproduce the same output as the front end, while preserving\n\t\t\t\t// any context declared in the block's PHP registration.\n\t\t\t\tusesContext: Array.from(\n\t\t\t\t\tnew Set( [\n\t\t\t\t\t\t...( bootstrappedBlockType?.usesContext ?? [] ),\n\t\t\t\t\t\t'postId',\n\t\t\t\t\t] )\n\t\t\t\t),\n\t\t\t\t// Inspector controls are rendered by the auto-register hook in block-editor\n\t\t\t\tedit: function Edit( { attributes, context } ) {\n\t\t\t\t\tconst disabledRef = useDisabled();\n\t\t\t\t\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\t\t\t\t\tconst { content, status, error } = useServerSideRender( {\n\t\t\t\t\t\tblock: blockName,\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t\turlQueryArgs: { post_id: context?.postId },\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( status === 'loading' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>{ __( 'Loading…' ) }</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( status === 'error' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: error message describing the problem */\n\t\t\t\t\t\t\t\t\t__( 'Error loading block: %s' ),\n\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<HtmlRenderer\n\t\t\t\t\t\t\twrapperProps={ blockProps }\n\t\t\t\t\t\t\thtml={ content }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tsave: () => null,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tsetDefaultBlockName( paragraph.name );\n\tif (\n\t\twindow.wp &&\n\t\twindow.wp.oldEditor &&\n\t\tblocks.some( ( { name } ) => name === classic.name )\n\t) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tsetGroupingBlockName( group.name );\n};\n\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\nexport const __experimentalRegisterExperimentalCoreBlocks =\n\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t? ( { enableFSEBlocks } = {} ) => {\n\t\t\t\tconst enabledExperiments = [ enableFSEBlocks ? 'fse' : null ];\n\t\t\t\tgetAllBlocks()\n\t\t\t\t\t.filter( ( { metadata } ) =>\n\t\t\t\t\t\tisBlockMetadataExperimental( metadata )\n\t\t\t\t\t)\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t( { metadata: { __experimental } } ) =>\n\t\t\t\t\t\t\t__experimental === true ||\n\t\t\t\t\t\t\tenabledExperiments.includes( __experimental )\n\t\t\t\t\t)\n\t\t\t\t\t.forEach( ( { init } ) => init() );\n\t\t }\n\t\t: undefined;\n\nexport { privateApis } from './private-apis';\n"],
5
+ "mappings": "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",
6
6
  "names": ["name"]
7
7
  }
@@ -133,13 +133,10 @@ function Controls({ attributes, setAttributes }) {
133
133
  value: slug,
134
134
  label: name
135
135
  }));
136
- const categorySuggestions = categoriesList?.reduce(
137
- (accumulator, category) => ({
138
- ...accumulator,
139
- [category.name]: category
140
- }),
141
- {}
142
- ) ?? {};
136
+ const categorySuggestions = categoriesList?.reduce((accumulator, category) => {
137
+ accumulator[category.name] = category;
138
+ return accumulator;
139
+ }, {}) ?? {};
143
140
  const selectCategories = (tokens) => {
144
141
  const hasNoSuggestion = tokens.some(
145
142
  (token) => typeof token === "string" && !categorySuggestions[token]
@@ -672,7 +669,7 @@ function LatestPostsEdit({
672
669
  {
673
670
  className: "wp-block-latest-posts__post-full-content",
674
671
  dangerouslySetInnerHTML: {
675
- __html: post.content.raw.trim()
672
+ __html: post.content.rendered.trim()
676
673
  }
677
674
  }
678
675
  )
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/latest-posts/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tpin,\n\tlist,\n\tgrid,\n\talignNone,\n\tpositionLeft,\n\tpositionCenter,\n\tpositionRight,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tDEFAULT_EXCERPT_LENGTH,\n} from './constants';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\nconst imageAlignmentOptions = [\n\t{\n\t\tvalue: 'none',\n\t\ticon: alignNone,\n\t\tlabel: __( 'None' ),\n\t},\n\t{\n\t\tvalue: 'left',\n\t\ticon: positionLeft,\n\t\tlabel: __( 'Left' ),\n\t},\n\t{\n\t\tvalue: 'center',\n\t\ticon: positionCenter,\n\t\tlabel: __( 'Center' ),\n\t},\n\t{\n\t\tvalue: 'right',\n\t\ticon: positionRight,\n\t\tlabel: __( 'Right' ),\n\t},\n];\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = post._embedded?.[ 'wp:featuredmedia' ]?.[ '0' ];\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nfunction getCurrentAuthor( post ) {\n\treturn post._embedded?.author?.[ 0 ];\n}\n\nfunction Controls( { attributes, setAttributes } ) {\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.width ?? 0,\n\t\t\t\tdefaultImageHeight:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.height ?? 0,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[ featuredImageSizeSlug ]\n\t);\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tdisplayPostContent: false,\n\t\t\t\t\t\tdisplayPostContentRadio: 'excerpt',\n\t\t\t\t\t\texcerptLength: DEFAULT_EXCERPT_LENGTH,\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\thasValue={ () => !! displayPostContent }\n\t\t\t\t\tlabel={ __( 'Display post content' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display post content' ) }\n\t\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => displayPostContentRadio !== 'excerpt' }\n\t\t\t\t\t\tlabel={ __( 'Content length' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: 'excerpt',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\tlabel={ __( 'Content length' ) }\n\t\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\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\tdisplayPostContentRadio: value,\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) }\n\t\t\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\texcerptLength !== DEFAULT_EXCERPT_LENGTH\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\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\texcerptLength: DEFAULT_EXCERPT_LENGTH,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\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={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\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</ToolsPanel>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Post meta' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tdisplayAuthor: false,\n\t\t\t\t\t\tdisplayPostDate: false,\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\thasValue={ () => !! displayAuthor }\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\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\thasValue={ () => !! displayPostDate }\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\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\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Featured image' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tdisplayFeaturedImage: false,\n\t\t\t\t\t\tfeaturedImageAlign: undefined,\n\t\t\t\t\t\tfeaturedImageSizeSlug: 'thumbnail',\n\t\t\t\t\t\tfeaturedImageSizeWidth: null,\n\t\t\t\t\t\tfeaturedImageSizeHeight: null,\n\t\t\t\t\t\taddLinkToFeaturedImage: false,\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\thasValue={ () => !! displayFeaturedImage }\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\tfeaturedImageSizeSlug !== 'thumbnail' ||\n\t\t\t\t\t\t\t\tfeaturedImageSizeWidth !== null ||\n\t\t\t\t\t\t\t\tfeaturedImageSizeHeight !== null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\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\tfeaturedImageSizeSlug: 'thumbnail',\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: null,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: null,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\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/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! featuredImageAlign }\n\t\t\t\t\t\t\tlabel={ __( 'Image alignment' ) }\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\tfeaturedImageAlign: 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\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tclassName=\"editor-latest-posts-image-alignment-control\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign || 'none' }\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\tfeaturedImageAlign:\n\t\t\t\t\t\t\t\t\t\t\tvalue !== 'none'\n\t\t\t\t\t\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\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>\n\t\t\t\t\t\t\t\t{ imageAlignmentOptions.map(\n\t\t\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ 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) }\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! addLinkToFeaturedImage }\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\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\taddLinkToFeaturedImage: false,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\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={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\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\taddLinkToFeaturedImage: 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/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Sorting and filtering' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\tpostsToShow: 5,\n\t\t\t\t\t\tcategories: undefined,\n\t\t\t\t\t\tselectedAuthor: 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\thasValue={ () =>\n\t\t\t\t\t\torder !== 'desc' ||\n\t\t\t\t\t\torderBy !== 'date' ||\n\t\t\t\t\t\tpostsToShow !== 5 ||\n\t\t\t\t\t\tcategories?.length > 0 ||\n\t\t\t\t\t\t!! selectedAuthor\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Sort and filter' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\t\tpostsToShow: 5,\n\t\t\t\t\t\t\tcategories: undefined,\n\t\t\t\t\t\t\tselectedAuthor: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<QueryControls\n\t\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t</>\n\t);\n}\n\nexport default function LatestPostsEdit( {\n\tattributes,\n\tsetAttributes,\n\t__unstableLayoutClassNames,\n} ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tlayout,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst { type: savedLayoutType, minimumColumnWidth } = layout || {};\n\tconst layoutType =\n\t\tsavedLayoutType || ( postLayout === 'grid' ? 'grid' : 'default' );\n\tconst columnCount =\n\t\tlayout?.columnCount ?? ( ! savedLayoutType ? columns : undefined ) ?? 3;\n\tconst { latestPosts } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'author,wp:featuredmedia',\n\t\t\t\t\tignore_sticky: true,\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ postsToShow, order, orderBy, categories, selectedAuthor ]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/latest-posts/redirection-prevented/${ instanceId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<Controls\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( __unstableLayoutClassNames, {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': layoutType === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columnCount }` ]:\n\t\t\t\tlayoutType === 'grid' && columnCount,\n\t\t\t'has-native-responsive-grid':\n\t\t\t\tlayoutType === 'grid' && columnCount && minimumColumnWidth,\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst setDisplayLayout = ( newDisplayLayout ) =>\n\t\tsetAttributes( {\n\t\t\tlayout: { ...layout, ...newDisplayLayout },\n\t\t\tpostLayout: undefined,\n\t\t\tcolumns: undefined,\n\t\t} );\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: _x( 'List view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setDisplayLayout( { type: 'default' } ),\n\t\t\tisActive: layoutType === 'default' || layoutType === 'constrained',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: _x( 'Grid view', 'Latest posts block display setting' ),\n\t\t\tonClick: () =>\n\t\t\t\tsetDisplayLayout( {\n\t\t\t\t\ttype: 'grid',\n\t\t\t\t\tcolumnCount,\n\t\t\t\t} ),\n\t\t\tisActive: layoutType === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = getCurrentAuthor( post );\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = clsx( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Hidden accessibility text: Post title */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'… <a>Read more<span>: %1$s</span></a>'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\ttitleTrimmed || __( '(no title)' )\n\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\ta: (\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__read-more\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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\tspan: (\n\t\t\t\t\t\t\t\t\t\t<span className=\"screen-reader-text\" />\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) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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\t\t{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\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</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\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\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tpin,\n\tlist,\n\tgrid,\n\talignNone,\n\tpositionLeft,\n\tpositionCenter,\n\tpositionRight,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tDEFAULT_EXCERPT_LENGTH,\n} from './constants';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\nconst imageAlignmentOptions = [\n\t{\n\t\tvalue: 'none',\n\t\ticon: alignNone,\n\t\tlabel: __( 'None' ),\n\t},\n\t{\n\t\tvalue: 'left',\n\t\ticon: positionLeft,\n\t\tlabel: __( 'Left' ),\n\t},\n\t{\n\t\tvalue: 'center',\n\t\ticon: positionCenter,\n\t\tlabel: __( 'Center' ),\n\t},\n\t{\n\t\tvalue: 'right',\n\t\ticon: positionRight,\n\t\tlabel: __( 'Right' ),\n\t},\n];\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = post._embedded?.[ 'wp:featuredmedia' ]?.[ '0' ];\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nfunction getCurrentAuthor( post ) {\n\treturn post._embedded?.author?.[ 0 ];\n}\n\nfunction Controls( { attributes, setAttributes } ) {\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.width ?? 0,\n\t\t\t\tdefaultImageHeight:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.height ?? 0,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[ featuredImageSizeSlug ]\n\t);\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce( ( accumulator, category ) => {\n\t\t\taccumulator[ category.name ] = category;\n\t\t\treturn accumulator;\n\t\t}, {} ) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tdisplayPostContent: false,\n\t\t\t\t\t\tdisplayPostContentRadio: 'excerpt',\n\t\t\t\t\t\texcerptLength: DEFAULT_EXCERPT_LENGTH,\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\thasValue={ () => !! displayPostContent }\n\t\t\t\t\tlabel={ __( 'Display post content' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display post content' ) }\n\t\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => displayPostContentRadio !== 'excerpt' }\n\t\t\t\t\t\tlabel={ __( 'Content length' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: 'excerpt',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\tlabel={ __( 'Content length' ) }\n\t\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\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\tdisplayPostContentRadio: value,\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) }\n\t\t\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\texcerptLength !== DEFAULT_EXCERPT_LENGTH\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\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\texcerptLength: DEFAULT_EXCERPT_LENGTH,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\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={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\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</ToolsPanel>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Post meta' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tdisplayAuthor: false,\n\t\t\t\t\t\tdisplayPostDate: false,\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\thasValue={ () => !! displayAuthor }\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\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\thasValue={ () => !! displayPostDate }\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\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\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Featured image' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tdisplayFeaturedImage: false,\n\t\t\t\t\t\tfeaturedImageAlign: undefined,\n\t\t\t\t\t\tfeaturedImageSizeSlug: 'thumbnail',\n\t\t\t\t\t\tfeaturedImageSizeWidth: null,\n\t\t\t\t\t\tfeaturedImageSizeHeight: null,\n\t\t\t\t\t\taddLinkToFeaturedImage: false,\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\thasValue={ () => !! displayFeaturedImage }\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\tfeaturedImageSizeSlug !== 'thumbnail' ||\n\t\t\t\t\t\t\t\tfeaturedImageSizeWidth !== null ||\n\t\t\t\t\t\t\t\tfeaturedImageSizeHeight !== null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\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\tfeaturedImageSizeSlug: 'thumbnail',\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: null,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: null,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\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/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! featuredImageAlign }\n\t\t\t\t\t\t\tlabel={ __( 'Image alignment' ) }\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\tfeaturedImageAlign: 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\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tclassName=\"editor-latest-posts-image-alignment-control\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign || 'none' }\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\tfeaturedImageAlign:\n\t\t\t\t\t\t\t\t\t\t\tvalue !== 'none'\n\t\t\t\t\t\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\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>\n\t\t\t\t\t\t\t\t{ imageAlignmentOptions.map(\n\t\t\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ 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) }\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! addLinkToFeaturedImage }\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\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\taddLinkToFeaturedImage: false,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\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={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\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\taddLinkToFeaturedImage: 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/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Sorting and filtering' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\tpostsToShow: 5,\n\t\t\t\t\t\tcategories: undefined,\n\t\t\t\t\t\tselectedAuthor: 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\thasValue={ () =>\n\t\t\t\t\t\torder !== 'desc' ||\n\t\t\t\t\t\torderBy !== 'date' ||\n\t\t\t\t\t\tpostsToShow !== 5 ||\n\t\t\t\t\t\tcategories?.length > 0 ||\n\t\t\t\t\t\t!! selectedAuthor\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Sort and filter' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\t\tpostsToShow: 5,\n\t\t\t\t\t\t\tcategories: undefined,\n\t\t\t\t\t\t\tselectedAuthor: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<QueryControls\n\t\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t</>\n\t);\n}\n\nexport default function LatestPostsEdit( {\n\tattributes,\n\tsetAttributes,\n\t__unstableLayoutClassNames,\n} ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tlayout,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst { type: savedLayoutType, minimumColumnWidth } = layout || {};\n\tconst layoutType =\n\t\tsavedLayoutType || ( postLayout === 'grid' ? 'grid' : 'default' );\n\tconst columnCount =\n\t\tlayout?.columnCount ?? ( ! savedLayoutType ? columns : undefined ) ?? 3;\n\tconst { latestPosts } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'author,wp:featuredmedia',\n\t\t\t\t\tignore_sticky: true,\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ postsToShow, order, orderBy, categories, selectedAuthor ]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/latest-posts/redirection-prevented/${ instanceId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<Controls\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( __unstableLayoutClassNames, {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': layoutType === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columnCount }` ]:\n\t\t\t\tlayoutType === 'grid' && columnCount,\n\t\t\t'has-native-responsive-grid':\n\t\t\t\tlayoutType === 'grid' && columnCount && minimumColumnWidth,\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst setDisplayLayout = ( newDisplayLayout ) =>\n\t\tsetAttributes( {\n\t\t\tlayout: { ...layout, ...newDisplayLayout },\n\t\t\tpostLayout: undefined,\n\t\t\tcolumns: undefined,\n\t\t} );\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: _x( 'List view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setDisplayLayout( { type: 'default' } ),\n\t\t\tisActive: layoutType === 'default' || layoutType === 'constrained',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: _x( 'Grid view', 'Latest posts block display setting' ),\n\t\t\tonClick: () =>\n\t\t\t\tsetDisplayLayout( {\n\t\t\t\t\ttype: 'grid',\n\t\t\t\t\tcolumnCount,\n\t\t\t\t} ),\n\t\t\tisActive: layoutType === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = getCurrentAuthor( post );\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = clsx( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Hidden accessibility text: Post title */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'… <a>Read more<span>: %1$s</span></a>'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\ttitleTrimmed || __( '(no title)' )\n\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\ta: (\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__read-more\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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\tspan: (\n\t\t\t\t\t\t\t\t\t\t<span className=\"screen-reader-text\" />\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) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\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\t\t{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.rendered.trim(),\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</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";AAGA,OAAO,UAAU;AAKjB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oCAAoC;AAAA,EACpC,8CAA8C;AAAA,EAC9C,4BAA4B;AAAA,EAC5B,gCAAgC;AAAA,OAC1B;AACP,SAAS,IAAI,IAAI,eAAe;AAChC,SAAS,UAAU,QAAQ,mBAAmB;AAC9C;AAAA,EACC;AAAA,EACA;AAAA,EACA,kCAAkC;AAAA,EAClC;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,WAAW,mBAAmB;AACvC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,SAAS,iBAAiB;AACnC,SAAS,SAAS,mBAAmB;AACrC,SAAS,qBAAqB;AAC9B,SAAS,gCAAgC;AAKzC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,sCAAsC;AA4I5C,SA4JE,UAzIA,KAnBF;AAvIH,IAAM,wBAAwB;AAAA,EAC7B,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AACV;AACA,IAAM,mBAAmB;AAAA,EACxB,UAAU;AAAA,EACV,qBAAqB,CAAE,MAAO;AAAA,EAC9B,SAAS;AACV;AACA,IAAM,wBAAwB;AAAA,EAC7B;AAAA,IACC,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO,GAAI,MAAO;AAAA,EACnB;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO,GAAI,MAAO;AAAA,EACnB;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO,GAAI,QAAS;AAAA,EACrB;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO,GAAI,OAAQ;AAAA,EACpB;AACD;AAEA,SAAS,wBAAyB,MAAM,MAAO;AAC9C,QAAM,QAAQ,KAAK,YAAa,kBAAmB,IAAK,GAAI;AAE5D,SAAO;AAAA,IACN,KACC,OAAO,eAAe,QAAS,IAAK,GAAG,cACvC,OAAO;AAAA,IACR,KAAK,OAAO;AAAA,EACb;AACD;AAEA,SAAS,iBAAkB,MAAO;AACjC,SAAO,KAAK,WAAW,SAAU,CAAE;AACpC;AAEA,SAAS,SAAU,EAAE,YAAY,cAAc,GAAI;AAClD,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AACJ,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAAA,IACH,CAAE,WAAY;AACb,YAAM,EAAE,kBAAkB,SAAS,IAAI,OAAQ,SAAU;AACzD,YAAM,WAAW,OAAQ,gBAAiB,EAAE,YAAY;AAExD,aAAO;AAAA,QACN,mBACC,SAAS,kBAAmB,qBAAsB,GAC/C,SAAS;AAAA,QACb,oBACC,SAAS,kBAAmB,qBAAsB,GAC/C,UAAU;AAAA,QACd,YAAY,SAAS;AAAA,QACrB,gBAAgB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,QACA,YAAY,SAAU,gBAAiB;AAAA,MACxC;AAAA,IACD;AAAA,IACA,CAAE,qBAAsB;AAAA,EACzB;AAEA,QAAM,oBAAoB,+BAA+B;AAEzD,QAAM,mBAAmB,WACvB,OAAQ,CAAE,EAAE,KAAK,MAAO,SAAS,MAAO,EACxC,IAAK,CAAE,EAAE,MAAM,KAAK,OAAS;AAAA,IAC7B,OAAO;AAAA,IACP,OAAO;AAAA,EACR,EAAI;AACL,QAAM,sBACL,gBAAgB,OAAQ,CAAE,aAAa,aAAc;AACpD,gBAAa,SAAS,IAAK,IAAI;AAC/B,WAAO;AAAA,EACR,GAAG,CAAC,CAAE,KAAK,CAAC;AACb,QAAM,mBAAmB,CAAE,WAAY;AACtC,UAAM,kBAAkB,OAAO;AAAA,MAC9B,CAAE,UACD,OAAO,UAAU,YAAY,CAAE,oBAAqB,KAAM;AAAA,IAC5D;AACA,QAAK,iBAAkB;AACtB;AAAA,IACD;AAGA,UAAM,gBAAgB,OAAO,IAAK,CAAE,UAAW;AAC9C,aAAO,OAAO,UAAU,WACrB,oBAAqB,KAAM,IAC3B;AAAA,IACJ,CAAE;AAGF,QAAK,cAAc,SAAU,IAAK,GAAI;AACrC,aAAO;AAAA,IACR;AACA,kBAAe,EAAE,YAAY,cAAc,CAAE;AAAA,EAC9C;AAEA,SACC,iCACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ,GAAI,cAAe;AAAA,QAC3B,UAAW,MACV,cAAe;AAAA,UACd,oBAAoB;AAAA,UACpB,yBAAyB;AAAA,UACzB,eAAe;AAAA,QAChB,CAAE;AAAA,QAEH;AAAA,QAEA;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,UAAW,MAAM,CAAC,CAAE;AAAA,cACpB,OAAQ,GAAI,sBAAuB;AAAA,cACnC,YAAa,MACZ,cAAe,EAAE,oBAAoB,MAAM,CAAE;AAAA,cAE9C,kBAAgB;AAAA,cAEhB;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,sBAAuB;AAAA,kBACnC,SAAU;AAAA,kBACV,UAAW,CAAE,UACZ,cAAe,EAAE,oBAAoB,MAAM,CAAE;AAAA;AAAA,cAE/C;AAAA;AAAA,UACD;AAAA,UACE,sBACD;AAAA,YAAC;AAAA;AAAA,cACA,UAAW,MAAM,4BAA4B;AAAA,cAC7C,OAAQ,GAAI,gBAAiB;AAAA,cAC7B,YAAa,MACZ,cAAe;AAAA,gBACd,yBAAyB;AAAA,cAC1B,CAAE;AAAA,cAEH,kBAAgB;AAAA,cAEhB;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,gBAAiB;AAAA,kBAC7B,UAAW;AAAA,kBACX,SAAU;AAAA,oBACT,EAAE,OAAO,GAAI,SAAU,GAAG,OAAO,UAAU;AAAA,oBAC3C;AAAA,sBACC,OAAO,GAAI,WAAY;AAAA,sBACvB,OAAO;AAAA,oBACR;AAAA,kBACD;AAAA,kBACA,UAAW,CAAE,UACZ,cAAe;AAAA,oBACd,yBAAyB;AAAA,kBAC1B,CAAE;AAAA;AAAA,cAEJ;AAAA;AAAA,UACD;AAAA,UAEC,sBACD,4BAA4B,aAC3B;AAAA,YAAC;AAAA;AAAA,cACA,UAAW,MACV,kBAAkB;AAAA,cAEnB,OAAQ,GAAI,qBAAsB;AAAA,cAClC,YAAa,MACZ,cAAe;AAAA,gBACd,eAAe;AAAA,cAChB,CAAE;AAAA,cAEH,kBAAgB;AAAA,cAEhB;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,qBAAsB;AAAA,kBAClC,OAAQ;AAAA,kBACR,UAAW,CAAE,UACZ,cAAe,EAAE,eAAe,MAAM,CAAE;AAAA,kBAEzC,KAAM;AAAA,kBACN,KAAM;AAAA;AAAA,cACP;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IAEH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ,GAAI,WAAY;AAAA,QACxB,UAAW,MACV,cAAe;AAAA,UACd,eAAe;AAAA,UACf,iBAAiB;AAAA,QAClB,CAAE;AAAA,QAEH;AAAA,QAEA;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,UAAW,MAAM,CAAC,CAAE;AAAA,cACpB,OAAQ,GAAI,qBAAsB;AAAA,cAClC,YAAa,MACZ,cAAe,EAAE,eAAe,MAAM,CAAE;AAAA,cAEzC,kBAAgB;AAAA,cAEhB;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,qBAAsB;AAAA,kBAClC,SAAU;AAAA,kBACV,UAAW,CAAE,UACZ,cAAe,EAAE,eAAe,MAAM,CAAE;AAAA;AAAA,cAE1C;AAAA;AAAA,UACD;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,UAAW,MAAM,CAAC,CAAE;AAAA,cACpB,OAAQ,GAAI,mBAAoB;AAAA,cAChC,YAAa,MACZ,cAAe,EAAE,iBAAiB,MAAM,CAAE;AAAA,cAE3C,kBAAgB;AAAA,cAEhB;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,mBAAoB;AAAA,kBAChC,SAAU;AAAA,kBACV,UAAW,CAAE,UACZ,cAAe,EAAE,iBAAiB,MAAM,CAAE;AAAA;AAAA,cAE5C;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IACD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ,GAAI,gBAAiB;AAAA,QAC7B,UAAW,MACV,cAAe;AAAA,UACd,sBAAsB;AAAA,UACtB,oBAAoB;AAAA,UACpB,uBAAuB;AAAA,UACvB,wBAAwB;AAAA,UACxB,yBAAyB;AAAA,UACzB,wBAAwB;AAAA,QACzB,CAAE;AAAA,QAEH;AAAA,QAEA;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,UAAW,MAAM,CAAC,CAAE;AAAA,cACpB,OAAQ,GAAI,wBAAyB;AAAA,cACrC,YAAa,MACZ,cAAe,EAAE,sBAAsB,MAAM,CAAE;AAAA,cAEhD,kBAAgB;AAAA,cAEhB;AAAA,gBAAC;AAAA;AAAA,kBACA,OAAQ,GAAI,wBAAyB;AAAA,kBACrC,SAAU;AAAA,kBACV,UAAW,CAAE,UACZ,cAAe,EAAE,sBAAsB,MAAM,CAAE;AAAA;AAAA,cAEjD;AAAA;AAAA,UACD;AAAA,UACE,wBACD,iCACC;AAAA;AAAA,cAAC;AAAA;AAAA,gBACA,UAAW,MACV,0BAA0B,eAC1B,2BAA2B,QAC3B,4BAA4B;AAAA,gBAE7B,OAAQ,GAAI,YAAa;AAAA,gBACzB,YAAa,MACZ,cAAe;AAAA,kBACd,uBAAuB;AAAA,kBACvB,wBAAwB;AAAA,kBACxB,yBAAyB;AAAA,gBAC1B,CAAE;AAAA,gBAEH,kBAAgB;AAAA,gBAEhB;AAAA,kBAAC;AAAA;AAAA,oBACA,UAAW,CAAE,UAAW;AACvB,4BAAM,WAAW,CAAC;AAClB,0BAAK,MAAM,eAAgB,OAAQ,GAAI;AACtC,iCAAS,yBACR,MAAM;AAAA,sBACR;AACA,0BAAK,MAAM,eAAgB,QAAS,GAAI;AACvC,iCAAS,0BACR,MAAM;AAAA,sBACR;AACA,oCAAe,QAAS;AAAA,oBACzB;AAAA,oBACA,MAAO;AAAA,oBACP,OAAQ;AAAA,oBACR,QAAS;AAAA,oBACT,YAAa;AAAA,oBACb,aAAc;AAAA,oBACd;AAAA,oBACA,eAAgB;AAAA,sBACf;AAAA,oBACD;AAAA,oBACA,eAAgB,CAAE,UACjB,cAAe;AAAA,sBACd,uBAAuB;AAAA,sBACvB,wBAAwB;AAAA,sBACxB,yBAAyB;AAAA,oBAC1B,CAAE;AAAA;AAAA,gBAEJ;AAAA;AAAA,YACD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACA,UAAW,MAAM,CAAC,CAAE;AAAA,gBACpB,OAAQ,GAAI,iBAAkB;AAAA,gBAC9B,YAAa,MACZ,cAAe;AAAA,kBACd,oBAAoB;AAAA,gBACrB,CAAE;AAAA,gBAEH,kBAAgB;AAAA,gBAEhB;AAAA,kBAAC;AAAA;AAAA,oBACA,WAAU;AAAA,oBACV,OAAQ,GAAI,iBAAkB;AAAA,oBAC9B,OAAQ,sBAAsB;AAAA,oBAC9B,UAAW,CAAE,UACZ,cAAe;AAAA,sBACd,oBACC,UAAU,SACP,QACA;AAAA,oBACL,CAAE;AAAA,oBAGD,gCAAsB;AAAA,sBACvB,CAAE,EAAE,OAAO,MAAM,MAAM,MAAO;AAC7B,+BACC;AAAA,0BAAC;AAAA;AAAA,4BAEA;AAAA,4BACA;AAAA,4BACA;AAAA;AAAA,0BAHM;AAAA,wBAIP;AAAA,sBAEF;AAAA,oBACD;AAAA;AAAA,gBACD;AAAA;AAAA,YACD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACA,UAAW,MAAM,CAAC,CAAE;AAAA,gBACpB,OAAQ,GAAI,4BAA6B;AAAA,gBACzC,YAAa,MACZ,cAAe;AAAA,kBACd,wBAAwB;AAAA,gBACzB,CAAE;AAAA,gBAEH,kBAAgB;AAAA,gBAEhB;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAQ,GAAI,4BAA6B;AAAA,oBACzC,SAAU;AAAA,oBACV,UAAW,CAAE,UACZ,cAAe;AAAA,sBACd,wBAAwB;AAAA,oBACzB,CAAE;AAAA;AAAA,gBAEJ;AAAA;AAAA,YACD;AAAA,aACD;AAAA;AAAA;AAAA,IAEF;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ,GAAI,uBAAwB;AAAA,QACpC,UAAW,MACV,cAAe;AAAA,UACd,OAAO;AAAA,UACP,SAAS;AAAA,UACT,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,gBAAgB;AAAA,QACjB,CAAE;AAAA,QAEH;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACA,UAAW,MACV,UAAU,UACV,YAAY,UACZ,gBAAgB,KAChB,YAAY,SAAS,KACrB,CAAC,CAAE;AAAA,YAEJ,OAAQ,GAAI,iBAAkB;AAAA,YAC9B,YAAa,MACZ,cAAe;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,cACT,aAAa;AAAA,cACb,YAAY;AAAA,cACZ,gBAAgB;AAAA,YACjB,CAAE;AAAA,YAEH,kBAAgB;AAAA,YAEhB;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG,EAAE,OAAO,QAAQ;AAAA,gBACtB,eAAgB;AAAA,gBAChB,eAAgB,CAAE,UACjB,cAAe,EAAE,OAAO,MAAM,CAAE;AAAA,gBAEjC,iBAAkB,CAAE,UACnB,cAAe,EAAE,SAAS,MAAM,CAAE;AAAA,gBAEnC,uBAAwB,CAAE,UACzB,cAAe,EAAE,aAAa,MAAM,CAAE;AAAA,gBAEvC;AAAA,gBACA,kBAAmB;AAAA,gBACnB,oBAAqB;AAAA,gBACrB,gBAAiB,CAAE,UAClB,cAAe;AAAA,kBACd,gBACC,OAAO,QAAQ,OAAQ,KAAM,IAAI;AAAA,gBACnC,CAAE;AAAA,gBAEH,YAAa,cAAc,CAAC;AAAA,gBAC5B,kBAAmB;AAAA;AAAA,YACpB;AAAA;AAAA,QACD;AAAA;AAAA,IACD;AAAA,KACD;AAEF;AAEe,SAAR,gBAAkC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,aAAa,cAAe,eAAgB;AAElD,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AACJ,QAAM,EAAE,MAAM,iBAAiB,mBAAmB,IAAI,UAAU,CAAC;AACjE,QAAM,aACL,oBAAqB,eAAe,SAAS,SAAS;AACvD,QAAM,cACL,QAAQ,gBAAiB,CAAE,kBAAkB,UAAU,WAAe;AACvE,QAAM,EAAE,YAAY,IAAI;AAAA,IACvB,CAAE,WAAY;AACb,YAAM,EAAE,iBAAiB,IAAI,OAAQ,SAAU;AAC/C,YAAM,SACL,cAAc,WAAW,SAAS,IAC/B,WAAW,IAAK,CAAE,QAAS,IAAI,EAAG,IAClC,CAAC;AACL,YAAM,mBAAmB,OAAO;AAAA,QAC/B,OAAO,QAAS;AAAA,UACf,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,eAAe;AAAA,QAChB,CAAE,EAAE,OAAQ,CAAE,CAAE,EAAE,KAAM,MAAO,OAAO,UAAU,WAAY;AAAA,MAC7D;AAEA,aAAO;AAAA,QACN,aAAa;AAAA,UACZ;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,aAAa,OAAO,SAAS,YAAY,cAAe;AAAA,EAC3D;AAGA,QAAM,EAAE,oBAAoB,IAAI,YAAa,WAAY;AACzD,QAAM,iCAAiC,CAAE,UAAW;AACnD,UAAM,eAAe;AACrB,wBAAqB,GAAI,mCAAoC,GAAG;AAAA,MAC/D,IAAI,yDAA0D,UAAW;AAAA,MACzE,MAAM;AAAA,IACP,CAAE;AAAA,EACH;AAEA,QAAM,WAAW,CAAC,CAAE,aAAa;AACjC,QAAM,oBACL,oBAAC,qBACA;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACD,GACD;AAGD,QAAM,aAAa,cAAe;AAAA,IACjC,WAAW,KAAM,4BAA4B;AAAA,MAC5C,+BAA+B;AAAA,MAC/B,WAAW,eAAe;AAAA,MAC1B,aAAa;AAAA,MACb,cAAc;AAAA,MACd,CAAE,WAAY,WAAY,EAAG,GAC5B,eAAe,UAAU;AAAA,MAC1B,8BACC,eAAe,UAAU,eAAe;AAAA,IAC1C,CAAE;AAAA,EACH,CAAE;AAEF,MAAK,CAAE,UAAW;AACjB,WACC,qBAAC,SAAM,GAAG,YACP;AAAA;AAAA,MACF,oBAAC,eAAY,MAAO,KAAM,OAAQ,GAAI,cAAe,GAClD,WAAE,MAAM,QAAS,WAAY,IAC9B,oBAAC,WAAQ,IAET,GAAI,iBAAkB,GAExB;AAAA,OACD;AAAA,EAEF;AAGA,QAAM,eACL,YAAY,SAAS,cAClB,YAAY,MAAO,GAAG,WAAY,IAClC;AAEJ,QAAM,mBAAmB,CAAE,qBAC1B,cAAe;AAAA,IACd,QAAQ,EAAE,GAAG,QAAQ,GAAG,iBAAiB;AAAA,IACzC,YAAY;AAAA,IACZ,SAAS;AAAA,EACV,CAAE;AAEH,QAAM,iBAAiB;AAAA,IACtB;AAAA,MACC,MAAM;AAAA,MACN,OAAO,GAAI,aAAa,oCAAqC;AAAA,MAC7D,SAAS,MAAM,iBAAkB,EAAE,MAAM,UAAU,CAAE;AAAA,MACrD,UAAU,eAAe,aAAa,eAAe;AAAA,IACtD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,OAAO,GAAI,aAAa,oCAAqC;AAAA,MAC7D,SAAS,MACR,iBAAkB;AAAA,QACjB,MAAM;AAAA,QACN;AAAA,MACD,CAAE;AAAA,MACH,UAAU,eAAe;AAAA,IAC1B;AAAA,EACD;AAEA,QAAM,aAAa,YAAY,EAAE,QAAQ;AAEzC,SACC,iCACG;AAAA;AAAA,IACF,oBAAC,iBACA,8BAAC,gBAAa,UAAW,gBAAiB,GAC3C;AAAA,IACA,oBAAC,QAAK,GAAG,YACN,uBAAa,IAAK,CAAE,SAAU;AAC/B,YAAM,eAAe,KAAK,MAAM,SAAS,KAAK;AAC9C,UAAI,UAAU,KAAK,QAAQ;AAC3B,YAAM,gBAAgB,iBAAkB,IAAK;AAE7C,YAAM,iBAAiB,SAAS,cAAe,KAAM;AACrD,qBAAe,YAAY;AAE3B,gBACC,eAAe,eACf,eAAe,aACf;AAED,YAAM,EAAE,KAAK,gBAAgB,KAAK,iBAAiB,IAClD,wBAAyB,MAAM,qBAAsB;AACtD,YAAM,eAAe,KAAM;AAAA,QAC1B,yCAAyC;AAAA,QACzC,CAAE,QAAS,kBAAmB,EAAG,GAChC,CAAC,CAAE;AAAA,MACL,CAAE;AACF,YAAM,sBACL,wBAAwB;AACzB,YAAM,gBAAgB,uBACrB;AAAA,QAAC;AAAA;AAAA,UACA,KAAM;AAAA,UACN,KAAM;AAAA,UACN,OAAQ;AAAA,YACP,UAAU;AAAA,YACV,WAAW;AAAA,UACZ;AAAA;AAAA,MACD;AAGD,YAAM,gBACL,gBAAgB,QAAQ,KAAK,EAAE,MAAO,GAAI,EAAE,UAC5C,KAAK,QAAQ,QAAQ;AAEtB,YAAM,cAAc,gBACnB,iCACG;AAAA,gBACA,KAAK,EACL,MAAO,KAAK,aAAc,EAC1B,KAAM,GAAI;AAAA,QACV;AAAA,UACD;AAAA;AAAA,YAEC;AAAA,cACC;AAAA,YACD;AAAA,YACA,gBAAgB,GAAI,YAAa;AAAA,UAClC;AAAA,UACA;AAAA,YACC;AAAA;AAAA,cAEC;AAAA,gBAAC;AAAA;AAAA,kBACA,WAAU;AAAA,kBACV,MAAO,KAAK;AAAA,kBACZ,KAAI;AAAA,kBACJ,SACC;AAAA;AAAA,cAEF;AAAA;AAAA,YAED,MACC,oBAAC,UAAK,WAAU,sBAAqB;AAAA,UAEvC;AAAA,QACD;AAAA,SACD,IAEA;AAGD,aACC,qBAAC,QACE;AAAA,+BACD,oBAAC,SAAI,WAAY,cACd,mCACD;AAAA,UAAC;AAAA;AAAA,YACA,MAAO,KAAK;AAAA,YACZ,SACC;AAAA,YAGC;AAAA;AAAA,QACH,IAEA,eAEF;AAAA,QAED;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,MAAO,KAAK;AAAA,YACZ,yBACC,CAAC,CAAE,eACA;AAAA,cACA,QAAQ;AAAA,YACR,IACA;AAAA,YAEJ,SAAU;AAAA,YAER,WAAE,eAAe,GAAI,YAAa,IAAI;AAAA;AAAA,QACzC;AAAA,QACE,iBAAiB,iBAClB,oBAAC,SAAI,WAAU,sCACZ;AAAA;AAAA,UAED,GAAI,OAAQ;AAAA,UACZ,cAAc;AAAA,QACf,GACD;AAAA,QAEC,mBAAmB,KAAK,YACzB;AAAA,UAAC;AAAA;AAAA,YACA,UAAW,OAAQ,KAAK,KAAK,QAAS;AAAA,YACtC,WAAU;AAAA,YAER,mBAAU,YAAY,KAAK,QAAS;AAAA;AAAA,QACvC;AAAA,QAEC,sBACD,4BAA4B,aAC3B,oBAAC,SAAI,WAAU,uCACZ,uBACH;AAAA,QAEA,sBACD,4BAA4B,eAC3B;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,yBAA0B;AAAA,cACzB,QAAQ,KAAK,QAAQ,SAAS,KAAK;AAAA,YACpC;AAAA;AAAA,QACD;AAAA,WA7DO,KAAK,EA+Df;AAAA,IAEF,CAAE,GACH;AAAA,KACD;AAEF;",
6
6
  "names": []
7
7
  }
@@ -77,7 +77,7 @@ function ListItemEdit({
77
77
  renderAppender: false,
78
78
  __unstableDisableDropZone: true
79
79
  });
80
- const useEnterRef = useEnter({ content, clientId });
80
+ const useEnterRef = useEnter(clientId);
81
81
  const useSpaceRef = useSpace(clientId);
82
82
  const onMerge = useMerge(clientId, mergeBlocks);
83
83
  return /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/list-item/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport {\n\tformatOutdent,\n\tformatOutdentRTL,\n\tformatIndentRTL,\n\tformatIndent,\n} from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseMerge,\n} from './hooks';\n\nexport function IndentUI( { clientId } ) {\n\tconst indentListItem = useIndentListItem( clientId );\n\tconst outdentListItem = useOutdentListItem();\n\tconst { canIndent, canOutdent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockIndex, getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanIndent: getBlockIndex( clientId ) > 0,\n\t\t\t\tcanOutdent:\n\t\t\t\t\tgetBlockName(\n\t\t\t\t\t\tgetBlockRootClientId( getBlockRootClientId( clientId ) )\n\t\t\t\t\t) === 'core/list-item',\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\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\tshortcut={ displayShortcut.shift( 'Tab' ) }\n\t\t\t\tdescription={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ () => outdentListItem() }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatIndentRTL : formatIndent }\n\t\t\t\ttitle={ __( 'Indent' ) }\n\t\t\t\tshortcut=\"Tab\"\n\t\t\t\tdescription={ __( 'Indent list item' ) }\n\t\t\t\tdisabled={ ! canIndent }\n\t\t\t\tonClick={ () => indentListItem() }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function ListItemEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tmergeBlocks,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onMerge = useMerge( clientId, mergeBlocks );\n\treturn (\n\t\t<>\n\t\t\t<li { ...innerBlocksProps }>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ useMergeRefs( [ useEnterRef, useSpaceRef ] ) }\n\t\t\t\t\tidentifier=\"content\"\n\t\t\t\t\ttagName=\"div\"\n\t\t\t\t\tonChange={ ( nextContent ) =>\n\t\t\t\t\t\tsetAttributes( { content: nextContent } )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\taria-label={ __( 'List text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'List' ) }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t/>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</li>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<IndentUI clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,OAAO,UAAU;AAC1B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAKhC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAqBL,mBACC,KADD;AAnBK,SAAS,SAAU,EAAE,SAAS,GAAI;AACxC,QAAM,iBAAiB,kBAAmB,QAAS;AACnD,QAAM,kBAAkB,mBAAmB;AAC3C,QAAM,EAAE,WAAW,WAAW,IAAI;AAAA,IACjC,CAAE,WAAY;AACb,YAAM,EAAE,eAAe,sBAAsB,aAAa,IACzD,OAAQ,gBAAiB;AAC1B,aAAO;AAAA,QACN,WAAW,cAAe,QAAS,IAAI;AAAA,QACvC,YACC;AAAA,UACC,qBAAsB,qBAAsB,QAAS,CAAE;AAAA,QACxD,MAAM;AAAA,MACR;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,SACC,iCACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,MAAO,MAAM,IAAI,mBAAmB;AAAA,QACpC,OAAQ,GAAI,SAAU;AAAA,QACtB,UAAW,gBAAgB,MAAO,KAAM;AAAA,QACxC,aAAc,GAAI,mBAAoB;AAAA,QACtC,UAAW,CAAE;AAAA,QACb,SAAU,MAAM,gBAAgB;AAAA;AAAA,IACjC;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,MAAO,MAAM,IAAI,kBAAkB;AAAA,QACnC,OAAQ,GAAI,QAAS;AAAA,QACrB,UAAS;AAAA,QACT,aAAc,GAAI,kBAAmB;AAAA,QACrC,UAAW,CAAE;AAAA,QACb,SAAU,MAAM,eAAe;AAAA;AAAA,IAChC;AAAA,KACD;AAEF;AAEe,SAAR,aAA+B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,aAAa,QAAQ,IAAI;AACjC,QAAM,aAAa,cAAc;AACjC,QAAM,mBAAmB,oBAAqB,YAAY;AAAA,IACzD,gBAAgB;AAAA,IAChB,2BAA2B;AAAA,EAC5B,CAAE;AACF,QAAM,cAAc,SAAU,EAAE,SAAS,SAAS,CAAE;AACpD,QAAM,cAAc,SAAU,QAAS;AACvC,QAAM,UAAU,SAAU,UAAU,WAAY;AAChD,SACC,iCACC;AAAA,yBAAC,QAAK,GAAG,kBACR;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,KAAM,aAAc,CAAE,aAAa,WAAY,CAAE;AAAA,UACjD,YAAW;AAAA,UACX,SAAQ;AAAA,UACR,UAAW,CAAE,gBACZ,cAAe,EAAE,SAAS,YAAY,CAAE;AAAA,UAEzC,OAAQ;AAAA,UACR,cAAa,GAAI,WAAY;AAAA,UAC7B,aAAc,eAAe,GAAI,MAAO;AAAA,UACxC;AAAA;AAAA,MACD;AAAA,MACE,iBAAiB;AAAA,OACpB;AAAA,IACA,oBAAC,iBAAc,OAAM,SACpB,8BAAC,YAAS,UAAsB,GACjC;AAAA,KACD;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport {\n\tformatOutdent,\n\tformatOutdentRTL,\n\tformatIndentRTL,\n\tformatIndent,\n} from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseMerge,\n} from './hooks';\n\nexport function IndentUI( { clientId } ) {\n\tconst indentListItem = useIndentListItem( clientId );\n\tconst outdentListItem = useOutdentListItem();\n\tconst { canIndent, canOutdent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockIndex, getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanIndent: getBlockIndex( clientId ) > 0,\n\t\t\t\tcanOutdent:\n\t\t\t\t\tgetBlockName(\n\t\t\t\t\t\tgetBlockRootClientId( getBlockRootClientId( clientId ) )\n\t\t\t\t\t) === 'core/list-item',\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\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\tshortcut={ displayShortcut.shift( 'Tab' ) }\n\t\t\t\tdescription={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ () => outdentListItem() }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatIndentRTL : formatIndent }\n\t\t\t\ttitle={ __( 'Indent' ) }\n\t\t\t\tshortcut=\"Tab\"\n\t\t\t\tdescription={ __( 'Indent list item' ) }\n\t\t\t\tdisabled={ ! canIndent }\n\t\t\t\tonClick={ () => indentListItem() }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function ListItemEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tmergeBlocks,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t} );\n\tconst useEnterRef = useEnter( clientId );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onMerge = useMerge( clientId, mergeBlocks );\n\treturn (\n\t\t<>\n\t\t\t<li { ...innerBlocksProps }>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ useMergeRefs( [ useEnterRef, useSpaceRef ] ) }\n\t\t\t\t\tidentifier=\"content\"\n\t\t\t\t\ttagName=\"div\"\n\t\t\t\t\tonChange={ ( nextContent ) =>\n\t\t\t\t\t\tsetAttributes( { content: nextContent } )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\taria-label={ __( 'List text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'List' ) }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t/>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</li>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<IndentUI clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,OAAO,UAAU;AAC1B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAKhC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAqBL,mBACC,KADD;AAnBK,SAAS,SAAU,EAAE,SAAS,GAAI;AACxC,QAAM,iBAAiB,kBAAmB,QAAS;AACnD,QAAM,kBAAkB,mBAAmB;AAC3C,QAAM,EAAE,WAAW,WAAW,IAAI;AAAA,IACjC,CAAE,WAAY;AACb,YAAM,EAAE,eAAe,sBAAsB,aAAa,IACzD,OAAQ,gBAAiB;AAC1B,aAAO;AAAA,QACN,WAAW,cAAe,QAAS,IAAI;AAAA,QACvC,YACC;AAAA,UACC,qBAAsB,qBAAsB,QAAS,CAAE;AAAA,QACxD,MAAM;AAAA,MACR;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,SACC,iCACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,MAAO,MAAM,IAAI,mBAAmB;AAAA,QACpC,OAAQ,GAAI,SAAU;AAAA,QACtB,UAAW,gBAAgB,MAAO,KAAM;AAAA,QACxC,aAAc,GAAI,mBAAoB;AAAA,QACtC,UAAW,CAAE;AAAA,QACb,SAAU,MAAM,gBAAgB;AAAA;AAAA,IACjC;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,MAAO,MAAM,IAAI,kBAAkB;AAAA,QACnC,OAAQ,GAAI,QAAS;AAAA,QACrB,UAAS;AAAA,QACT,aAAc,GAAI,kBAAmB;AAAA,QACrC,UAAW,CAAE;AAAA,QACb,SAAU,MAAM,eAAe;AAAA;AAAA,IAChC;AAAA,KACD;AAEF;AAEe,SAAR,aAA+B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,aAAa,QAAQ,IAAI;AACjC,QAAM,aAAa,cAAc;AACjC,QAAM,mBAAmB,oBAAqB,YAAY;AAAA,IACzD,gBAAgB;AAAA,IAChB,2BAA2B;AAAA,EAC5B,CAAE;AACF,QAAM,cAAc,SAAU,QAAS;AACvC,QAAM,cAAc,SAAU,QAAS;AACvC,QAAM,UAAU,SAAU,UAAU,WAAY;AAChD,SACC,iCACC;AAAA,yBAAC,QAAK,GAAG,kBACR;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,KAAM,aAAc,CAAE,aAAa,WAAY,CAAE;AAAA,UACjD,YAAW;AAAA,UACX,SAAQ;AAAA,UACR,UAAW,CAAE,gBACZ,cAAe,EAAE,SAAS,YAAY,CAAE;AAAA,UAEzC,OAAQ;AAAA,UACR,cAAa,GAAI,WAAY;AAAA,UAC7B,aAAc,eAAe,GAAI,MAAO;AAAA,UACxC;AAAA;AAAA,MACD;AAAA,MACE,iBAAiB;AAAA,OACpB;AAAA,IACA,oBAAC,iBAAc,OAAM,SACpB,8BAAC,YAAS,UAAsB,GACjC;AAAA,KACD;AAEF;",
6
6
  "names": []
7
7
  }
@@ -4,37 +4,36 @@ import {
4
4
  getDefaultBlockName,
5
5
  cloneBlock
6
6
  } from "@wordpress/blocks";
7
- import { useRef } from "@wordpress/element";
8
- import {
9
- useRefEffect,
10
- privateApis as composePrivateApis
11
- } from "@wordpress/compose";
7
+ import { useRefEffect } from "@wordpress/compose";
8
+ import { privateApis as richTextPrivateApis } from "@wordpress/rich-text";
12
9
  import { ENTER } from "@wordpress/keycodes";
13
10
  import { useSelect, useDispatch } from "@wordpress/data";
14
11
  import { store as blockEditorStore } from "@wordpress/block-editor";
15
12
  import useOutdentListItem from "./use-outdent-list-item.mjs";
16
13
  import { unlock } from "../../lock-unlock.mjs";
17
- var { subscribeDelegatedListener } = unlock(composePrivateApis);
18
- function useEnter(props) {
14
+ var { subscribeOwnedListener } = unlock(richTextPrivateApis);
15
+ function useEnter(clientId) {
19
16
  const { replaceBlocks, selectionChange } = useDispatch(blockEditorStore);
20
- const { getBlock, getBlockRootClientId, getBlockIndex, getBlockName } = useSelect(blockEditorStore);
21
- const propsRef = useRef(props);
22
- propsRef.current = props;
17
+ const {
18
+ getBlock,
19
+ getBlockAttributes,
20
+ getBlockRootClientId,
21
+ getBlockIndex,
22
+ getBlockName
23
+ } = useSelect(blockEditorStore);
23
24
  const outdentListItem = useOutdentListItem();
24
25
  return useRefEffect((element) => {
25
26
  function onKeyDown(event) {
26
27
  if (event.defaultPrevented || event.keyCode !== ENTER) {
27
28
  return;
28
29
  }
29
- const { content, clientId } = propsRef.current;
30
- if (content.length) {
30
+ const { content } = getBlockAttributes(clientId) ?? {};
31
+ if (content?.length) {
31
32
  return;
32
33
  }
33
34
  event.preventDefault();
34
35
  const canOutdent = getBlockName(
35
- getBlockRootClientId(
36
- getBlockRootClientId(propsRef.current.clientId)
37
- )
36
+ getBlockRootClientId(getBlockRootClientId(clientId))
38
37
  ) === "core/list-item";
39
38
  if (canOutdent) {
40
39
  outdentListItem();
@@ -69,12 +68,7 @@ function useEnter(props) {
69
68
  );
70
69
  selectionChange(middle.clientId);
71
70
  }
72
- return subscribeDelegatedListener(
73
- element,
74
- "keydown",
75
- onKeyDown,
76
- true
77
- );
71
+ return subscribeOwnedListener(element, "keydown", onKeyDown, true);
78
72
  }, []);
79
73
  }
80
74
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/list-item/hooks/use-enter.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tcloneBlock,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\nimport {\n\tuseRefEffect,\n\tprivateApis as composePrivateApis,\n} from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { subscribeDelegatedListener } = unlock( composePrivateApis );\n\nexport default function useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex, getBlockName } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\tconst outdentListItem = useOutdentListItem();\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst canOutdent =\n\t\t\t\tgetBlockName(\n\t\t\t\t\tgetBlockRootClientId(\n\t\t\t\t\t\tgetBlockRootClientId( propsRef.current.clientId )\n\t\t\t\t\t)\n\t\t\t\t) === 'core/list-item';\n\t\t\tif ( canOutdent ) {\n\t\t\t\toutdentListItem();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Here we are in top level list so we need to split.\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\t// Last list item might contain a `list` block innerBlock\n\t\t\t// In that case append remaining innerBlocks blocks.\n\t\t\tconst after = [\n\t\t\t\t...( topParentListBlock.innerBlocks[ blockIndex ]\n\t\t\t\t\t.innerBlocks[ 0 ]?.innerBlocks || [] ),\n\t\t\t\t...topParentListBlock.innerBlocks.slice( blockIndex + 1 ),\n\t\t\t];\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\t// Capture phase so we run before writing-flow's ancestor-bubble\n\t\t// keydown handlers that gate on `event.defaultPrevented`.\n\t\treturn subscribeDelegatedListener(\n\t\t\telement,\n\t\t\t'keydown',\n\t\t\tonKeyDown,\n\t\t\ttrue\n\t\t);\n\t}, [] );\n}\n"],
5
- "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,cAAc;AACvB;AAAA,EACC;AAAA,EACA,eAAe;AAAA,OACT;AACP,SAAS,aAAa;AACtB,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,wBAAwB;AAK1C,OAAO,wBAAwB;AAC/B,SAAS,cAAc;AAEvB,IAAM,EAAE,2BAA2B,IAAI,OAAQ,kBAAmB;AAEnD,SAAR,SAA2B,OAAQ;AACzC,QAAM,EAAE,eAAe,gBAAgB,IAAI,YAAa,gBAAiB;AACzE,QAAM,EAAE,UAAU,sBAAsB,eAAe,aAAa,IACnE,UAAW,gBAAiB;AAC7B,QAAM,WAAW,OAAQ,KAAM;AAC/B,WAAS,UAAU;AACnB,QAAM,kBAAkB,mBAAmB;AAC3C,SAAO,aAAc,CAAE,YAAa;AACnC,aAAS,UAAW,OAAQ;AAC3B,UAAK,MAAM,oBAAoB,MAAM,YAAY,OAAQ;AACxD;AAAA,MACD;AACA,YAAM,EAAE,SAAS,SAAS,IAAI,SAAS;AACvC,UAAK,QAAQ,QAAS;AACrB;AAAA,MACD;AACA,YAAM,eAAe;AACrB,YAAM,aACL;AAAA,QACC;AAAA,UACC,qBAAsB,SAAS,QAAQ,QAAS;AAAA,QACjD;AAAA,MACD,MAAM;AACP,UAAK,YAAa;AACjB,wBAAgB;AAChB;AAAA,MACD;AAEA,YAAM,qBAAqB;AAAA,QAC1B,qBAAsB,QAAS;AAAA,MAChC;AACA,YAAM,aAAa,cAAe,QAAS;AAC3C,YAAM,OAAO,WAAY;AAAA,QACxB,GAAG;AAAA,QACH,aAAa,mBAAmB,YAAY;AAAA,UAC3C;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAE;AACF,YAAM,SAAS,YAAa,oBAAoB,CAAE;AAGlD,YAAM,QAAQ;AAAA,QACb,GAAK,mBAAmB,YAAa,UAAW,EAC9C,YAAa,CAAE,GAAG,eAAe,CAAC;AAAA,QACpC,GAAG,mBAAmB,YAAY,MAAO,aAAa,CAAE;AAAA,MACzD;AACA,YAAM,OAAO,MAAM,SAChB;AAAA,QACA,WAAY;AAAA,UACX,GAAG;AAAA,UACH,aAAa;AAAA,QACd,CAAE;AAAA,MACF,IACA,CAAC;AACJ;AAAA,QACC,mBAAmB;AAAA,QACnB,CAAE,MAAM,QAAQ,GAAG,IAAK;AAAA,QACxB;AAAA,MACD;AAGA,sBAAiB,OAAO,QAAS;AAAA,IAClC;AAIA,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AACP;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tcloneBlock,\n} from '@wordpress/blocks';\nimport { useRefEffect } from '@wordpress/compose';\nimport { privateApis as richTextPrivateApis } from '@wordpress/rich-text';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { subscribeOwnedListener } = unlock( richTextPrivateApis );\n\nexport default function useEnter( clientId ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlock,\n\t\tgetBlockAttributes,\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst outdentListItem = useOutdentListItem();\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content } = getBlockAttributes( clientId ) ?? {};\n\t\t\tif ( content?.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst canOutdent =\n\t\t\t\tgetBlockName(\n\t\t\t\t\tgetBlockRootClientId( getBlockRootClientId( clientId ) )\n\t\t\t\t) === 'core/list-item';\n\t\t\tif ( canOutdent ) {\n\t\t\t\toutdentListItem();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Here we are in top level list so we need to split.\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\t// Last list item might contain a `list` block innerBlock\n\t\t\t// In that case append remaining innerBlocks blocks.\n\t\t\tconst after = [\n\t\t\t\t...( topParentListBlock.innerBlocks[ blockIndex ]\n\t\t\t\t\t.innerBlocks[ 0 ]?.innerBlocks || [] ),\n\t\t\t\t...topParentListBlock.innerBlocks.slice( blockIndex + 1 ),\n\t\t\t];\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\t// Capture phase so we run before writing-flow's ancestor-bubble\n\t\t// keydown handlers that gate on `event.defaultPrevented`.\n\t\treturn subscribeOwnedListener( element, 'keydown', onKeyDown, true );\n\t}, [] );\n}\n"],
5
+ "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,oBAAoB;AAC7B,SAAS,eAAe,2BAA2B;AACnD,SAAS,aAAa;AACtB,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,wBAAwB;AAK1C,OAAO,wBAAwB;AAC/B,SAAS,cAAc;AAEvB,IAAM,EAAE,uBAAuB,IAAI,OAAQ,mBAAoB;AAEhD,SAAR,SAA2B,UAAW;AAC5C,QAAM,EAAE,eAAe,gBAAgB,IAAI,YAAa,gBAAiB;AACzE,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,UAAW,gBAAiB;AAChC,QAAM,kBAAkB,mBAAmB;AAC3C,SAAO,aAAc,CAAE,YAAa;AACnC,aAAS,UAAW,OAAQ;AAC3B,UAAK,MAAM,oBAAoB,MAAM,YAAY,OAAQ;AACxD;AAAA,MACD;AACA,YAAM,EAAE,QAAQ,IAAI,mBAAoB,QAAS,KAAK,CAAC;AACvD,UAAK,SAAS,QAAS;AACtB;AAAA,MACD;AACA,YAAM,eAAe;AACrB,YAAM,aACL;AAAA,QACC,qBAAsB,qBAAsB,QAAS,CAAE;AAAA,MACxD,MAAM;AACP,UAAK,YAAa;AACjB,wBAAgB;AAChB;AAAA,MACD;AAEA,YAAM,qBAAqB;AAAA,QAC1B,qBAAsB,QAAS;AAAA,MAChC;AACA,YAAM,aAAa,cAAe,QAAS;AAC3C,YAAM,OAAO,WAAY;AAAA,QACxB,GAAG;AAAA,QACH,aAAa,mBAAmB,YAAY;AAAA,UAC3C;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAE;AACF,YAAM,SAAS,YAAa,oBAAoB,CAAE;AAGlD,YAAM,QAAQ;AAAA,QACb,GAAK,mBAAmB,YAAa,UAAW,EAC9C,YAAa,CAAE,GAAG,eAAe,CAAC;AAAA,QACpC,GAAG,mBAAmB,YAAY,MAAO,aAAa,CAAE;AAAA,MACzD;AACA,YAAM,OAAO,MAAM,SAChB;AAAA,QACA,WAAY;AAAA,UACX,GAAG;AAAA,UACH,aAAa;AAAA,QACd,CAAE;AAAA,MACF,IACA,CAAC;AACJ;AAAA,QACC,mBAAmB;AAAA,QACnB,CAAE,MAAM,QAAQ,GAAG,IAAK;AAAA,QACxB;AAAA,MACD;AAGA,sBAAiB,OAAO,QAAS;AAAA,IAClC;AAIA,WAAO,uBAAwB,SAAS,WAAW,WAAW,IAAK;AAAA,EACpE,GAAG,CAAC,CAAE;AACP;",
6
6
  "names": []
7
7
  }
@@ -1,15 +1,13 @@
1
1
  // packages/block-library/src/list-item/hooks/use-space.js
2
- import {
3
- useRefEffect,
4
- privateApis as composePrivateApis
5
- } from "@wordpress/compose";
2
+ import { useRefEffect } from "@wordpress/compose";
3
+ import { privateApis as richTextPrivateApis } from "@wordpress/rich-text";
6
4
  import { SPACE, TAB } from "@wordpress/keycodes";
7
5
  import { store as blockEditorStore } from "@wordpress/block-editor";
8
6
  import { useSelect } from "@wordpress/data";
9
7
  import useIndentListItem from "./use-indent-list-item.mjs";
10
8
  import useOutdentListItem from "./use-outdent-list-item.mjs";
11
9
  import { unlock } from "../../lock-unlock.mjs";
12
- var { subscribeDelegatedListener } = unlock(composePrivateApis);
10
+ var { subscribeOwnedListener } = unlock(richTextPrivateApis);
13
11
  function useSpace(clientId) {
14
12
  const { getSelectionStart, getSelectionEnd, getBlockIndex } = useSelect(blockEditorStore);
15
13
  const indentListItem = useIndentListItem(clientId);
@@ -38,7 +36,7 @@ function useSpace(clientId) {
38
36
  }
39
37
  }
40
38
  }
41
- return subscribeDelegatedListener(
39
+ return subscribeOwnedListener(
42
40
  element,
43
41
  "keydown",
44
42
  onKeyDown,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/list-item/hooks/use-space.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tuseRefEffect,\n\tprivateApis as composePrivateApis,\n} from '@wordpress/compose';\nimport { SPACE, TAB } from '@wordpress/keycodes';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport useIndentListItem from './use-indent-list-item';\nimport useOutdentListItem from './use-outdent-list-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { subscribeDelegatedListener } = unlock( composePrivateApis );\n\nexport default function useSpace( clientId ) {\n\tconst { getSelectionStart, getSelectionEnd, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst indentListItem = useIndentListItem( clientId );\n\tconst outdentListItem = useOutdentListItem();\n\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t( keyCode !== SPACE && keyCode !== TAB ) ||\n\t\t\t\t\t// Only override when no modifiers are pressed.\n\t\t\t\t\taltKey ||\n\t\t\t\t\tmetaKey ||\n\t\t\t\t\tctrlKey\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\tconst selectionEnd = getSelectionEnd();\n\t\t\t\tif (\n\t\t\t\t\tselectionStart.offset === 0 &&\n\t\t\t\t\tselectionEnd.offset === 0\n\t\t\t\t) {\n\t\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\t\t// Note that backspace behaviour in defined in onMerge.\n\t\t\t\t\t\tif ( keyCode === TAB ) {\n\t\t\t\t\t\t\tif ( outdentListItem() ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( getBlockIndex( clientId ) !== 0 ) {\n\t\t\t\t\t\tif ( indentListItem() ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Capture phase so we run before writing-flow's ancestor-bubble\n\t\t\t// keydown handlers that gate on `event.defaultPrevented`.\n\t\t\treturn subscribeDelegatedListener(\n\t\t\t\telement,\n\t\t\t\t'keydown',\n\t\t\t\tonKeyDown,\n\t\t\t\ttrue\n\t\t\t);\n\t\t},\n\t\t[ clientId, indentListItem ]\n\t);\n}\n"],
5
- "mappings": ";AAGA;AAAA,EACC;AAAA,EACA,eAAe;AAAA,OACT;AACP,SAAS,OAAO,WAAW;AAC3B,SAAS,SAAS,wBAAwB;AAC1C,SAAS,iBAAiB;AAK1B,OAAO,uBAAuB;AAC9B,OAAO,wBAAwB;AAC/B,SAAS,cAAc;AAEvB,IAAM,EAAE,2BAA2B,IAAI,OAAQ,kBAAmB;AAEnD,SAAR,SAA2B,UAAW;AAC5C,QAAM,EAAE,mBAAmB,iBAAiB,cAAc,IACzD,UAAW,gBAAiB;AAC7B,QAAM,iBAAiB,kBAAmB,QAAS;AACnD,QAAM,kBAAkB,mBAAmB;AAE3C,SAAO;AAAA,IACN,CAAE,YAAa;AACd,eAAS,UAAW,OAAQ;AAC3B,cAAM,EAAE,SAAS,UAAU,QAAQ,SAAS,QAAQ,IAAI;AAExD,YACC,MAAM,oBACJ,YAAY,SAAS,YAAY;AAAA,QAEnC,UACA,WACA,SACC;AACD;AAAA,QACD;AAEA,cAAM,iBAAiB,kBAAkB;AACzC,cAAM,eAAe,gBAAgB;AACrC,YACC,eAAe,WAAW,KAC1B,aAAa,WAAW,GACvB;AACD,cAAK,UAAW;AAEf,gBAAK,YAAY,KAAM;AACtB,kBAAK,gBAAgB,GAAI;AACxB,sBAAM,eAAe;AAAA,cACtB;AAAA,YACD;AAAA,UACD,WAAY,cAAe,QAAS,MAAM,GAAI;AAC7C,gBAAK,eAAe,GAAI;AACvB,oBAAM,eAAe;AAAA,YACtB;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAIA,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,UAAU,cAAe;AAAA,EAC5B;AACD;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { privateApis as richTextPrivateApis } from '@wordpress/rich-text';\nimport { SPACE, TAB } from '@wordpress/keycodes';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport useIndentListItem from './use-indent-list-item';\nimport useOutdentListItem from './use-outdent-list-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { subscribeOwnedListener } = unlock( richTextPrivateApis );\n\nexport default function useSpace( clientId ) {\n\tconst { getSelectionStart, getSelectionEnd, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst indentListItem = useIndentListItem( clientId );\n\tconst outdentListItem = useOutdentListItem();\n\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t( keyCode !== SPACE && keyCode !== TAB ) ||\n\t\t\t\t\t// Only override when no modifiers are pressed.\n\t\t\t\t\taltKey ||\n\t\t\t\t\tmetaKey ||\n\t\t\t\t\tctrlKey\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\tconst selectionEnd = getSelectionEnd();\n\t\t\t\tif (\n\t\t\t\t\tselectionStart.offset === 0 &&\n\t\t\t\t\tselectionEnd.offset === 0\n\t\t\t\t) {\n\t\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\t\t// Note that backspace behaviour in defined in onMerge.\n\t\t\t\t\t\tif ( keyCode === TAB ) {\n\t\t\t\t\t\t\tif ( outdentListItem() ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( getBlockIndex( clientId ) !== 0 ) {\n\t\t\t\t\t\tif ( indentListItem() ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Capture phase so we run before writing-flow's ancestor-bubble\n\t\t\t// keydown handlers that gate on `event.defaultPrevented`.\n\t\t\treturn subscribeOwnedListener(\n\t\t\t\telement,\n\t\t\t\t'keydown',\n\t\t\t\tonKeyDown,\n\t\t\t\ttrue\n\t\t\t);\n\t\t},\n\t\t[ clientId, indentListItem ]\n\t);\n}\n"],
5
+ "mappings": ";AAGA,SAAS,oBAAoB;AAC7B,SAAS,eAAe,2BAA2B;AACnD,SAAS,OAAO,WAAW;AAC3B,SAAS,SAAS,wBAAwB;AAC1C,SAAS,iBAAiB;AAK1B,OAAO,uBAAuB;AAC9B,OAAO,wBAAwB;AAC/B,SAAS,cAAc;AAEvB,IAAM,EAAE,uBAAuB,IAAI,OAAQ,mBAAoB;AAEhD,SAAR,SAA2B,UAAW;AAC5C,QAAM,EAAE,mBAAmB,iBAAiB,cAAc,IACzD,UAAW,gBAAiB;AAC7B,QAAM,iBAAiB,kBAAmB,QAAS;AACnD,QAAM,kBAAkB,mBAAmB;AAE3C,SAAO;AAAA,IACN,CAAE,YAAa;AACd,eAAS,UAAW,OAAQ;AAC3B,cAAM,EAAE,SAAS,UAAU,QAAQ,SAAS,QAAQ,IAAI;AAExD,YACC,MAAM,oBACJ,YAAY,SAAS,YAAY;AAAA,QAEnC,UACA,WACA,SACC;AACD;AAAA,QACD;AAEA,cAAM,iBAAiB,kBAAkB;AACzC,cAAM,eAAe,gBAAgB;AACrC,YACC,eAAe,WAAW,KAC1B,aAAa,WAAW,GACvB;AACD,cAAK,UAAW;AAEf,gBAAK,YAAY,KAAM;AACtB,kBAAK,gBAAgB,GAAI;AACxB,sBAAM,eAAe;AAAA,cACtB;AAAA,YACD;AAAA,UACD,WAAY,cAAe,QAAS,MAAM,GAAI;AAC7C,gBAAK,eAAe,GAAI;AACvB,oBAAM,eAAe;AAAA,YACtB;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAIA,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,UAAU,cAAe;AAAA,EAC5B;AACD;",
6
6
  "names": []
7
7
  }
@@ -29,6 +29,7 @@
29
29
  "supports": {
30
30
  "align": [ "wide", "full" ],
31
31
  "splitting": true,
32
+ "editableRoot": true,
32
33
  "anchor": true,
33
34
  "className": false,
34
35
  "__experimentalBorder": {
@@ -1,9 +1,7 @@
1
1
  // packages/block-library/src/paragraph/use-enter.js
2
2
  import { useRef } from "@wordpress/element";
3
- import {
4
- useRefEffect,
5
- privateApis as composePrivateApis
6
- } from "@wordpress/compose";
3
+ import { useRefEffect } from "@wordpress/compose";
4
+ import { privateApis as richTextPrivateApis } from "@wordpress/rich-text";
7
5
  import { ENTER } from "@wordpress/keycodes";
8
6
  import { useSelect, useDispatch, useRegistry } from "@wordpress/data";
9
7
  import { store as blockEditorStore } from "@wordpress/block-editor";
@@ -14,7 +12,7 @@ import {
14
12
  getDefaultBlockName
15
13
  } from "@wordpress/blocks";
16
14
  import { unlock } from "../lock-unlock.mjs";
17
- var { subscribeDelegatedListener } = unlock(composePrivateApis);
15
+ var { subscribeOwnedListener } = unlock(richTextPrivateApis);
18
16
  function useOnEnter(props) {
19
17
  const { batch } = useRegistry();
20
18
  const { moveBlocksToPosition, replaceBlocks, selectionChange } = useDispatch(blockEditorStore);
@@ -91,12 +89,7 @@ function useOnEnter(props) {
91
89
  selectionChange(middle.clientId);
92
90
  });
93
91
  }
94
- return subscribeDelegatedListener(
95
- element,
96
- "keydown",
97
- onKeyDown,
98
- true
99
- );
92
+ return subscribeOwnedListener(element, "keydown", onKeyDown, true);
100
93
  }, []);
101
94
  }
102
95
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/paragraph/use-enter.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport {\n\tuseRefEffect,\n\tprivateApis as composePrivateApis,\n} from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\thasBlockSupport,\n\tcreateBlock,\n\tcloneBlock,\n\tgetDefaultBlockName,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { subscribeDelegatedListener } = unlock( composePrivateApis );\n\nexport function useOnEnter( props ) {\n\tconst { batch } = useRegistry();\n\tconst { moveBlocksToPosition, replaceBlocks, selectionChange } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockOrder,\n\t\tgetBlockName,\n\t\tgetBlock,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { content, clientId } = propsRef.current;\n\n\t\t\t// The paragraph should be empty.\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst wrapperClientId = getBlockRootClientId( clientId );\n\n\t\t\tif (\n\t\t\t\t! hasBlockSupport(\n\t\t\t\t\tgetBlockName( wrapperClientId ),\n\t\t\t\t\t'__experimentalOnEnter',\n\t\t\t\t\tfalse\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst order = getBlockOrder( wrapperClientId );\n\t\t\tconst position = order.indexOf( clientId );\n\n\t\t\t// If it is the last block, exit.\n\t\t\tif ( position === order.length - 1 ) {\n\t\t\t\tlet newWrapperClientId = wrapperClientId;\n\n\t\t\t\twhile (\n\t\t\t\t\t! canInsertBlockType(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\tgetBlockRootClientId( newWrapperClientId )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tnewWrapperClientId =\n\t\t\t\t\t\tgetBlockRootClientId( newWrapperClientId );\n\t\t\t\t}\n\n\t\t\t\tif ( typeof newWrapperClientId === 'string' ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t[ clientId ],\n\t\t\t\t\t\twrapperClientId,\n\t\t\t\t\t\tgetBlockRootClientId( newWrapperClientId ),\n\t\t\t\t\t\tgetBlockIndex( newWrapperClientId ) + 1\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\tconst wrapperBlockName = getBlockName( wrapperClientId );\n\t\t\tconst grandparentClientId = getBlockRootClientId( wrapperClientId );\n\n\t\t\tif (\n\t\t\t\t! canInsertBlockType( defaultBlockName, grandparentClientId ) ||\n\t\t\t\t! canInsertBlockType( wrapperBlockName, grandparentClientId )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\t// If it is in the middle, split the block in two.\n\t\t\tconst wrapperBlock = getBlock( wrapperClientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...wrapperBlock,\n\t\t\t\tinnerBlocks: wrapperBlock.innerBlocks.slice( 0, position ),\n\t\t\t} );\n\t\t\tconst middle = createBlock( defaultBlockName );\n\t\t\tconst tail = cloneBlock( {\n\t\t\t\t...wrapperBlock,\n\t\t\t\tinnerBlocks: wrapperBlock.innerBlocks.slice( position + 1 ),\n\t\t\t} );\n\n\t\t\tbatch( () => {\n\t\t\t\treplaceBlocks( wrapperClientId, [ head, middle, tail ] );\n\t\t\t\t// The selected paragraph is a descendant of the replaced\n\t\t\t\t// wrapper, so `replaceBlocks` leaves the selection stale.\n\t\t\t\t// Move it to the new default block explicitly.\n\t\t\t\tselectionChange( middle.clientId );\n\t\t\t} );\n\t\t}\n\n\t\t// Capture phase so we run before writing-flow's ancestor-bubble\n\t\t// keydown handlers that gate on `event.defaultPrevented`.\n\t\treturn subscribeDelegatedListener(\n\t\t\telement,\n\t\t\t'keydown',\n\t\t\tonKeyDown,\n\t\t\ttrue\n\t\t);\n\t}, [] );\n}\n"],
5
- "mappings": ";AAGA,SAAS,cAAc;AACvB;AAAA,EACC;AAAA,EACA,eAAe;AAAA,OACT;AACP,SAAS,aAAa;AACtB,SAAS,WAAW,aAAa,mBAAmB;AACpD,SAAS,SAAS,wBAAwB;AAC1C;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAKP,SAAS,cAAc;AAEvB,IAAM,EAAE,2BAA2B,IAAI,OAAQ,kBAAmB;AAE3D,SAAS,WAAY,OAAQ;AACnC,QAAM,EAAE,MAAM,IAAI,YAAY;AAC9B,QAAM,EAAE,sBAAsB,eAAe,gBAAgB,IAC5D,YAAa,gBAAiB;AAC/B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,UAAW,gBAAiB;AAChC,QAAM,WAAW,OAAQ,KAAM;AAC/B,WAAS,UAAU;AACnB,SAAO,aAAc,CAAE,YAAa;AACnC,aAAS,UAAW,OAAQ;AAC3B,UAAK,MAAM,kBAAmB;AAC7B;AAAA,MACD;AAEA,UAAK,MAAM,YAAY,OAAQ;AAC9B;AAAA,MACD;AAEA,YAAM,EAAE,SAAS,SAAS,IAAI,SAAS;AAGvC,UAAK,QAAQ,QAAS;AACrB;AAAA,MACD;AAEA,YAAM,kBAAkB,qBAAsB,QAAS;AAEvD,UACC,CAAE;AAAA,QACD,aAAc,eAAgB;AAAA,QAC9B;AAAA,QACA;AAAA,MACD,GACC;AACD;AAAA,MACD;AAEA,YAAM,QAAQ,cAAe,eAAgB;AAC7C,YAAM,WAAW,MAAM,QAAS,QAAS;AAGzC,UAAK,aAAa,MAAM,SAAS,GAAI;AACpC,YAAI,qBAAqB;AAEzB,eACC,CAAE;AAAA,UACD,aAAc,QAAS;AAAA,UACvB,qBAAsB,kBAAmB;AAAA,QAC1C,GACC;AACD,+BACC,qBAAsB,kBAAmB;AAAA,QAC3C;AAEA,YAAK,OAAO,uBAAuB,UAAW;AAC7C,gBAAM,eAAe;AACrB;AAAA,YACC,CAAE,QAAS;AAAA,YACX;AAAA,YACA,qBAAsB,kBAAmB;AAAA,YACzC,cAAe,kBAAmB,IAAI;AAAA,UACvC;AAAA,QACD;AACA;AAAA,MACD;AAEA,YAAM,mBAAmB,oBAAoB;AAC7C,YAAM,mBAAmB,aAAc,eAAgB;AACvD,YAAM,sBAAsB,qBAAsB,eAAgB;AAElE,UACC,CAAE,mBAAoB,kBAAkB,mBAAoB,KAC5D,CAAE,mBAAoB,kBAAkB,mBAAoB,GAC3D;AACD;AAAA,MACD;AAEA,YAAM,eAAe;AAGrB,YAAM,eAAe,SAAU,eAAgB;AAC/C,YAAM,OAAO,WAAY;AAAA,QACxB,GAAG;AAAA,QACH,aAAa,aAAa,YAAY,MAAO,GAAG,QAAS;AAAA,MAC1D,CAAE;AACF,YAAM,SAAS,YAAa,gBAAiB;AAC7C,YAAM,OAAO,WAAY;AAAA,QACxB,GAAG;AAAA,QACH,aAAa,aAAa,YAAY,MAAO,WAAW,CAAE;AAAA,MAC3D,CAAE;AAEF,YAAO,MAAM;AACZ,sBAAe,iBAAiB,CAAE,MAAM,QAAQ,IAAK,CAAE;AAIvD,wBAAiB,OAAO,QAAS;AAAA,MAClC,CAAE;AAAA,IACH;AAIA,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AACP;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { privateApis as richTextPrivateApis } from '@wordpress/rich-text';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\thasBlockSupport,\n\tcreateBlock,\n\tcloneBlock,\n\tgetDefaultBlockName,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { subscribeOwnedListener } = unlock( richTextPrivateApis );\n\nexport function useOnEnter( props ) {\n\tconst { batch } = useRegistry();\n\tconst { moveBlocksToPosition, replaceBlocks, selectionChange } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockOrder,\n\t\tgetBlockName,\n\t\tgetBlock,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { content, clientId } = propsRef.current;\n\n\t\t\t// The paragraph should be empty.\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst wrapperClientId = getBlockRootClientId( clientId );\n\n\t\t\tif (\n\t\t\t\t! hasBlockSupport(\n\t\t\t\t\tgetBlockName( wrapperClientId ),\n\t\t\t\t\t'__experimentalOnEnter',\n\t\t\t\t\tfalse\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst order = getBlockOrder( wrapperClientId );\n\t\t\tconst position = order.indexOf( clientId );\n\n\t\t\t// If it is the last block, exit.\n\t\t\tif ( position === order.length - 1 ) {\n\t\t\t\tlet newWrapperClientId = wrapperClientId;\n\n\t\t\t\twhile (\n\t\t\t\t\t! canInsertBlockType(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\tgetBlockRootClientId( newWrapperClientId )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tnewWrapperClientId =\n\t\t\t\t\t\tgetBlockRootClientId( newWrapperClientId );\n\t\t\t\t}\n\n\t\t\t\tif ( typeof newWrapperClientId === 'string' ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t[ clientId ],\n\t\t\t\t\t\twrapperClientId,\n\t\t\t\t\t\tgetBlockRootClientId( newWrapperClientId ),\n\t\t\t\t\t\tgetBlockIndex( newWrapperClientId ) + 1\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\tconst wrapperBlockName = getBlockName( wrapperClientId );\n\t\t\tconst grandparentClientId = getBlockRootClientId( wrapperClientId );\n\n\t\t\tif (\n\t\t\t\t! canInsertBlockType( defaultBlockName, grandparentClientId ) ||\n\t\t\t\t! canInsertBlockType( wrapperBlockName, grandparentClientId )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\t// If it is in the middle, split the block in two.\n\t\t\tconst wrapperBlock = getBlock( wrapperClientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...wrapperBlock,\n\t\t\t\tinnerBlocks: wrapperBlock.innerBlocks.slice( 0, position ),\n\t\t\t} );\n\t\t\tconst middle = createBlock( defaultBlockName );\n\t\t\tconst tail = cloneBlock( {\n\t\t\t\t...wrapperBlock,\n\t\t\t\tinnerBlocks: wrapperBlock.innerBlocks.slice( position + 1 ),\n\t\t\t} );\n\n\t\t\tbatch( () => {\n\t\t\t\treplaceBlocks( wrapperClientId, [ head, middle, tail ] );\n\t\t\t\t// The selected paragraph is a descendant of the replaced\n\t\t\t\t// wrapper, so `replaceBlocks` leaves the selection stale.\n\t\t\t\t// Move it to the new default block explicitly.\n\t\t\t\tselectionChange( middle.clientId );\n\t\t\t} );\n\t\t}\n\n\t\t// Capture phase so we run before writing-flow's ancestor-bubble\n\t\t// keydown handlers that gate on `event.defaultPrevented`.\n\t\treturn subscribeOwnedListener( element, 'keydown', onKeyDown, true );\n\t}, [] );\n}\n"],
5
+ "mappings": ";AAGA,SAAS,cAAc;AACvB,SAAS,oBAAoB;AAC7B,SAAS,eAAe,2BAA2B;AACnD,SAAS,aAAa;AACtB,SAAS,WAAW,aAAa,mBAAmB;AACpD,SAAS,SAAS,wBAAwB;AAC1C;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAKP,SAAS,cAAc;AAEvB,IAAM,EAAE,uBAAuB,IAAI,OAAQ,mBAAoB;AAExD,SAAS,WAAY,OAAQ;AACnC,QAAM,EAAE,MAAM,IAAI,YAAY;AAC9B,QAAM,EAAE,sBAAsB,eAAe,gBAAgB,IAC5D,YAAa,gBAAiB;AAC/B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,UAAW,gBAAiB;AAChC,QAAM,WAAW,OAAQ,KAAM;AAC/B,WAAS,UAAU;AACnB,SAAO,aAAc,CAAE,YAAa;AACnC,aAAS,UAAW,OAAQ;AAC3B,UAAK,MAAM,kBAAmB;AAC7B;AAAA,MACD;AAEA,UAAK,MAAM,YAAY,OAAQ;AAC9B;AAAA,MACD;AAEA,YAAM,EAAE,SAAS,SAAS,IAAI,SAAS;AAGvC,UAAK,QAAQ,QAAS;AACrB;AAAA,MACD;AAEA,YAAM,kBAAkB,qBAAsB,QAAS;AAEvD,UACC,CAAE;AAAA,QACD,aAAc,eAAgB;AAAA,QAC9B;AAAA,QACA;AAAA,MACD,GACC;AACD;AAAA,MACD;AAEA,YAAM,QAAQ,cAAe,eAAgB;AAC7C,YAAM,WAAW,MAAM,QAAS,QAAS;AAGzC,UAAK,aAAa,MAAM,SAAS,GAAI;AACpC,YAAI,qBAAqB;AAEzB,eACC,CAAE;AAAA,UACD,aAAc,QAAS;AAAA,UACvB,qBAAsB,kBAAmB;AAAA,QAC1C,GACC;AACD,+BACC,qBAAsB,kBAAmB;AAAA,QAC3C;AAEA,YAAK,OAAO,uBAAuB,UAAW;AAC7C,gBAAM,eAAe;AACrB;AAAA,YACC,CAAE,QAAS;AAAA,YACX;AAAA,YACA,qBAAsB,kBAAmB;AAAA,YACzC,cAAe,kBAAmB,IAAI;AAAA,UACvC;AAAA,QACD;AACA;AAAA,MACD;AAEA,YAAM,mBAAmB,oBAAoB;AAC7C,YAAM,mBAAmB,aAAc,eAAgB;AACvD,YAAM,sBAAsB,qBAAsB,eAAgB;AAElE,UACC,CAAE,mBAAoB,kBAAkB,mBAAoB,KAC5D,CAAE,mBAAoB,kBAAkB,mBAAoB,GAC3D;AACD;AAAA,MACD;AAEA,YAAM,eAAe;AAGrB,YAAM,eAAe,SAAU,eAAgB;AAC/C,YAAM,OAAO,WAAY;AAAA,QACxB,GAAG;AAAA,QACH,aAAa,aAAa,YAAY,MAAO,GAAG,QAAS;AAAA,MAC1D,CAAE;AACF,YAAM,SAAS,YAAa,gBAAiB;AAC7C,YAAM,OAAO,WAAY;AAAA,QACxB,GAAG;AAAA,QACH,aAAa,aAAa,YAAY,MAAO,WAAW,CAAE;AAAA,MAC3D,CAAE;AAEF,YAAO,MAAM;AACZ,sBAAe,iBAAiB,CAAE,MAAM,QAAQ,IAAK,CAAE;AAIvD,wBAAiB,OAAO,QAAS;AAAA,MAClC,CAAE;AAAA,IACH;AAIA,WAAO,uBAAwB,SAAS,WAAW,WAAW,IAAK;AAAA,EACpE,GAAG,CAAC,CAAE;AACP;",
6
6
  "names": []
7
7
  }