@wordpress/block-library 8.4.0 → 8.5.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 (405) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/archives/edit.js +3 -0
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/audio/edit.js +2 -0
  5. package/build/audio/edit.js.map +1 -1
  6. package/build/avatar/edit.js +5 -9
  7. package/build/avatar/edit.js.map +1 -1
  8. package/build/categories/edit.js +5 -0
  9. package/build/categories/edit.js.map +1 -1
  10. package/build/columns/edit.js +1 -0
  11. package/build/columns/edit.js.map +1 -1
  12. package/build/columns/utils.js +2 -2
  13. package/build/columns/utils.js.map +1 -1
  14. package/build/comment-author-name/edit.js +2 -0
  15. package/build/comment-author-name/edit.js.map +1 -1
  16. package/build/comment-date/edit.js +1 -0
  17. package/build/comment-date/edit.js.map +1 -1
  18. package/build/comment-edit-link/edit.js +1 -0
  19. package/build/comment-edit-link/edit.js.map +1 -1
  20. package/build/comments-title/edit.js +2 -0
  21. package/build/comments-title/edit.js.map +1 -1
  22. package/build/cover/edit/inspector-controls.js +2 -0
  23. package/build/cover/edit/inspector-controls.js.map +1 -1
  24. package/build/embed/embed-controls.js +1 -0
  25. package/build/embed/embed-controls.js.map +1 -1
  26. package/build/file/inspector.js +3 -0
  27. package/build/file/inspector.js.map +1 -1
  28. package/build/freeform/modal.js +1 -1
  29. package/build/freeform/modal.js.map +1 -1
  30. package/build/gallery/edit.js +2 -0
  31. package/build/gallery/edit.js.map +1 -1
  32. package/build/gallery/shared.js +4 -8
  33. package/build/gallery/shared.js.map +1 -1
  34. package/build/gallery/use-image-sizes.js +4 -8
  35. package/build/gallery/use-image-sizes.js.map +1 -1
  36. package/build/gallery/v1/edit.js +8 -3
  37. package/build/gallery/v1/edit.js.map +1 -1
  38. package/build/gallery/v1/gallery-image.js +1 -3
  39. package/build/gallery/v1/gallery-image.js.map +1 -1
  40. package/build/gallery/v1/shared.js +4 -7
  41. package/build/gallery/v1/shared.js.map +1 -1
  42. package/build/image/edit.js +6 -4
  43. package/build/image/edit.js.map +1 -1
  44. package/build/image/image.js +6 -2
  45. package/build/image/image.js.map +1 -1
  46. package/build/image/utils.js +3 -1
  47. package/build/image/utils.js.map +1 -1
  48. package/build/index.js +3 -1
  49. package/build/index.js.map +1 -1
  50. package/build/latest-comments/edit.js +3 -0
  51. package/build/latest-comments/edit.js.map +1 -1
  52. package/build/latest-posts/edit.js +4 -0
  53. package/build/latest-posts/edit.js.map +1 -1
  54. package/build/list/ordered-list-settings.js +1 -0
  55. package/build/list/ordered-list-settings.js.map +1 -1
  56. package/build/list-item/edit.js +2 -2
  57. package/build/list-item/edit.js.map +1 -1
  58. package/build/list-item/hooks/use-outdent-list-item.js +2 -1
  59. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  60. package/build/loginout/edit.js +2 -0
  61. package/build/loginout/edit.js.map +1 -1
  62. package/build/media-text/edit.js +2 -0
  63. package/build/media-text/edit.js.map +1 -1
  64. package/build/more/edit.js +1 -0
  65. package/build/more/edit.js.map +1 -1
  66. package/build/navigation/edit/index.js +80 -54
  67. package/build/navigation/edit/index.js.map +1 -1
  68. package/build/navigation/edit/navigation-menu-selector.js +1 -1
  69. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  70. package/build/navigation/edit/overlay-menu-preview.js +1 -0
  71. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  72. package/build/navigation/edit/placeholder/index.js +1 -1
  73. package/build/navigation/edit/placeholder/index.js.map +1 -1
  74. package/build/navigation/edit/unsaved-inner-blocks.js +1 -1
  75. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  76. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  77. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  78. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  79. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  80. package/build/navigation/edit/use-generate-default-navigation-title.js +1 -1
  81. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  82. package/build/navigation/edit/use-navigation-notice.js +4 -7
  83. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  84. package/build/navigation-link/link-ui.js +1 -0
  85. package/build/navigation-link/link-ui.js.map +1 -1
  86. package/build/page-list/convert-to-links-modal.js +47 -0
  87. package/build/page-list/convert-to-links-modal.js.map +1 -0
  88. package/build/page-list/edit.js +10 -24
  89. package/build/page-list/edit.js.map +1 -1
  90. package/build/paragraph/edit.js +1 -0
  91. package/build/paragraph/edit.js.map +1 -1
  92. package/build/post-author/edit.js +4 -0
  93. package/build/post-author/edit.js.map +1 -1
  94. package/build/post-author-name/edit.js +2 -0
  95. package/build/post-author-name/edit.js.map +1 -1
  96. package/build/post-date/edit.js +2 -0
  97. package/build/post-date/edit.js.map +1 -1
  98. package/build/post-excerpt/edit.js +1 -0
  99. package/build/post-excerpt/edit.js.map +1 -1
  100. package/build/post-featured-image/edit.js +2 -0
  101. package/build/post-featured-image/edit.js.map +1 -1
  102. package/build/post-navigation-link/edit.js +2 -0
  103. package/build/post-navigation-link/edit.js.map +1 -1
  104. package/build/post-terms/use-post-terms.js +1 -1
  105. package/build/post-terms/use-post-terms.js.map +1 -1
  106. package/build/post-time-to-read/edit.js +104 -0
  107. package/build/post-time-to-read/edit.js.map +1 -0
  108. package/build/post-time-to-read/icon.js +25 -0
  109. package/build/post-time-to-read/icon.js.map +1 -0
  110. package/build/post-time-to-read/index.js +57 -0
  111. package/build/post-time-to-read/index.js.map +1 -0
  112. package/build/post-title/edit.js +2 -0
  113. package/build/post-title/edit.js.map +1 -1
  114. package/build/query/edit/inspector-controls/index.js +1 -0
  115. package/build/query/edit/inspector-controls/index.js.map +1 -1
  116. package/build/query-title/edit.js +2 -0
  117. package/build/query-title/edit.js.map +1 -1
  118. package/build/read-more/edit.js +1 -0
  119. package/build/read-more/edit.js.map +1 -1
  120. package/build/rss/edit.js +3 -0
  121. package/build/rss/edit.js.map +1 -1
  122. package/build/site-logo/edit.js +3 -0
  123. package/build/site-logo/edit.js.map +1 -1
  124. package/build/site-tagline/index.js +1 -0
  125. package/build/site-tagline/index.js.map +1 -1
  126. package/build/site-title/edit/index.js +2 -0
  127. package/build/site-title/edit/index.js.map +1 -1
  128. package/build/social-links/edit.js +4 -1
  129. package/build/social-links/edit.js.map +1 -1
  130. package/build/spacer/controls.native.js +10 -8
  131. package/build/spacer/controls.native.js.map +1 -1
  132. package/build/spacer/edit.native.js +43 -5
  133. package/build/spacer/edit.native.js.map +1 -1
  134. package/build/spacer/save.native.js +30 -0
  135. package/build/spacer/save.native.js.map +1 -0
  136. package/build/table/edit.js +3 -0
  137. package/build/table/edit.js.map +1 -1
  138. package/build/table-of-contents/edit.js +1 -0
  139. package/build/table-of-contents/edit.js.map +1 -1
  140. package/build/tag-cloud/edit.js +1 -0
  141. package/build/tag-cloud/edit.js.map +1 -1
  142. package/build/template-part/edit/import-controls.js +29 -6
  143. package/build/template-part/edit/import-controls.js.map +1 -1
  144. package/build/video/edit-common-settings.js +5 -0
  145. package/build/video/edit-common-settings.js.map +1 -1
  146. package/build-module/archives/edit.js +3 -0
  147. package/build-module/archives/edit.js.map +1 -1
  148. package/build-module/audio/edit.js +2 -0
  149. package/build-module/audio/edit.js.map +1 -1
  150. package/build-module/avatar/edit.js +5 -8
  151. package/build-module/avatar/edit.js.map +1 -1
  152. package/build-module/categories/edit.js +5 -0
  153. package/build-module/categories/edit.js.map +1 -1
  154. package/build-module/columns/edit.js +1 -0
  155. package/build-module/columns/edit.js.map +1 -1
  156. package/build-module/columns/utils.js +3 -3
  157. package/build-module/columns/utils.js.map +1 -1
  158. package/build-module/comment-author-name/edit.js +2 -0
  159. package/build-module/comment-author-name/edit.js.map +1 -1
  160. package/build-module/comment-date/edit.js +1 -0
  161. package/build-module/comment-date/edit.js.map +1 -1
  162. package/build-module/comment-edit-link/edit.js +1 -0
  163. package/build-module/comment-edit-link/edit.js.map +1 -1
  164. package/build-module/comments-title/edit.js +2 -0
  165. package/build-module/comments-title/edit.js.map +1 -1
  166. package/build-module/cover/edit/inspector-controls.js +2 -0
  167. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  168. package/build-module/embed/embed-controls.js +1 -0
  169. package/build-module/embed/embed-controls.js.map +1 -1
  170. package/build-module/file/inspector.js +3 -0
  171. package/build-module/file/inspector.js.map +1 -1
  172. package/build-module/freeform/modal.js +1 -1
  173. package/build-module/freeform/modal.js.map +1 -1
  174. package/build-module/gallery/edit.js +2 -0
  175. package/build-module/gallery/edit.js.map +1 -1
  176. package/build-module/gallery/shared.js +4 -7
  177. package/build-module/gallery/shared.js.map +1 -1
  178. package/build-module/gallery/use-image-sizes.js +4 -7
  179. package/build-module/gallery/use-image-sizes.js.map +1 -1
  180. package/build-module/gallery/v1/edit.js +9 -4
  181. package/build-module/gallery/v1/edit.js.map +1 -1
  182. package/build-module/gallery/v1/gallery-image.js +1 -2
  183. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  184. package/build-module/gallery/v1/shared.js +4 -6
  185. package/build-module/gallery/v1/shared.js.map +1 -1
  186. package/build-module/image/edit.js +7 -5
  187. package/build-module/image/edit.js.map +1 -1
  188. package/build-module/image/image.js +7 -3
  189. package/build-module/image/image.js.map +1 -1
  190. package/build-module/image/utils.js +4 -2
  191. package/build-module/image/utils.js.map +1 -1
  192. package/build-module/index.js +2 -1
  193. package/build-module/index.js.map +1 -1
  194. package/build-module/latest-comments/edit.js +3 -0
  195. package/build-module/latest-comments/edit.js.map +1 -1
  196. package/build-module/latest-posts/edit.js +4 -0
  197. package/build-module/latest-posts/edit.js.map +1 -1
  198. package/build-module/list/ordered-list-settings.js +1 -0
  199. package/build-module/list/ordered-list-settings.js.map +1 -1
  200. package/build-module/list-item/edit.js +2 -2
  201. package/build-module/list-item/edit.js.map +1 -1
  202. package/build-module/list-item/hooks/use-outdent-list-item.js +2 -1
  203. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  204. package/build-module/loginout/edit.js +2 -0
  205. package/build-module/loginout/edit.js.map +1 -1
  206. package/build-module/media-text/edit.js +2 -0
  207. package/build-module/media-text/edit.js.map +1 -1
  208. package/build-module/more/edit.js +1 -0
  209. package/build-module/more/edit.js.map +1 -1
  210. package/build-module/navigation/edit/index.js +82 -56
  211. package/build-module/navigation/edit/index.js.map +1 -1
  212. package/build-module/navigation/edit/navigation-menu-selector.js +1 -1
  213. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  214. package/build-module/navigation/edit/overlay-menu-preview.js +1 -0
  215. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  216. package/build-module/navigation/edit/placeholder/index.js +1 -1
  217. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  218. package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -1
  219. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  220. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  221. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  222. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  223. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  224. package/build-module/navigation/edit/use-generate-default-navigation-title.js +1 -1
  225. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  226. package/build-module/navigation/edit/use-navigation-notice.js +5 -8
  227. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  228. package/build-module/navigation-link/link-ui.js +1 -0
  229. package/build-module/navigation-link/link-ui.js.map +1 -1
  230. package/build-module/page-list/convert-to-links-modal.js +35 -0
  231. package/build-module/page-list/convert-to-links-modal.js.map +1 -0
  232. package/build-module/page-list/edit.js +10 -25
  233. package/build-module/page-list/edit.js.map +1 -1
  234. package/build-module/paragraph/edit.js +1 -0
  235. package/build-module/paragraph/edit.js.map +1 -1
  236. package/build-module/post-author/edit.js +4 -0
  237. package/build-module/post-author/edit.js.map +1 -1
  238. package/build-module/post-author-name/edit.js +2 -0
  239. package/build-module/post-author-name/edit.js.map +1 -1
  240. package/build-module/post-date/edit.js +2 -0
  241. package/build-module/post-date/edit.js.map +1 -1
  242. package/build-module/post-excerpt/edit.js +1 -0
  243. package/build-module/post-excerpt/edit.js.map +1 -1
  244. package/build-module/post-featured-image/edit.js +2 -0
  245. package/build-module/post-featured-image/edit.js.map +1 -1
  246. package/build-module/post-navigation-link/edit.js +2 -0
  247. package/build-module/post-navigation-link/edit.js.map +1 -1
  248. package/build-module/post-terms/use-post-terms.js +1 -1
  249. package/build-module/post-terms/use-post-terms.js.map +1 -1
  250. package/build-module/post-time-to-read/edit.js +90 -0
  251. package/build-module/post-time-to-read/edit.js.map +1 -0
  252. package/build-module/post-time-to-read/icon.js +15 -0
  253. package/build-module/post-time-to-read/icon.js.map +1 -0
  254. package/build-module/post-time-to-read/index.js +40 -0
  255. package/build-module/post-time-to-read/index.js.map +1 -0
  256. package/build-module/post-title/edit.js +2 -0
  257. package/build-module/post-title/edit.js.map +1 -1
  258. package/build-module/query/edit/inspector-controls/index.js +1 -0
  259. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  260. package/build-module/query-title/edit.js +2 -0
  261. package/build-module/query-title/edit.js.map +1 -1
  262. package/build-module/read-more/edit.js +1 -0
  263. package/build-module/read-more/edit.js.map +1 -1
  264. package/build-module/rss/edit.js +3 -0
  265. package/build-module/rss/edit.js.map +1 -1
  266. package/build-module/site-logo/edit.js +3 -0
  267. package/build-module/site-logo/edit.js.map +1 -1
  268. package/build-module/site-tagline/index.js +1 -0
  269. package/build-module/site-tagline/index.js.map +1 -1
  270. package/build-module/site-title/edit/index.js +2 -0
  271. package/build-module/site-title/edit/index.js.map +1 -1
  272. package/build-module/social-links/edit.js +4 -1
  273. package/build-module/social-links/edit.js.map +1 -1
  274. package/build-module/spacer/controls.native.js +9 -8
  275. package/build-module/spacer/controls.native.js.map +1 -1
  276. package/build-module/spacer/edit.native.js +39 -7
  277. package/build-module/spacer/edit.native.js.map +1 -1
  278. package/build-module/spacer/save.native.js +22 -0
  279. package/build-module/spacer/save.native.js.map +1 -0
  280. package/build-module/table/edit.js +3 -0
  281. package/build-module/table/edit.js.map +1 -1
  282. package/build-module/table-of-contents/edit.js +1 -0
  283. package/build-module/table-of-contents/edit.js.map +1 -1
  284. package/build-module/tag-cloud/edit.js +1 -0
  285. package/build-module/tag-cloud/edit.js.map +1 -1
  286. package/build-module/template-part/edit/import-controls.js +28 -6
  287. package/build-module/template-part/edit/import-controls.js.map +1 -1
  288. package/build-module/video/edit-common-settings.js +5 -0
  289. package/build-module/video/edit-common-settings.js.map +1 -1
  290. package/build-style/editor-rtl.css +4 -3
  291. package/build-style/editor.css +4 -3
  292. package/build-style/post-excerpt/editor-rtl.css +1 -1
  293. package/build-style/post-excerpt/editor.css +1 -1
  294. package/build-style/query/editor-rtl.css +1 -0
  295. package/build-style/query/editor.css +1 -0
  296. package/build-style/site-logo/editor-rtl.css +2 -2
  297. package/build-style/site-logo/editor.css +2 -2
  298. package/package.json +31 -30
  299. package/src/archives/edit.js +3 -0
  300. package/src/audio/edit.js +2 -0
  301. package/src/audio/test/__snapshots__/edit.native.js.snap +38 -38
  302. package/src/avatar/edit.js +2 -4
  303. package/src/buttons/test/__snapshots__/edit.native.js.snap +11 -11
  304. package/src/categories/edit.js +5 -0
  305. package/src/code/test/__snapshots__/edit.native.js.snap +2 -2
  306. package/src/columns/edit.js +1 -0
  307. package/src/columns/test/__snapshots__/edit.native.js.snap +66 -66
  308. package/src/columns/test/utils.js +54 -0
  309. package/src/columns/utils.js +8 -8
  310. package/src/comment-author-name/edit.js +2 -0
  311. package/src/comment-date/edit.js +1 -0
  312. package/src/comment-edit-link/edit.js +1 -0
  313. package/src/comments-title/edit.js +2 -0
  314. package/src/cover/edit/inspector-controls.js +2 -0
  315. package/src/cover/index.php +4 -6
  316. package/src/cover/test/__snapshots__/edit.native.js.snap +36 -36
  317. package/src/embed/embed-controls.js +1 -0
  318. package/src/embed/test/__snapshots__/index.native.js.snap +52 -52
  319. package/src/file/inspector.js +3 -0
  320. package/src/file/test/__snapshots__/edit.native.js.snap +49 -49
  321. package/src/freeform/modal.js +1 -1
  322. package/src/gallery/edit.js +2 -0
  323. package/src/gallery/shared.js +6 -11
  324. package/src/gallery/test/__snapshots__/index.native.js.snap +71 -71
  325. package/src/gallery/use-image-sizes.js +3 -16
  326. package/src/gallery/v1/edit.js +8 -16
  327. package/src/gallery/v1/gallery-image.js +1 -2
  328. package/src/gallery/v1/shared.js +5 -10
  329. package/src/group/test/__snapshots__/edit.native.js.snap +5 -5
  330. package/src/heading/test/__snapshots__/index.native.js.snap +1 -1
  331. package/src/image/edit.js +4 -4
  332. package/src/image/image.js +4 -9
  333. package/src/image/index.php +4 -4
  334. package/src/image/utils.js +2 -2
  335. package/src/index.js +2 -0
  336. package/src/latest-comments/edit.js +3 -0
  337. package/src/latest-posts/edit.js +4 -0
  338. package/src/list/ordered-list-settings.js +1 -0
  339. package/src/list/test/__snapshots__/edit.native.js.snap +4 -4
  340. package/src/list-item/edit.js +10 -3
  341. package/src/list-item/hooks/use-outdent-list-item.js +2 -1
  342. package/src/loginout/edit.js +2 -0
  343. package/src/media-text/edit.js +2 -0
  344. package/src/missing/test/__snapshots__/edit.native.js.snap +1 -1
  345. package/src/more/edit.js +1 -0
  346. package/src/navigation/edit/index.js +130 -82
  347. package/src/navigation/edit/navigation-menu-selector.js +1 -1
  348. package/src/navigation/edit/overlay-menu-preview.js +1 -0
  349. package/src/navigation/edit/placeholder/index.js +1 -1
  350. package/src/navigation/edit/unsaved-inner-blocks.js +1 -0
  351. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +51 -48
  352. package/src/navigation/edit/use-create-navigation-menu.js +1 -1
  353. package/src/navigation/edit/use-generate-default-navigation-title.js +1 -1
  354. package/src/navigation/edit/use-navigation-notice.js +16 -13
  355. package/src/navigation/index.php +42 -19
  356. package/src/navigation-link/link-ui.js +1 -0
  357. package/src/navigation-link/test/__snapshots__/hooks.js.snap +12 -12
  358. package/src/page-list/convert-to-links-modal.js +38 -0
  359. package/src/page-list/edit.js +11 -32
  360. package/src/paragraph/edit.js +1 -0
  361. package/src/post-author/edit.js +4 -0
  362. package/src/post-author-name/edit.js +2 -0
  363. package/src/post-date/edit.js +2 -0
  364. package/src/post-excerpt/edit.js +1 -0
  365. package/src/post-excerpt/editor.scss +1 -1
  366. package/src/post-featured-image/edit.js +2 -0
  367. package/src/post-navigation-link/edit.js +2 -0
  368. package/src/post-terms/index.php +1 -0
  369. package/src/post-terms/use-post-terms.js +1 -1
  370. package/src/post-time-to-read/block.json +20 -0
  371. package/src/post-time-to-read/edit.js +101 -0
  372. package/src/post-time-to-read/icon.js +15 -0
  373. package/src/post-time-to-read/index.js +17 -0
  374. package/src/post-time-to-read/index.php +62 -0
  375. package/src/post-title/edit.js +2 -0
  376. package/src/preformatted/test/__snapshots__/edit.native.js.snap +10 -10
  377. package/src/query/edit/inspector-controls/index.js +1 -0
  378. package/src/query/editor.scss +1 -0
  379. package/src/query-title/edit.js +2 -0
  380. package/src/read-more/edit.js +1 -0
  381. package/src/rss/edit.js +3 -0
  382. package/src/search/test/__snapshots__/edit.native.js.snap +60 -60
  383. package/src/separator/test/__snapshots__/edit.native.js.snap +1 -1
  384. package/src/site-logo/edit.js +3 -0
  385. package/src/site-logo/editor.scss +3 -3
  386. package/src/site-logo/index.php +7 -2
  387. package/src/site-tagline/block.json +1 -0
  388. package/src/site-title/edit/index.js +2 -0
  389. package/src/social-link/index.php +6 -6
  390. package/src/social-links/edit.js +3 -0
  391. package/src/social-links/test/__snapshots__/edit.native.js.snap +16 -16
  392. package/src/spacer/controls.native.js +13 -5
  393. package/src/spacer/edit.native.js +45 -6
  394. package/src/spacer/save.native.js +18 -0
  395. package/src/spacer/test/__snapshots__/index.native.js.snap +21 -9
  396. package/src/spacer/test/index.native.js +81 -0
  397. package/src/table/edit.js +3 -0
  398. package/src/table-of-contents/edit.js +1 -0
  399. package/src/tag-cloud/edit.js +1 -0
  400. package/src/template-part/edit/import-controls.js +24 -5
  401. package/src/template-part/index.php +7 -6
  402. package/src/verse/test/__snapshots__/edit.native.js.snap +2 -2
  403. package/src/video/edit-common-settings.js +5 -0
  404. package/tsconfig.json +2 -1
  405. package/tsconfig.tsbuildinfo +1 -1
@@ -89,13 +89,13 @@ function ListItemEdit(_ref2) {
89
89
  placeholder: placeholder || (0, _i18n.__)('List'),
90
90
  onSplit: onSplit,
91
91
  onMerge: onMerge,
92
- onReplace: function (blocks) {
92
+ onReplace: onReplace ? function (blocks) {
93
93
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
94
94
  args[_key - 1] = arguments[_key];
95
95
  }
96
96
 
97
97
  onReplace((0, _utils.convertToListItems)(blocks), ...args);
98
- }
98
+ } : undefined
99
99
  }), innerBlocksProps.children), (0, _element.createElement)(_blockEditor.BlockControls, {
100
100
  group: "block"
101
101
  }, (0, _element.createElement)(IndentUI, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/list-item/edit.js"],"names":["IndentUI","clientId","canIndent","indentListItem","canOutdent","outdentListItem","formatOutdentRTL","formatOutdent","formatIndentRTL","formatIndent","ListItemEdit","attributes","setAttributes","onReplace","mergeBlocks","placeholder","content","blockProps","ref","innerBlocksProps","allowedBlocks","renderAppender","__unstableDisableDropZone","useEnterRef","useSpaceRef","onSplit","onMerge","nextContent","blocks","args","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\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';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseSplit,\n\tuseMerge,\n\tuseCopy,\n} from './hooks';\nimport { convertToListItems } from './utils';\n\nexport function IndentUI( { clientId } ) {\n\tconst [ canIndent, indentListItem ] = useIndentListItem( clientId );\n\tconst [ canOutdent, outdentListItem ] = useOutdentListItem( clientId );\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\tdescribedBy={ __( '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\tdescribedBy={ __( 'Indent list item' ) }\n\t\t\t\tisDisabled={ ! 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\tonReplace,\n\tclientId,\n\tmergeBlocks,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps( { ref: useCopy( clientId ) } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list' ],\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onSplit = useSplit( 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\tonSplit={ onSplit }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t\tonReplace={ ( blocks, ...args ) => {\n\t\t\t\t\t\tonReplace( convertToListItems( blocks ), ...args );\n\t\t\t\t\t} }\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"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/list-item/edit.js"],"names":["IndentUI","clientId","canIndent","indentListItem","canOutdent","outdentListItem","formatOutdentRTL","formatOutdent","formatIndentRTL","formatIndent","ListItemEdit","attributes","setAttributes","onReplace","mergeBlocks","placeholder","content","blockProps","ref","innerBlocksProps","allowedBlocks","renderAppender","__unstableDisableDropZone","useEnterRef","useSpaceRef","onSplit","onMerge","nextContent","blocks","args","undefined","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\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';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseSplit,\n\tuseMerge,\n\tuseCopy,\n} from './hooks';\nimport { convertToListItems } from './utils';\n\nexport function IndentUI( { clientId } ) {\n\tconst [ canIndent, indentListItem ] = useIndentListItem( clientId );\n\tconst [ canOutdent, outdentListItem ] = useOutdentListItem( clientId );\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\tdescribedBy={ __( '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\tdescribedBy={ __( 'Indent list item' ) }\n\t\t\t\tisDisabled={ ! 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\tonReplace,\n\tclientId,\n\tmergeBlocks,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps( { ref: useCopy( clientId ) } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list' ],\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onSplit = useSplit( 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\tonSplit={ onSplit }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t\tonReplace={\n\t\t\t\t\t\tonReplace\n\t\t\t\t\t\t\t? ( blocks, ...args ) => {\n\t\t\t\t\t\t\t\t\tonReplace(\n\t\t\t\t\t\t\t\t\t\tconvertToListItems( blocks ),\n\t\t\t\t\t\t\t\t\t\t...args\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\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"]}
@@ -139,7 +139,8 @@ function useOutdentListItem(clientId) {
139
139
  moveBlocksToPosition(clientIds, parentListId, getBlockRootClientId(parentListItemId), getBlockIndex(parentListItemId) + 1);
140
140
 
141
141
  if (!getBlockOrder(parentListId).length) {
142
- removeBlock(parentListId);
142
+ const shouldSelectParent = false;
143
+ removeBlock(parentListId, shouldSelectParent);
143
144
  }
144
145
  });
145
146
  }, [])];
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/list-item/hooks/use-outdent-list-item.js"],"names":["useOutdentListItem","clientId","registry","canOutdent","innerSelect","getBlockRootClientId","getBlockName","blockEditorStore","grandParentId","grandParentName","isListItem","listItemName","moveBlocksToPosition","removeBlock","insertBlock","updateBlockListSettings","getBlockOrder","getBlockIndex","getSelectedBlockClientIds","getBlock","getBlockListSettings","getParentListItemId","id","listId","parentListItemId","clientIds","Array","isArray","length","firstClientId","parentListId","lastClientId","order","followingListItems","slice","batch","nestedListId","nestedListBlock"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as listItemName } from '../block.json';\n\nexport default function useOutdentListItem( clientId ) {\n\tconst registry = useRegistry();\n\tconst { canOutdent } = useSelect(\n\t\t( innerSelect ) => {\n\t\t\tconst { getBlockRootClientId, getBlockName } =\n\t\t\t\tinnerSelect( blockEditorStore );\n\t\t\tconst grandParentId = getBlockRootClientId(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst grandParentName = getBlockName( grandParentId );\n\t\t\tconst isListItem = grandParentName === listItemName;\n\n\t\t\treturn {\n\t\t\t\tcanOutdent: isListItem,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tinsertBlock,\n\t\tupdateBlockListSettings,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tgetBlockOrder,\n\t\tgetBlockIndex,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlock,\n\t\tgetBlockListSettings,\n\t} = useSelect( blockEditorStore );\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== listItemName ) return;\n\t\treturn parentListItemId;\n\t}\n\n\treturn [\n\t\tcanOutdent,\n\t\tuseCallback( ( clientIds = getSelectedBlockClientIds() ) => {\n\t\t\tif ( ! Array.isArray( clientIds ) ) {\n\t\t\t\tclientIds = [ clientIds ];\n\t\t\t}\n\n\t\t\tif ( ! clientIds.length ) return;\n\n\t\t\tconst firstClientId = clientIds[ 0 ];\n\n\t\t\t// Can't outdent if it's not a list item.\n\t\t\tif ( getBlockName( firstClientId ) !== listItemName ) return;\n\n\t\t\tconst parentListItemId = getParentListItemId( firstClientId );\n\n\t\t\t// Can't outdent if it's at the top level.\n\t\t\tif ( ! parentListItemId ) return;\n\n\t\t\tconst parentListId = getBlockRootClientId( firstClientId );\n\t\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\t\tconst order = getBlockOrder( parentListId );\n\t\t\tconst followingListItems = order.slice(\n\t\t\t\tgetBlockIndex( lastClientId ) + 1\n\t\t\t);\n\n\t\t\tregistry.batch( () => {\n\t\t\t\tif ( followingListItems.length ) {\n\t\t\t\t\tlet nestedListId = getBlockOrder( firstClientId )[ 0 ];\n\n\t\t\t\t\tif ( ! nestedListId ) {\n\t\t\t\t\t\tconst nestedListBlock = cloneBlock(\n\t\t\t\t\t\t\tgetBlock( parentListId ),\n\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\tnestedListId = nestedListBlock.clientId;\n\t\t\t\t\t\tinsertBlock( nestedListBlock, 0, firstClientId, false );\n\t\t\t\t\t\t// Immediately update the block list settings, otherwise\n\t\t\t\t\t\t// blocks can't be moved here due to canInsert checks.\n\t\t\t\t\t\tupdateBlockListSettings(\n\t\t\t\t\t\t\tnestedListId,\n\t\t\t\t\t\t\tgetBlockListSettings( parentListId )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tfollowingListItems,\n\t\t\t\t\t\tparentListId,\n\t\t\t\t\t\tnestedListId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\tclientIds,\n\t\t\t\t\tparentListId,\n\t\t\t\t\tgetBlockRootClientId( parentListItemId ),\n\t\t\t\t\tgetBlockIndex( parentListItemId ) + 1\n\t\t\t\t);\n\t\t\t\tif ( ! getBlockOrder( parentListId ).length ) {\n\t\t\t\t\tremoveBlock( parentListId );\n\t\t\t\t}\n\t\t\t} );\n\t\t}, [] ),\n\t];\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/list-item/hooks/use-outdent-list-item.js"],"names":["useOutdentListItem","clientId","registry","canOutdent","innerSelect","getBlockRootClientId","getBlockName","blockEditorStore","grandParentId","grandParentName","isListItem","listItemName","moveBlocksToPosition","removeBlock","insertBlock","updateBlockListSettings","getBlockOrder","getBlockIndex","getSelectedBlockClientIds","getBlock","getBlockListSettings","getParentListItemId","id","listId","parentListItemId","clientIds","Array","isArray","length","firstClientId","parentListId","lastClientId","order","followingListItems","slice","batch","nestedListId","nestedListBlock","shouldSelectParent"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as listItemName } from '../block.json';\n\nexport default function useOutdentListItem( clientId ) {\n\tconst registry = useRegistry();\n\tconst { canOutdent } = useSelect(\n\t\t( innerSelect ) => {\n\t\t\tconst { getBlockRootClientId, getBlockName } =\n\t\t\t\tinnerSelect( blockEditorStore );\n\t\t\tconst grandParentId = getBlockRootClientId(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst grandParentName = getBlockName( grandParentId );\n\t\t\tconst isListItem = grandParentName === listItemName;\n\n\t\t\treturn {\n\t\t\t\tcanOutdent: isListItem,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tinsertBlock,\n\t\tupdateBlockListSettings,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tgetBlockOrder,\n\t\tgetBlockIndex,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlock,\n\t\tgetBlockListSettings,\n\t} = useSelect( blockEditorStore );\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== listItemName ) return;\n\t\treturn parentListItemId;\n\t}\n\n\treturn [\n\t\tcanOutdent,\n\t\tuseCallback( ( clientIds = getSelectedBlockClientIds() ) => {\n\t\t\tif ( ! Array.isArray( clientIds ) ) {\n\t\t\t\tclientIds = [ clientIds ];\n\t\t\t}\n\n\t\t\tif ( ! clientIds.length ) return;\n\n\t\t\tconst firstClientId = clientIds[ 0 ];\n\n\t\t\t// Can't outdent if it's not a list item.\n\t\t\tif ( getBlockName( firstClientId ) !== listItemName ) return;\n\n\t\t\tconst parentListItemId = getParentListItemId( firstClientId );\n\n\t\t\t// Can't outdent if it's at the top level.\n\t\t\tif ( ! parentListItemId ) return;\n\n\t\t\tconst parentListId = getBlockRootClientId( firstClientId );\n\t\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\t\tconst order = getBlockOrder( parentListId );\n\t\t\tconst followingListItems = order.slice(\n\t\t\t\tgetBlockIndex( lastClientId ) + 1\n\t\t\t);\n\n\t\t\tregistry.batch( () => {\n\t\t\t\tif ( followingListItems.length ) {\n\t\t\t\t\tlet nestedListId = getBlockOrder( firstClientId )[ 0 ];\n\n\t\t\t\t\tif ( ! nestedListId ) {\n\t\t\t\t\t\tconst nestedListBlock = cloneBlock(\n\t\t\t\t\t\t\tgetBlock( parentListId ),\n\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\tnestedListId = nestedListBlock.clientId;\n\t\t\t\t\t\tinsertBlock( nestedListBlock, 0, firstClientId, false );\n\t\t\t\t\t\t// Immediately update the block list settings, otherwise\n\t\t\t\t\t\t// blocks can't be moved here due to canInsert checks.\n\t\t\t\t\t\tupdateBlockListSettings(\n\t\t\t\t\t\t\tnestedListId,\n\t\t\t\t\t\t\tgetBlockListSettings( parentListId )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tfollowingListItems,\n\t\t\t\t\t\tparentListId,\n\t\t\t\t\t\tnestedListId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\tclientIds,\n\t\t\t\t\tparentListId,\n\t\t\t\t\tgetBlockRootClientId( parentListItemId ),\n\t\t\t\t\tgetBlockIndex( parentListItemId ) + 1\n\t\t\t\t);\n\t\t\t\tif ( ! getBlockOrder( parentListId ).length ) {\n\t\t\t\t\tconst shouldSelectParent = false;\n\t\t\t\t\tremoveBlock( parentListId, shouldSelectParent );\n\t\t\t\t}\n\t\t\t} );\n\t\t}, [] ),\n\t];\n}\n"]}
@@ -28,12 +28,14 @@ function LoginOutEdit(_ref) {
28
28
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
29
29
  title: (0, _i18n.__)('Settings')
30
30
  }, (0, _element.createElement)(_components.ToggleControl, {
31
+ __nextHasNoMarginBottom: true,
31
32
  label: (0, _i18n.__)('Display login as form'),
32
33
  checked: displayLoginAsForm,
33
34
  onChange: () => setAttributes({
34
35
  displayLoginAsForm: !displayLoginAsForm
35
36
  })
36
37
  }), (0, _element.createElement)(_components.ToggleControl, {
38
+ __nextHasNoMarginBottom: true,
37
39
  label: (0, _i18n.__)('Redirect to current URL'),
38
40
  checked: redirectToCurrent,
39
41
  onChange: () => setAttributes({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/loginout/edit.js"],"names":["LoginOutEdit","attributes","setAttributes","displayLoginAsForm","redirectToCurrent","className"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;AAKe,SAASA,YAAT,OAAuD;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AACrE,QAAM;AAAEC,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MAA4CH,UAAlD;AAEA,SACC,qDACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,UAAJ;AAAnB,KACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,uBAAJ,CADT;AAEC,IAAA,OAAO,EAAGE,kBAFX;AAGC,IAAA,QAAQ,EAAG,MACVD,aAAa,CAAE;AACdC,MAAAA,kBAAkB,EAAE,CAAEA;AADR,KAAF;AAJf,IADD,EAUC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,yBAAJ,CADT;AAEC,IAAA,OAAO,EAAGC,iBAFX;AAGC,IAAA,QAAQ,EAAG,MACVF,aAAa,CAAE;AACdE,MAAAA,iBAAiB,EAAE,CAAEA;AADP,KAAF;AAJf,IAVD,CADD,CADD,EAuBC,mCACM,gCAAe;AACnBC,IAAAA,SAAS,EAAE;AADQ,GAAf,CADN,EAKC;AAAG,IAAA,IAAI,EAAC;AAAR,KAA+B,cAAI,SAAJ,CAA/B,CALD,CAvBD,CADD;AAiCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\n\nexport default function LoginOutEdit( { attributes, setAttributes } ) {\n\tconst { displayLoginAsForm, redirectToCurrent } = attributes;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display login as form' ) }\n\t\t\t\t\t\tchecked={ displayLoginAsForm }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayLoginAsForm: ! displayLoginAsForm,\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<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Redirect to current URL' ) }\n\t\t\t\t\t\tchecked={ redirectToCurrent }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tredirectToCurrent: ! redirectToCurrent,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName: 'logged-in',\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<a href=\"#login-pseudo-link\">{ __( 'Log out' ) }</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/loginout/edit.js"],"names":["LoginOutEdit","attributes","setAttributes","displayLoginAsForm","redirectToCurrent","className"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;AAKe,SAASA,YAAT,OAAuD;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AACrE,QAAM;AAAEC,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MAA4CH,UAAlD;AAEA,SACC,qDACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,UAAJ;AAAnB,KACC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,uBAAJ,CAFT;AAGC,IAAA,OAAO,EAAGE,kBAHX;AAIC,IAAA,QAAQ,EAAG,MACVD,aAAa,CAAE;AACdC,MAAAA,kBAAkB,EAAE,CAAEA;AADR,KAAF;AALf,IADD,EAWC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,yBAAJ,CAFT;AAGC,IAAA,OAAO,EAAGC,iBAHX;AAIC,IAAA,QAAQ,EAAG,MACVF,aAAa,CAAE;AACdE,MAAAA,iBAAiB,EAAE,CAAEA;AADP,KAAF;AALf,IAXD,CADD,CADD,EAyBC,mCACM,gCAAe;AACnBC,IAAAA,SAAS,EAAE;AADQ,GAAf,CADN,EAKC;AAAG,IAAA,IAAI,EAAC;AAAR,KAA+B,cAAI,SAAJ,CAA/B,CALD,CAzBD,CADD;AAmCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\n\nexport default function LoginOutEdit( { attributes, setAttributes } ) {\n\tconst { displayLoginAsForm, redirectToCurrent } = attributes;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display login as form' ) }\n\t\t\t\t\t\tchecked={ displayLoginAsForm }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayLoginAsForm: ! displayLoginAsForm,\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<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Redirect to current URL' ) }\n\t\t\t\t\t\tchecked={ redirectToCurrent }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tredirectToCurrent: ! redirectToCurrent,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName: 'logged-in',\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<a href=\"#login-pseudo-link\">{ __( 'Log out' ) }</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
@@ -273,12 +273,14 @@ function MediaTextEdit(_ref2) {
273
273
  const mediaTextGeneralSettings = (0, _element.createElement)(_components.PanelBody, {
274
274
  title: (0, _i18n.__)('Settings')
275
275
  }, (0, _element.createElement)(_components.ToggleControl, {
276
+ __nextHasNoMarginBottom: true,
276
277
  label: (0, _i18n.__)('Stack on mobile'),
277
278
  checked: isStackedOnMobile,
278
279
  onChange: () => setAttributes({
279
280
  isStackedOnMobile: !isStackedOnMobile
280
281
  })
281
282
  }), mediaType === 'image' && (0, _element.createElement)(_components.ToggleControl, {
283
+ __nextHasNoMarginBottom: true,
282
284
  label: (0, _i18n.__)('Crop image to fill entire column'),
283
285
  checked: imageFill,
284
286
  onChange: () => setAttributes({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/media-text/edit.js"],"names":["TEMPLATE","placeholder","WIDTH_CONSTRAINT_PERCENTAGE","applyWidthConstraints","width","Math","max","min","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","getImageSourceUrlBySizeSlug","image","slug","media_details","sizes","source_url","attributesFromMedia","attributes","linkDestination","href","setAttributes","media","url","mediaAlt","undefined","mediaId","mediaType","mediaUrl","mediaLink","focalPoint","type","src","media_type","large","newHref","link","alt","id","MediaTextEdit","isSelected","clientId","imageFill","isStackedOnMobile","linkClass","linkTarget","mediaPosition","mediaWidth","rel","verticalAlignment","mediaSizeSlug","DEFAULT_MEDIA_SIZE_SLUG","imageSizes","isContentLocked","select","__unstableGetContentLockingParent","getSettings","blockEditorStore","coreStore","getMedia","context","refMediaContainer","imperativeFocalPointPreview","value","style","current","resizable","x","y","backgroundPosition","temporaryMediaWidth","setTemporaryMediaWidth","onSelectMedia","onSetHref","props","onWidthChange","commitWidthChange","classNames","widthString","gridTemplateColumns","msGridColumns","onMediaAltChange","newMediaAlt","onVerticalAlignmentChange","alignment","imageSizeOptions","filter","map","name","label","updateImage","newMediaSizeSlug","newUrl","mediaTextGeneralSettings","blockProps","className","innerBlocksProps","template","pullLeft","pullRight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockVerticalAlignmentControl,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\tExternalLink,\n\tFocalPointPicker,\n} from '@wordpress/components';\nimport { isBlobURL, getBlobTypeByURL } from '@wordpress/blob';\nimport { pullLeft, pullRight } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\nimport { DEFAULT_MEDIA_SIZE_SLUG } from './constants';\n\n/**\n * Constants\n */\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: _x( 'Content…', 'content placeholder' ),\n\t\t},\n\t],\n];\n\n// this limits the resize to a safe zone to avoid making broken layouts\nconst WIDTH_CONSTRAINT_PERCENTAGE = 15;\nconst applyWidthConstraints = ( width ) =>\n\tMath.max(\n\t\tWIDTH_CONSTRAINT_PERCENTAGE,\n\t\tMath.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )\n\t);\n\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\n\nfunction getImageSourceUrlBySizeSlug( image, slug ) {\n\t// eslint-disable-next-line camelcase\n\treturn image?.media_details?.sizes?.[ slug ]?.source_url;\n}\n\nfunction attributesFromMedia( {\n\tattributes: { linkDestination, href },\n\tsetAttributes,\n} ) {\n\treturn ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tmediaAlt: undefined,\n\t\t\t\tmediaId: undefined,\n\t\t\t\tmediaType: undefined,\n\t\t\t\tmediaUrl: undefined,\n\t\t\t\tmediaLink: undefined,\n\t\t\t\thref: undefined,\n\t\t\t\tfocalPoint: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tmedia.type = getBlobTypeByURL( media.url );\n\t\t}\n\n\t\tlet mediaType;\n\t\tlet src;\n\t\t// For media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else {\n\t\t\t// For media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tif ( mediaType === 'image' ) {\n\t\t\t// Try the \"large\" size URL, falling back to the \"full\" size URL below.\n\t\t\tsrc =\n\t\t\t\tmedia.sizes?.large?.url ||\n\t\t\t\t// eslint-disable-next-line camelcase\n\t\t\t\tmedia.media_details?.sizes?.large?.source_url;\n\t\t}\n\n\t\tlet newHref = href;\n\t\tif ( linkDestination === LINK_DESTINATION_MEDIA ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.url;\n\t\t}\n\n\t\t// Check if the image is linked to the attachment page.\n\t\tif ( linkDestination === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.link;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: src || media.url,\n\t\t\tmediaLink: media.link || undefined,\n\t\t\thref: newHref,\n\t\t\tfocalPoint: undefined,\n\t\t} );\n\t};\n}\n\nfunction MediaTextEdit( { attributes, isSelected, setAttributes, clientId } ) {\n\tconst {\n\t\tfocalPoint,\n\t\thref,\n\t\timageFill,\n\t\tisStackedOnMobile,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\tlinkTarget,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\trel,\n\t\tverticalAlignment,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\n\tconst { imageSizes, image, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __unstableGetContentLockingParent, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tisContentLocked:\n\t\t\t\t\t!! __unstableGetContentLockingParent( clientId ),\n\t\t\t\timage:\n\t\t\t\t\tmediaId && isSelected\n\t\t\t\t\t\t? select( coreStore ).getMedia( mediaId, {\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: null,\n\t\t\t\timageSizes: getSettings()?.imageSizes,\n\t\t\t};\n\t\t},\n\n\t\t[ isSelected, mediaId, clientId ]\n\t);\n\n\tconst refMediaContainer = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMediaContainer.current.resizable;\n\t\tconst { x, y } = value;\n\t\tstyle.backgroundPosition = `${ x * 100 }% ${ y * 100 }%`;\n\t};\n\n\tconst [ temporaryMediaWidth, setTemporaryMediaWidth ] = useState( null );\n\n\tconst onSelectMedia = attributesFromMedia( { attributes, setAttributes } );\n\n\tconst onSetHref = ( props ) => {\n\t\tsetAttributes( props );\n\t};\n\n\tconst onWidthChange = ( width ) => {\n\t\tsetTemporaryMediaWidth( applyWidthConstraints( width ) );\n\t};\n\tconst commitWidthChange = ( width ) => {\n\t\tsetAttributes( {\n\t\t\tmediaWidth: applyWidthConstraints( width ),\n\t\t} );\n\t\tsetTemporaryMediaWidth( null );\n\t};\n\n\tconst classNames = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-selected': isSelected,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\tconst gridTemplateColumns =\n\t\t'right' === mediaPosition\n\t\t\t? `1fr ${ widthString }`\n\t\t\t: `${ widthString } 1fr`;\n\tconst style = {\n\t\tgridTemplateColumns,\n\t\tmsGridColumns: gridTemplateColumns,\n\t};\n\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t};\n\tconst onVerticalAlignmentChange = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst updateImage = ( newMediaSizeSlug ) => {\n\t\tconst newUrl = getImageSourceUrlBySizeSlug( image, newMediaSizeSlug );\n\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaUrl: newUrl,\n\t\t\tmediaSizeSlug: newMediaSizeSlug,\n\t\t} );\n\t};\n\n\tconst mediaTextGeneralSettings = (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Crop image to fill entire column' ) }\n\t\t\t\t\tchecked={ imageFill }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\timageFill: ! imageFill,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ imageFill && mediaUrl && mediaType === 'image' && (\n\t\t\t\t<FocalPointPicker\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\turl={ mediaUrl }\n\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { focalPoint: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<TextareaControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Alt text (alternative text)' ) }\n\t\t\t\t\tvalue={ mediaAlt }\n\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t{ __( 'Describe the purpose of the image' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ImageSizeControl\n\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\tslug={ mediaSizeSlug }\n\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\tisResizable={ false }\n\t\t\t\t\timageSizeHelp={ __( 'Select which image size to load.' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaUrl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\t\tvalue={ temporaryMediaWidth || mediaWidth }\n\t\t\t\t\tonChange={ commitWidthChange }\n\t\t\t\t\tmin={ WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t\tmax={ 100 - WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classNames,\n\t\tstyle,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-media-text__content' },\n\t\t{ template: TEMPLATE }\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>{ mediaTextGeneralSettings }</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullLeft }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on left' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'left' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'left' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullRight }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on right' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'right' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'right' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ mediaType === 'image' && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaType={ mediaType }\n\t\t\t\t\t\tmediaUrl={ image && image.source_url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ mediaPosition === 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonWidthChange={ onWidthChange }\n\t\t\t\t\tcommitWidthChange={ commitWidthChange }\n\t\t\t\t\tref={ refMediaContainer }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tfocalPoint,\n\t\t\t\t\t\timageFill,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tisStackedOnMobile,\n\t\t\t\t\t\tmediaAlt,\n\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\tmediaPosition,\n\t\t\t\t\t\tmediaType,\n\t\t\t\t\t\tmediaUrl,\n\t\t\t\t\t\tmediaWidth,\n\t\t\t\t\t\tisContentLocked,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default MediaTextEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/media-text/edit.js"],"names":["TEMPLATE","placeholder","WIDTH_CONSTRAINT_PERCENTAGE","applyWidthConstraints","width","Math","max","min","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","getImageSourceUrlBySizeSlug","image","slug","media_details","sizes","source_url","attributesFromMedia","attributes","linkDestination","href","setAttributes","media","url","mediaAlt","undefined","mediaId","mediaType","mediaUrl","mediaLink","focalPoint","type","src","media_type","large","newHref","link","alt","id","MediaTextEdit","isSelected","clientId","imageFill","isStackedOnMobile","linkClass","linkTarget","mediaPosition","mediaWidth","rel","verticalAlignment","mediaSizeSlug","DEFAULT_MEDIA_SIZE_SLUG","imageSizes","isContentLocked","select","__unstableGetContentLockingParent","getSettings","blockEditorStore","coreStore","getMedia","context","refMediaContainer","imperativeFocalPointPreview","value","style","current","resizable","x","y","backgroundPosition","temporaryMediaWidth","setTemporaryMediaWidth","onSelectMedia","onSetHref","props","onWidthChange","commitWidthChange","classNames","widthString","gridTemplateColumns","msGridColumns","onMediaAltChange","newMediaAlt","onVerticalAlignmentChange","alignment","imageSizeOptions","filter","map","name","label","updateImage","newMediaSizeSlug","newUrl","mediaTextGeneralSettings","blockProps","className","innerBlocksProps","template","pullLeft","pullRight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockVerticalAlignmentControl,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\tExternalLink,\n\tFocalPointPicker,\n} from '@wordpress/components';\nimport { isBlobURL, getBlobTypeByURL } from '@wordpress/blob';\nimport { pullLeft, pullRight } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\nimport { DEFAULT_MEDIA_SIZE_SLUG } from './constants';\n\n/**\n * Constants\n */\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: _x( 'Content…', 'content placeholder' ),\n\t\t},\n\t],\n];\n\n// this limits the resize to a safe zone to avoid making broken layouts\nconst WIDTH_CONSTRAINT_PERCENTAGE = 15;\nconst applyWidthConstraints = ( width ) =>\n\tMath.max(\n\t\tWIDTH_CONSTRAINT_PERCENTAGE,\n\t\tMath.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )\n\t);\n\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\n\nfunction getImageSourceUrlBySizeSlug( image, slug ) {\n\t// eslint-disable-next-line camelcase\n\treturn image?.media_details?.sizes?.[ slug ]?.source_url;\n}\n\nfunction attributesFromMedia( {\n\tattributes: { linkDestination, href },\n\tsetAttributes,\n} ) {\n\treturn ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tmediaAlt: undefined,\n\t\t\t\tmediaId: undefined,\n\t\t\t\tmediaType: undefined,\n\t\t\t\tmediaUrl: undefined,\n\t\t\t\tmediaLink: undefined,\n\t\t\t\thref: undefined,\n\t\t\t\tfocalPoint: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tmedia.type = getBlobTypeByURL( media.url );\n\t\t}\n\n\t\tlet mediaType;\n\t\tlet src;\n\t\t// For media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else {\n\t\t\t// For media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tif ( mediaType === 'image' ) {\n\t\t\t// Try the \"large\" size URL, falling back to the \"full\" size URL below.\n\t\t\tsrc =\n\t\t\t\tmedia.sizes?.large?.url ||\n\t\t\t\t// eslint-disable-next-line camelcase\n\t\t\t\tmedia.media_details?.sizes?.large?.source_url;\n\t\t}\n\n\t\tlet newHref = href;\n\t\tif ( linkDestination === LINK_DESTINATION_MEDIA ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.url;\n\t\t}\n\n\t\t// Check if the image is linked to the attachment page.\n\t\tif ( linkDestination === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.link;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: src || media.url,\n\t\t\tmediaLink: media.link || undefined,\n\t\t\thref: newHref,\n\t\t\tfocalPoint: undefined,\n\t\t} );\n\t};\n}\n\nfunction MediaTextEdit( { attributes, isSelected, setAttributes, clientId } ) {\n\tconst {\n\t\tfocalPoint,\n\t\thref,\n\t\timageFill,\n\t\tisStackedOnMobile,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\tlinkTarget,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\trel,\n\t\tverticalAlignment,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\n\tconst { imageSizes, image, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __unstableGetContentLockingParent, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tisContentLocked:\n\t\t\t\t\t!! __unstableGetContentLockingParent( clientId ),\n\t\t\t\timage:\n\t\t\t\t\tmediaId && isSelected\n\t\t\t\t\t\t? select( coreStore ).getMedia( mediaId, {\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: null,\n\t\t\t\timageSizes: getSettings()?.imageSizes,\n\t\t\t};\n\t\t},\n\n\t\t[ isSelected, mediaId, clientId ]\n\t);\n\n\tconst refMediaContainer = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMediaContainer.current.resizable;\n\t\tconst { x, y } = value;\n\t\tstyle.backgroundPosition = `${ x * 100 }% ${ y * 100 }%`;\n\t};\n\n\tconst [ temporaryMediaWidth, setTemporaryMediaWidth ] = useState( null );\n\n\tconst onSelectMedia = attributesFromMedia( { attributes, setAttributes } );\n\n\tconst onSetHref = ( props ) => {\n\t\tsetAttributes( props );\n\t};\n\n\tconst onWidthChange = ( width ) => {\n\t\tsetTemporaryMediaWidth( applyWidthConstraints( width ) );\n\t};\n\tconst commitWidthChange = ( width ) => {\n\t\tsetAttributes( {\n\t\t\tmediaWidth: applyWidthConstraints( width ),\n\t\t} );\n\t\tsetTemporaryMediaWidth( null );\n\t};\n\n\tconst classNames = classnames( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-selected': isSelected,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill': imageFill,\n\t} );\n\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\tconst gridTemplateColumns =\n\t\t'right' === mediaPosition\n\t\t\t? `1fr ${ widthString }`\n\t\t\t: `${ widthString } 1fr`;\n\tconst style = {\n\t\tgridTemplateColumns,\n\t\tmsGridColumns: gridTemplateColumns,\n\t};\n\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t};\n\tconst onVerticalAlignmentChange = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\tconst updateImage = ( newMediaSizeSlug ) => {\n\t\tconst newUrl = getImageSourceUrlBySizeSlug( image, newMediaSizeSlug );\n\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaUrl: newUrl,\n\t\t\tmediaSizeSlug: newMediaSizeSlug,\n\t\t} );\n\t};\n\n\tconst mediaTextGeneralSettings = (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Crop image to fill entire column' ) }\n\t\t\t\t\tchecked={ imageFill }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\timageFill: ! imageFill,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ imageFill && mediaUrl && mediaType === 'image' && (\n\t\t\t\t<FocalPointPicker\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Focal point picker' ) }\n\t\t\t\t\turl={ mediaUrl }\n\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { focalPoint: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<TextareaControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Alt text (alternative text)' ) }\n\t\t\t\t\tvalue={ mediaAlt }\n\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t{ __( 'Describe the purpose of the image' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ImageSizeControl\n\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\tslug={ mediaSizeSlug }\n\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\tisResizable={ false }\n\t\t\t\t\timageSizeHelp={ __( 'Select which image size to load.' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ mediaUrl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\t\tvalue={ temporaryMediaWidth || mediaWidth }\n\t\t\t\t\tonChange={ commitWidthChange }\n\t\t\t\t\tmin={ WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t\tmax={ 100 - WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classNames,\n\t\tstyle,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-media-text__content' },\n\t\t{ template: TEMPLATE }\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>{ mediaTextGeneralSettings }</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullLeft }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on left' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'left' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'left' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullRight }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on right' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'right' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'right' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ mediaType === 'image' && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaType={ mediaType }\n\t\t\t\t\t\tmediaUrl={ image && image.source_url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ mediaPosition === 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonWidthChange={ onWidthChange }\n\t\t\t\t\tcommitWidthChange={ commitWidthChange }\n\t\t\t\t\tref={ refMediaContainer }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tfocalPoint,\n\t\t\t\t\t\timageFill,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tisStackedOnMobile,\n\t\t\t\t\t\tmediaAlt,\n\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\tmediaPosition,\n\t\t\t\t\t\tmediaType,\n\t\t\t\t\t\tmediaUrl,\n\t\t\t\t\t\tmediaWidth,\n\t\t\t\t\t\tisContentLocked,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default MediaTextEdit;\n"]}
@@ -58,6 +58,7 @@ function MoreEdit(_ref) {
58
58
  width: `${(customText ? customText : DEFAULT_TEXT).length + 1.2}em`
59
59
  };
60
60
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, null, (0, _element.createElement)(_components.ToggleControl, {
61
+ __nextHasNoMarginBottom: true,
61
62
  label: (0, _i18n.__)('Hide the excerpt on the full content page'),
62
63
  checked: !!noTeaser,
63
64
  onChange: toggleHideExcerpt,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/more/edit.js"],"names":["DEFAULT_TEXT","MoreEdit","attributes","customText","noTeaser","insertBlocksAfter","setAttributes","onChangeInput","event","target","value","undefined","onKeyDown","keyCode","ENTER","getHideExcerptHelp","checked","toggleHideExcerpt","style","width","length"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAPA;AACA;AACA;AAOA,MAAMA,YAAY,GAAG,cAAI,WAAJ,CAArB;;AAEe,SAASC,QAAT,OAIX;AAAA,MAJ8B;AACjCC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAF;AAAcC,MAAAA;AAAd,KADqB;AAEjCC,IAAAA,iBAFiC;AAGjCC,IAAAA;AAHiC,GAI9B;;AACH,QAAMC,aAAa,GAAKC,KAAF,IAAa;AAClCF,IAAAA,aAAa,CAAE;AACdH,MAAAA,UAAU,EACTK,KAAK,CAACC,MAAN,CAAaC,KAAb,KAAuB,EAAvB,GAA4BF,KAAK,CAACC,MAAN,CAAaC,KAAzC,GAAiDC;AAFpC,KAAF,CAAb;AAIA,GALD;;AAOA,QAAMC,SAAS,GAAG,SAAmB;AAAA,QAAjB;AAAEC,MAAAA;AAAF,KAAiB;;AACpC,QAAKA,OAAO,KAAKC,eAAjB,EAAyB;AACxBT,MAAAA,iBAAiB,CAAE,CAAE,yBAAa,kCAAb,CAAF,CAAF,CAAjB;AACA;AACD,GAJD;;AAMA,QAAMU,kBAAkB,GAAKC,OAAF,IAC1BA,OAAO,GACJ,cAAI,wBAAJ,CADI,GAEJ,cAAI,yBAAJ,CAHJ;;AAKA,QAAMC,iBAAiB,GAAG,MAAMX,aAAa,CAAE;AAAEF,IAAAA,QAAQ,EAAE,CAAEA;AAAd,GAAF,CAA7C;;AAEA,QAAMc,KAAK,GAAG;AACbC,IAAAA,KAAK,EAAG,GAAG,CAAEhB,UAAU,GAAGA,UAAH,GAAgBH,YAA5B,EAA2CoB,MAA3C,GAAoD,GAAK;AADvD,GAAd;AAIA,SACC,qDACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD,QACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cACP,2CADO,CADT;AAIC,IAAA,OAAO,EAAG,CAAC,CAAEhB,QAJd;AAKC,IAAA,QAAQ,EAAGa,iBALZ;AAMC,IAAA,IAAI,EAAGF;AANR,IADD,CADD,CADD,EAaC,mCAAU,iCAAV,EACC;AACC,kBAAa,cAAI,uBAAJ,CADd;AAEC,IAAA,IAAI,EAAC,MAFN;AAGC,IAAA,KAAK,EAAGZ,UAHT;AAIC,IAAA,WAAW,EAAGH,YAJf;AAKC,IAAA,QAAQ,EAAGO,aALZ;AAMC,IAAA,SAAS,EAAGK,SANb;AAOC,IAAA,KAAK,EAAGM;AAPT,IADD,CAbD,CADD;AA2BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport { ENTER } from '@wordpress/keycodes';\nimport { getDefaultBlockName, createBlock } from '@wordpress/blocks';\n\nconst DEFAULT_TEXT = __( 'Read more' );\n\nexport default function MoreEdit( {\n\tattributes: { customText, noTeaser },\n\tinsertBlocksAfter,\n\tsetAttributes,\n} ) {\n\tconst onChangeInput = ( event ) => {\n\t\tsetAttributes( {\n\t\t\tcustomText:\n\t\t\t\tevent.target.value !== '' ? event.target.value : undefined,\n\t\t} );\n\t};\n\n\tconst onKeyDown = ( { keyCode } ) => {\n\t\tif ( keyCode === ENTER ) {\n\t\t\tinsertBlocksAfter( [ createBlock( getDefaultBlockName() ) ] );\n\t\t}\n\t};\n\n\tconst getHideExcerptHelp = ( checked ) =>\n\t\tchecked\n\t\t\t? __( 'The excerpt is hidden.' )\n\t\t\t: __( 'The excerpt is visible.' );\n\n\tconst toggleHideExcerpt = () => setAttributes( { noTeaser: ! noTeaser } );\n\n\tconst style = {\n\t\twidth: `${ ( customText ? customText : DEFAULT_TEXT ).length + 1.2 }em`,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t'Hide the excerpt on the full content page'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ !! noTeaser }\n\t\t\t\t\t\tonChange={ toggleHideExcerpt }\n\t\t\t\t\t\thelp={ getHideExcerptHelp }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<input\n\t\t\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={ customText }\n\t\t\t\t\tplaceholder={ DEFAULT_TEXT }\n\t\t\t\t\tonChange={ onChangeInput }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/more/edit.js"],"names":["DEFAULT_TEXT","MoreEdit","attributes","customText","noTeaser","insertBlocksAfter","setAttributes","onChangeInput","event","target","value","undefined","onKeyDown","keyCode","ENTER","getHideExcerptHelp","checked","toggleHideExcerpt","style","width","length"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAPA;AACA;AACA;AAOA,MAAMA,YAAY,GAAG,cAAI,WAAJ,CAArB;;AAEe,SAASC,QAAT,OAIX;AAAA,MAJ8B;AACjCC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAF;AAAcC,MAAAA;AAAd,KADqB;AAEjCC,IAAAA,iBAFiC;AAGjCC,IAAAA;AAHiC,GAI9B;;AACH,QAAMC,aAAa,GAAKC,KAAF,IAAa;AAClCF,IAAAA,aAAa,CAAE;AACdH,MAAAA,UAAU,EACTK,KAAK,CAACC,MAAN,CAAaC,KAAb,KAAuB,EAAvB,GAA4BF,KAAK,CAACC,MAAN,CAAaC,KAAzC,GAAiDC;AAFpC,KAAF,CAAb;AAIA,GALD;;AAOA,QAAMC,SAAS,GAAG,SAAmB;AAAA,QAAjB;AAAEC,MAAAA;AAAF,KAAiB;;AACpC,QAAKA,OAAO,KAAKC,eAAjB,EAAyB;AACxBT,MAAAA,iBAAiB,CAAE,CAAE,yBAAa,kCAAb,CAAF,CAAF,CAAjB;AACA;AACD,GAJD;;AAMA,QAAMU,kBAAkB,GAAKC,OAAF,IAC1BA,OAAO,GACJ,cAAI,wBAAJ,CADI,GAEJ,cAAI,yBAAJ,CAHJ;;AAKA,QAAMC,iBAAiB,GAAG,MAAMX,aAAa,CAAE;AAAEF,IAAAA,QAAQ,EAAE,CAAEA;AAAd,GAAF,CAA7C;;AAEA,QAAMc,KAAK,GAAG;AACbC,IAAAA,KAAK,EAAG,GAAG,CAAEhB,UAAU,GAAGA,UAAH,GAAgBH,YAA5B,EAA2CoB,MAA3C,GAAoD,GAAK;AADvD,GAAd;AAIA,SACC,qDACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD,QACC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cACP,2CADO,CAFT;AAKC,IAAA,OAAO,EAAG,CAAC,CAAEhB,QALd;AAMC,IAAA,QAAQ,EAAGa,iBANZ;AAOC,IAAA,IAAI,EAAGF;AAPR,IADD,CADD,CADD,EAcC,mCAAU,iCAAV,EACC;AACC,kBAAa,cAAI,uBAAJ,CADd;AAEC,IAAA,IAAI,EAAC,MAFN;AAGC,IAAA,KAAK,EAAGZ,UAHT;AAIC,IAAA,WAAW,EAAGH,YAJf;AAKC,IAAA,QAAQ,EAAGO,aALZ;AAMC,IAAA,SAAS,EAAGK,SANb;AAOC,IAAA,KAAK,EAAGM;AAPT,IADD,CAdD,CADD;AA4BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport { ENTER } from '@wordpress/keycodes';\nimport { getDefaultBlockName, createBlock } from '@wordpress/blocks';\n\nconst DEFAULT_TEXT = __( 'Read more' );\n\nexport default function MoreEdit( {\n\tattributes: { customText, noTeaser },\n\tinsertBlocksAfter,\n\tsetAttributes,\n} ) {\n\tconst onChangeInput = ( event ) => {\n\t\tsetAttributes( {\n\t\t\tcustomText:\n\t\t\t\tevent.target.value !== '' ? event.target.value : undefined,\n\t\t} );\n\t};\n\n\tconst onKeyDown = ( { keyCode } ) => {\n\t\tif ( keyCode === ENTER ) {\n\t\t\tinsertBlocksAfter( [ createBlock( getDefaultBlockName() ) ] );\n\t\t}\n\t};\n\n\tconst getHideExcerptHelp = ( checked ) =>\n\t\tchecked\n\t\t\t? __( 'The excerpt is hidden.' )\n\t\t\t: __( 'The excerpt is visible.' );\n\n\tconst toggleHideExcerpt = () => setAttributes( { noTeaser: ! noTeaser } );\n\n\tconst style = {\n\t\twidth: `${ ( customText ? customText : DEFAULT_TEXT ).length + 1.2 }em`,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t'Hide the excerpt on the full content page'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ !! noTeaser }\n\t\t\t\t\t\tonChange={ toggleHideExcerpt }\n\t\t\t\t\t\thelp={ getHideExcerptHelp }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<input\n\t\t\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={ customText }\n\t\t\t\t\tplaceholder={ DEFAULT_TEXT }\n\t\t\t\t\tonChange={ onChangeInput }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
@@ -154,24 +154,6 @@ function Navigation(_ref) {
154
154
  createNavigationMenu('');
155
155
  };
156
156
 
157
- (0, _element.useEffect)(() => {
158
- hideNavigationMenuStatusNotice();
159
-
160
- if (isCreatingNavigationMenu) {
161
- (0, _a11y.speak)((0, _i18n.__)(`Creating Navigation Menu.`));
162
- }
163
-
164
- if (createNavigationMenuIsSuccess) {
165
- handleUpdateMenu(createNavigationMenuPost.id, {
166
- focusNavigationBlock: true
167
- });
168
- showNavigationMenuStatusNotice((0, _i18n.__)(`Navigation Menu successfully created.`));
169
- }
170
-
171
- if (createNavigationMenuIsError) {
172
- showNavigationMenuStatusNotice((0, _i18n.__)('Failed to create Navigation Menu.'));
173
- }
174
- }, [createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost]);
175
157
  const {
176
158
  hasUncontrolledInnerBlocks,
177
159
  uncontrolledInnerBlocks,
@@ -215,7 +197,31 @@ function Navigation(_ref) {
215
197
  const menuBDate = new Date(menuB.date);
216
198
  return menuADate.getTime() < menuBDate.getTime();
217
199
  });
218
- }, [navigationMenus]); // Attempt to retrieve and prioritize any existing navigation menu unless:
200
+ }, [navigationMenus]); // This useEffect adds snackbar and speak status notices when menus are created.
201
+ // If there are no fallback navigation menus then we don't show these messages,
202
+ // because this means that we are creating the first, fallback navigation menu.
203
+
204
+ (0, _element.useEffect)(() => {
205
+ hideNavigationMenuStatusNotice();
206
+
207
+ if (fallbackNavigationMenus && isCreatingNavigationMenu) {
208
+ (0, _a11y.speak)((0, _i18n.__)(`Creating Navigation Menu.`));
209
+ }
210
+
211
+ if (createNavigationMenuIsSuccess) {
212
+ handleUpdateMenu(createNavigationMenuPost.id, {
213
+ focusNavigationBlock: true
214
+ });
215
+
216
+ if (fallbackNavigationMenus) {
217
+ showNavigationMenuStatusNotice((0, _i18n.__)(`Navigation Menu successfully created.`));
218
+ }
219
+ }
220
+
221
+ if (createNavigationMenuIsError) {
222
+ showNavigationMenuStatusNotice((0, _i18n.__)('Failed to create Navigation Menu.'));
223
+ }
224
+ }, [createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost, fallbackNavigationMenus]); // Attempt to retrieve and prioritize any existing navigation menu unless:
219
225
  // - the are uncontrolled inner blocks already present in the block.
220
226
  // - the user is creating a new menu.
221
227
  // - there are no menus to choose from.
@@ -240,8 +246,16 @@ function Navigation(_ref) {
240
246
 
241
247
  setRef(fallbackNavigationMenus[0].id);
242
248
  }, [ref, isCreatingNavigationMenu, fallbackNavigationMenus, hasUncontrolledInnerBlocks]);
249
+ const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved; // If the block has inner blocks, but no menu id, then these blocks are either:
250
+ // - inserted via a pattern.
251
+ // - inserted directly via Code View (or otherwise).
252
+ // - from an older version of navigation block added before the block used a wp_navigation entity.
253
+ // Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
254
+ // that automatically saves the menu as an entity when changes are made to the inner blocks.
255
+
256
+ const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
243
257
  (0, _element.useEffect)(() => {
244
- if (!hasResolvedNavigationMenus || isConvertingClassicMenu || (fallbackNavigationMenus === null || fallbackNavigationMenus === void 0 ? void 0 : fallbackNavigationMenus.length) > 0 || !(classicMenus !== null && classicMenus !== void 0 && classicMenus.length)) {
258
+ if (ref || !hasResolvedNavigationMenus || isConvertingClassicMenu || (fallbackNavigationMenus === null || fallbackNavigationMenus === void 0 ? void 0 : fallbackNavigationMenus.length) > 0 || hasUnsavedBlocks) {
245
259
  return;
246
260
  } // If there's non fallback navigation menus and
247
261
  // a classic menu with a `primary` location or slug,
@@ -249,17 +263,31 @@ function Navigation(_ref) {
249
263
  // Otherwise, use the most recently created classic menu.
250
264
 
251
265
 
252
- const primaryMenus = classicMenus.filter(classicMenu => classicMenu.locations.includes('primary') || classicMenu.slug === 'primary');
266
+ if (classicMenus !== null && classicMenus !== void 0 && classicMenus.length) {
267
+ const primaryMenus = classicMenus.filter(classicMenu => classicMenu.locations.includes('primary') || classicMenu.slug === 'primary');
253
268
 
254
- if (primaryMenus.length) {
255
- convertClassicMenu(primaryMenus[0].id, primaryMenus[0].name, 'publish');
269
+ if (primaryMenus.length) {
270
+ convertClassicMenu(primaryMenus[0].id, primaryMenus[0].name, 'publish');
271
+ } else {
272
+ classicMenus.sort((a, b) => {
273
+ return b.id - a.id;
274
+ });
275
+ convertClassicMenu(classicMenus[0].id, classicMenus[0].name, 'publish');
276
+ }
256
277
  } else {
257
- classicMenus.sort((a, b) => {
258
- return b.id - a.id;
259
- });
260
- convertClassicMenu(classicMenus[0].id, classicMenus[0].name, 'publish');
278
+ // If there are no fallback navigation menus and no classic menus,
279
+ // then create a new navigation menu.
280
+ // Check that we have a page-list block type.
281
+ let defaultBlocks = [];
282
+
283
+ if ((0, _blocks.getBlockType)('core/page-list')) {
284
+ defaultBlocks = [(0, _blocks.createBlock)('core/page-list')];
285
+ }
286
+
287
+ createNavigationMenu('Navigation', // TODO - use the template slug in future
288
+ defaultBlocks, 'publish');
261
289
  }
262
- }, [hasResolvedNavigationMenus]);
290
+ }, [hasResolvedNavigationMenus, hasUnsavedBlocks]);
263
291
  const navRef = (0, _element.useRef)(); // The standard HTML5 tag for the block wrapper.
264
292
 
265
293
  const TagName = 'nav'; // "placeholder" shown if:
@@ -268,21 +296,7 @@ function Navigation(_ref) {
268
296
  // - there is no menu creation process in progress.
269
297
  // - there are no uncontrolled blocks.
270
298
 
271
- const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && (classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.length) === 0 && !hasUncontrolledInnerBlocks;
272
- (0, _element.useEffect)(() => {
273
- if (isPlaceholder) {
274
- /**
275
- * this fallback only displays (both in editor and on front)
276
- * the list of pages block if no menu is available as a fallback.
277
- * We don't want the fallback to request a save,
278
- * nor to be undoable, hence we mark it non persistent.
279
- */
280
- __unstableMarkNextChangeAsNotPersistent();
281
-
282
- replaceInnerBlocks(clientId, [(0, _blocks.createBlock)('core/page-list')]);
283
- }
284
- }, [clientId, isPlaceholder, ref]);
285
- const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved; // "loading" state:
299
+ const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && (classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.length) === 0 && !hasUncontrolledInnerBlocks; // "loading" state:
286
300
  // - there is a menu creation process in progress.
287
301
  // - there is a classic menu conversion process in progress.
288
302
  // OR:
@@ -320,8 +334,7 @@ function Navigation(_ref) {
320
334
  const [detectedColor, setDetectedColor] = (0, _element.useState)();
321
335
  const [detectedOverlayBackgroundColor, setDetectedOverlayBackgroundColor] = (0, _element.useState)();
322
336
  const [detectedOverlayColor, setDetectedOverlayColor] = (0, _element.useState)();
323
-
324
- const handleUpdateMenu = function (menuId) {
337
+ const handleUpdateMenu = (0, _element.useCallback)(function (menuId) {
325
338
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
326
339
  focusNavigationBlock: false
327
340
  };
@@ -333,7 +346,7 @@ function Navigation(_ref) {
333
346
  if (focusNavigationBlock) {
334
347
  selectBlock(clientId);
335
348
  }
336
- };
349
+ }, [selectBlock, clientId]);
337
350
 
338
351
  const onSelectClassicMenu = async classicMenu => {
339
352
  const navMenu = await convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
@@ -349,6 +362,24 @@ function Navigation(_ref) {
349
362
  handleUpdateMenu(menuId);
350
363
  };
351
364
 
365
+ (0, _element.useEffect)(() => {
366
+ hideNavigationMenuStatusNotice();
367
+
368
+ if (isCreatingNavigationMenu) {
369
+ (0, _a11y.speak)((0, _i18n.__)(`Creating Navigation Menu.`));
370
+ }
371
+
372
+ if (createNavigationMenuIsSuccess) {
373
+ handleUpdateMenu(createNavigationMenuPost.id, {
374
+ focusNavigationBlock: true
375
+ });
376
+ showNavigationMenuStatusNotice((0, _i18n.__)(`Navigation Menu successfully created.`));
377
+ }
378
+
379
+ if (createNavigationMenuIsError) {
380
+ showNavigationMenuStatusNotice((0, _i18n.__)('Failed to create Navigation Menu.'));
381
+ }
382
+ }, [createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost, createNavigationMenuIsError, createNavigationMenuIsSuccess, isCreatingNavigationMenu, handleUpdateMenu, hideNavigationMenuStatusNotice, showNavigationMenuStatusNotice]);
352
383
  (0, _element.useEffect)(() => {
353
384
  hideClassicMenuConversionNotice();
354
385
 
@@ -452,6 +483,7 @@ function Navigation(_ref) {
452
483
  value: "always",
453
484
  label: (0, _i18n.__)('Always')
454
485
  })), hasSubmenus && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("h3", null, (0, _i18n.__)('Submenus')), (0, _element.createElement)(_components.ToggleControl, {
486
+ __nextHasNoMarginBottom: true,
455
487
  checked: openSubmenusOnClick,
456
488
  onChange: value => {
457
489
  setAttributes({
@@ -464,6 +496,7 @@ function Navigation(_ref) {
464
496
  },
465
497
  label: (0, _i18n.__)('Open on click')
466
498
  }), (0, _element.createElement)(_components.ToggleControl, {
499
+ __nextHasNoMarginBottom: true,
467
500
  checked: showSubmenuIcon,
468
501
  onChange: value => {
469
502
  setAttributes({
@@ -507,14 +540,7 @@ function Navigation(_ref) {
507
540
  }), (0, _element.createElement)(_blockEditor.ContrastChecker, {
508
541
  backgroundColor: detectedOverlayBackgroundColor,
509
542
  textColor: detectedOverlayColor
510
- }))))); // If the block has inner blocks, but no menu id, then these blocks are either:
511
- // - inserted via a pattern.
512
- // - inserted directly via Code View (or otherwise).
513
- // - from an older version of navigation block added before the block used a wp_navigation entity.
514
- // Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
515
- // that automatically saves the menu as an entity when changes are made to the inner blocks.
516
-
517
- const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
543
+ })))));
518
544
  const isManageMenusButtonDisabled = !hasManagePermissions || !hasResolvedNavigationMenus;
519
545
 
520
546
  if (hasUnsavedBlocks && !isCreatingNavigationMenu) {