@wordpress/block-library 11.0.0 → 11.1.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 (811) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +7 -7
  3. package/build/accordion/block.json +4 -1
  4. package/build/accordion-item/block.json +7 -1
  5. package/build/accordion-panel/block.json +9 -1
  6. package/build/archives/block.json +9 -0
  7. package/build/archives/edit.cjs.map +3 -3
  8. package/build/audio/block.json +8 -0
  9. package/build/audio/edit.cjs.map +3 -3
  10. package/build/avatar/hooks.cjs.map +2 -2
  11. package/build/breadcrumbs/block.json +3 -0
  12. package/build/breadcrumbs/edit.cjs.map +3 -3
  13. package/build/button/edit.cjs.map +2 -2
  14. package/build/buttons/block.json +9 -0
  15. package/build/categories/block.json +12 -1
  16. package/build/categories/edit.cjs.map +3 -3
  17. package/build/code/block.json +10 -0
  18. package/build/code/save.cjs.map +2 -2
  19. package/build/column/block.json +9 -0
  20. package/build/columns/block.json +9 -0
  21. package/build/comment-author-name/block.json +3 -0
  22. package/build/comment-content/block.json +5 -0
  23. package/build/comment-date/block.json +3 -0
  24. package/build/comment-edit-link/block.json +3 -0
  25. package/build/comment-reply-link/block.json +3 -0
  26. package/build/comment-template/hooks.cjs.map +2 -2
  27. package/build/comments/block.json +10 -0
  28. package/build/comments-pagination/block.json +3 -0
  29. package/build/comments-pagination-next/block.json +3 -0
  30. package/build/comments-pagination-numbers/block.json +3 -0
  31. package/build/comments-pagination-previous/block.json +6 -0
  32. package/build/comments-title/block.json +3 -0
  33. package/build/cover/edit/index.cjs +4 -1
  34. package/build/cover/edit/index.cjs.map +2 -2
  35. package/build/cover/edit/inspector-controls.cjs +52 -13
  36. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  37. package/build/cover/transforms.cjs.map +2 -2
  38. package/build/details/block.json +12 -0
  39. package/build/details/index.cjs.map +2 -2
  40. package/build/embed/embed-controls.cjs.map +2 -2
  41. package/build/file/block.json +9 -0
  42. package/build/file/deprecated.cjs.map +2 -2
  43. package/build/file/edit.cjs.map +2 -2
  44. package/build/file/inspector.cjs.map +3 -3
  45. package/build/file/save.cjs.map +2 -2
  46. package/build/footnotes/block.json +10 -0
  47. package/build/footnotes/edit.cjs.map +2 -2
  48. package/build/gallery/block.json +9 -0
  49. package/build/gallery/dynamic-gallery.cjs.map +3 -3
  50. package/build/gallery/edit.cjs +65 -39
  51. package/build/gallery/edit.cjs.map +3 -3
  52. package/build/gallery/{flex-styles.cjs → gallery-styles.cjs} +31 -32
  53. package/build/gallery/gallery-styles.cjs.map +7 -0
  54. package/build/gallery/responsive-styles.cjs +27 -5
  55. package/build/gallery/responsive-styles.cjs.map +2 -2
  56. package/build/group/block.json +1 -0
  57. package/build/heading/block.json +11 -0
  58. package/build/heading/index.cjs.map +2 -2
  59. package/build/home-link/block.json +18 -0
  60. package/build/home-link/edit.cjs.map +3 -3
  61. package/build/html/modal.cjs +3 -6
  62. package/build/html/modal.cjs.map +2 -2
  63. package/build/image/edit.cjs.map +2 -2
  64. package/build/image/image.cjs +10 -8
  65. package/build/image/image.cjs.map +3 -3
  66. package/build/image/use-open-image-media-editor-modal.cjs +20 -0
  67. package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
  68. package/build/index.cjs.map +2 -2
  69. package/build/latest-comments/block.json +10 -0
  70. package/build/latest-comments/edit.cjs.map +3 -3
  71. package/build/latest-posts/block.json +10 -0
  72. package/build/latest-posts/edit.cjs.map +2 -2
  73. package/build/list/ordered-list-settings.cjs.map +3 -3
  74. package/build/list-item/hooks/use-enter.cjs.map +2 -2
  75. package/build/loginout/block.json +10 -0
  76. package/build/math/block.json +12 -0
  77. package/build/math/deprecated.cjs +29 -12
  78. package/build/math/deprecated.cjs.map +2 -2
  79. package/build/math/edit.cjs +67 -46
  80. package/build/math/edit.cjs.map +2 -2
  81. package/build/math/save.cjs +2 -2
  82. package/build/math/save.cjs.map +2 -2
  83. package/build/media-text/block.json +1 -0
  84. package/build/media-text/constants.cjs +3 -0
  85. package/build/media-text/constants.cjs.map +2 -2
  86. package/build/media-text/deprecated.cjs.map +2 -2
  87. package/build/media-text/edit.cjs +40 -0
  88. package/build/media-text/edit.cjs.map +3 -3
  89. package/build/media-text/image-fill.cjs.map +2 -2
  90. package/build/media-text/media-container.cjs +3 -3
  91. package/build/media-text/media-container.cjs.map +2 -2
  92. package/build/navigation/edit/index.cjs +1 -4
  93. package/build/navigation/edit/index.cjs.map +2 -2
  94. package/build/navigation/edit/menu-inspector-controls.cjs.map +2 -2
  95. package/build/navigation/edit/overlay-template-part-selector.cjs.map +3 -3
  96. package/build/navigation/edit/responsive-wrapper.cjs.map +2 -2
  97. package/build/navigation/edit/use-generate-default-navigation-title.cjs.map +2 -2
  98. package/build/navigation/view.cjs +2 -2
  99. package/build/navigation/view.cjs.map +2 -2
  100. package/build/navigation-link/edit.cjs.map +2 -2
  101. package/build/navigation-link/link-ui/page-creator.cjs.map +3 -3
  102. package/build/navigation-link/shared/controls.cjs.map +3 -3
  103. package/build/navigation-link/shared/invalid-draft-display.cjs.map +2 -2
  104. package/build/navigation-link/shared/use-link-preview.cjs +13 -13
  105. package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
  106. package/build/navigation-overlay-close/block.json +7 -0
  107. package/build/navigation-submenu/block.json +6 -0
  108. package/build/navigation-submenu/edit.cjs +9 -1
  109. package/build/navigation-submenu/edit.cjs.map +3 -3
  110. package/build/page-list/block.json +10 -0
  111. package/build/paragraph/block.json +1 -0
  112. package/build/paragraph/edit.cjs +1 -2
  113. package/build/paragraph/edit.cjs.map +2 -2
  114. package/build/paragraph/index.cjs +6 -0
  115. package/build/paragraph/index.cjs.map +3 -3
  116. package/build/playlist/block.json +1 -0
  117. package/build/playlist/edit.cjs +2 -1
  118. package/build/playlist/edit.cjs.map +3 -3
  119. package/build/post-author/edit.cjs.map +3 -3
  120. package/build/post-author-biography/block.json +4 -0
  121. package/build/post-author-name/block.json +5 -0
  122. package/build/post-author-name/edit.cjs.map +2 -2
  123. package/build/post-comments-count/block.json +3 -0
  124. package/build/post-comments-form/block.json +10 -0
  125. package/build/post-content/block.json +3 -0
  126. package/build/post-date/block.json +3 -0
  127. package/build/post-date/edit.cjs.map +2 -2
  128. package/build/post-excerpt/block.json +6 -0
  129. package/build/post-excerpt/edit.cjs.map +2 -2
  130. package/build/post-featured-image/edit.cjs +11 -9
  131. package/build/post-featured-image/edit.cjs.map +2 -2
  132. package/build/post-navigation-link/block.json +30 -0
  133. package/build/post-navigation-link/edit.cjs +13 -2
  134. package/build/post-navigation-link/edit.cjs.map +3 -3
  135. package/build/post-template/block.json +13 -1
  136. package/build/post-terms/block.json +6 -0
  137. package/build/post-time-to-read/block.json +6 -0
  138. package/build/post-time-to-read/edit.cjs.map +2 -2
  139. package/build/post-title/block.json +10 -0
  140. package/build/preformatted/block.json +7 -0
  141. package/build/pullquote/block.json +1 -0
  142. package/build/pullquote/deprecated.cjs.map +2 -2
  143. package/build/query/deprecated.cjs.map +2 -2
  144. package/build/query/edit/inspector-controls/index.cjs.map +3 -3
  145. package/build/query/edit/inspector-controls/order-control.cjs.map +3 -3
  146. package/build/query/edit/inspector-controls/sticky-control.cjs.map +3 -3
  147. package/build/query/view.cjs.map +2 -2
  148. package/build/query-no-results/block.json +10 -2
  149. package/build/query-pagination/block.json +3 -0
  150. package/build/query-pagination-next/block.json +3 -0
  151. package/build/query-pagination-numbers/block.json +3 -0
  152. package/build/query-pagination-previous/block.json +3 -0
  153. package/build/query-title/block.json +3 -0
  154. package/build/query-title/use-archive-label.cjs.map +2 -2
  155. package/build/query-total/block.json +6 -0
  156. package/build/quote/block.json +1 -0
  157. package/build/quote/deprecated.cjs.map +2 -2
  158. package/build/quote/transforms.cjs.map +2 -2
  159. package/build/read-more/block.json +6 -0
  160. package/build/rss/block.json +6 -0
  161. package/build/search/edit.cjs.map +3 -3
  162. package/build/separator/edit.cjs.map +3 -3
  163. package/build/site-tagline/block.json +8 -1
  164. package/build/site-title/block.json +7 -1
  165. package/build/social-links/block.json +3 -0
  166. package/build/social-links/edit.cjs +2 -3
  167. package/build/social-links/edit.cjs.map +3 -3
  168. package/build/tab-panel/block.json +25 -0
  169. package/build/tab-panel/controls.cjs.map +3 -3
  170. package/build/tab-panels/block.json +18 -1
  171. package/build/table/state.cjs.map +2 -2
  172. package/build/table-of-contents/block.json +7 -0
  173. package/build/table-of-contents/edit.cjs.map +3 -3
  174. package/build/table-of-contents/utils.cjs.map +2 -2
  175. package/build/tabs/block.json +24 -1
  176. package/build/tabs/use-tab-actions.cjs.map +2 -2
  177. package/build/tag-cloud/block.json +19 -0
  178. package/build/tag-cloud/edit.cjs.map +3 -3
  179. package/build/template-part/edit/advanced-controls.cjs.map +3 -3
  180. package/build/template-part/edit/import-controls.cjs.map +3 -3
  181. package/build/template-part/edit/index.cjs.map +2 -2
  182. package/build/template-part/edit/inner-blocks.cjs.map +2 -2
  183. package/build/template-part/edit/placeholder.cjs.map +2 -2
  184. package/build/template-part/edit/selection-modal.cjs.map +1 -1
  185. package/build/term-count/block.json +7 -0
  186. package/build/term-count/use-term-count.cjs.map +2 -2
  187. package/build/term-description/block.json +9 -0
  188. package/build/term-description/use-term-description.cjs.map +2 -2
  189. package/build/term-name/block.json +10 -0
  190. package/build/term-name/use-term-name.cjs.map +2 -2
  191. package/build/term-template/block.json +10 -1
  192. package/build/terms-query/edit/inspector-controls/index.cjs.map +2 -2
  193. package/build/terms-query/edit/inspector-controls/inherit-control.cjs.map +2 -2
  194. package/build/terms-query/edit/inspector-controls/order-control.cjs.map +3 -3
  195. package/build/terms-query/edit/inspector-controls/taxonomy-control.cjs.map +3 -3
  196. package/build/utils/hooks.cjs.map +2 -2
  197. package/build/utils/media-control.cjs +5 -1
  198. package/build/utils/media-control.cjs.map +2 -2
  199. package/build/utils/poster-image.cjs.map +2 -2
  200. package/build/utils/search-patterns.cjs +7 -43
  201. package/build/utils/search-patterns.cjs.map +3 -3
  202. package/build/utils/style-state.cjs +4 -6
  203. package/build/utils/style-state.cjs.map +2 -2
  204. package/build/verse/block.json +1 -0
  205. package/build/video/block.json +6 -0
  206. package/build/video/edit-common-settings.cjs.map +3 -3
  207. package/build/video/edit.cjs +23 -15
  208. package/build/video/edit.cjs.map +3 -3
  209. package/build/video/index.cjs +0 -2
  210. package/build/video/index.cjs.map +3 -3
  211. package/build/video/save.cjs +5 -1
  212. package/build/video/save.cjs.map +3 -3
  213. package/build/video/tracks-editor.cjs.map +3 -3
  214. package/build-module/accordion/block.json +4 -1
  215. package/build-module/accordion-item/block.json +7 -1
  216. package/build-module/accordion-panel/block.json +9 -1
  217. package/build-module/archives/block.json +9 -0
  218. package/build-module/archives/edit.mjs +2 -2
  219. package/build-module/archives/edit.mjs.map +2 -2
  220. package/build-module/audio/block.json +8 -0
  221. package/build-module/audio/edit.mjs +2 -2
  222. package/build-module/audio/edit.mjs.map +2 -2
  223. package/build-module/avatar/hooks.mjs.map +2 -2
  224. package/build-module/breadcrumbs/block.json +3 -0
  225. package/build-module/breadcrumbs/edit.mjs +3 -3
  226. package/build-module/breadcrumbs/edit.mjs.map +2 -2
  227. package/build-module/button/edit.mjs.map +2 -2
  228. package/build-module/buttons/block.json +9 -0
  229. package/build-module/categories/block.json +12 -1
  230. package/build-module/categories/edit.mjs +2 -2
  231. package/build-module/categories/edit.mjs.map +2 -2
  232. package/build-module/code/block.json +10 -0
  233. package/build-module/code/save.mjs.map +2 -2
  234. package/build-module/column/block.json +9 -0
  235. package/build-module/columns/block.json +9 -0
  236. package/build-module/comment-author-name/block.json +3 -0
  237. package/build-module/comment-content/block.json +5 -0
  238. package/build-module/comment-date/block.json +3 -0
  239. package/build-module/comment-edit-link/block.json +3 -0
  240. package/build-module/comment-reply-link/block.json +3 -0
  241. package/build-module/comment-template/hooks.mjs.map +2 -2
  242. package/build-module/comments/block.json +10 -0
  243. package/build-module/comments-pagination/block.json +3 -0
  244. package/build-module/comments-pagination-next/block.json +3 -0
  245. package/build-module/comments-pagination-numbers/block.json +3 -0
  246. package/build-module/comments-pagination-previous/block.json +6 -0
  247. package/build-module/comments-title/block.json +3 -0
  248. package/build-module/cover/edit/index.mjs +4 -1
  249. package/build-module/cover/edit/index.mjs.map +2 -2
  250. package/build-module/cover/edit/inspector-controls.mjs +57 -14
  251. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  252. package/build-module/cover/transforms.mjs.map +2 -2
  253. package/build-module/details/block.json +12 -0
  254. package/build-module/details/index.mjs.map +2 -2
  255. package/build-module/embed/embed-controls.mjs.map +2 -2
  256. package/build-module/file/block.json +9 -0
  257. package/build-module/file/deprecated.mjs.map +2 -2
  258. package/build-module/file/edit.mjs.map +2 -2
  259. package/build-module/file/inspector.mjs +2 -2
  260. package/build-module/file/inspector.mjs.map +2 -2
  261. package/build-module/file/save.mjs.map +2 -2
  262. package/build-module/footnotes/block.json +10 -0
  263. package/build-module/footnotes/edit.mjs.map +2 -2
  264. package/build-module/gallery/block.json +9 -0
  265. package/build-module/gallery/dynamic-gallery.mjs +2 -2
  266. package/build-module/gallery/dynamic-gallery.mjs.map +2 -2
  267. package/build-module/gallery/edit.mjs +68 -42
  268. package/build-module/gallery/edit.mjs.map +2 -2
  269. package/build-module/gallery/{flex-styles.mjs → gallery-styles.mjs} +29 -30
  270. package/build-module/gallery/gallery-styles.mjs.map +7 -0
  271. package/build-module/gallery/responsive-styles.mjs +25 -4
  272. package/build-module/gallery/responsive-styles.mjs.map +2 -2
  273. package/build-module/group/block.json +1 -0
  274. package/build-module/heading/block.json +11 -0
  275. package/build-module/heading/index.mjs.map +2 -2
  276. package/build-module/home-link/block.json +18 -0
  277. package/build-module/home-link/edit.mjs +2 -2
  278. package/build-module/home-link/edit.mjs.map +2 -2
  279. package/build-module/html/modal.mjs +3 -6
  280. package/build-module/html/modal.mjs.map +2 -2
  281. package/build-module/image/edit.mjs.map +2 -2
  282. package/build-module/image/image.mjs +12 -10
  283. package/build-module/image/image.mjs.map +2 -2
  284. package/build-module/image/use-open-image-media-editor-modal.mjs +20 -0
  285. package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
  286. package/build-module/index.mjs.map +2 -2
  287. package/build-module/latest-comments/block.json +10 -0
  288. package/build-module/latest-comments/edit.mjs +2 -2
  289. package/build-module/latest-comments/edit.mjs.map +2 -2
  290. package/build-module/latest-posts/block.json +10 -0
  291. package/build-module/latest-posts/edit.mjs.map +2 -2
  292. package/build-module/list/ordered-list-settings.mjs +2 -2
  293. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  294. package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
  295. package/build-module/loginout/block.json +10 -0
  296. package/build-module/math/block.json +12 -0
  297. package/build-module/math/deprecated.mjs +29 -12
  298. package/build-module/math/deprecated.mjs.map +2 -2
  299. package/build-module/math/edit.mjs +68 -47
  300. package/build-module/math/edit.mjs.map +2 -2
  301. package/build-module/math/save.mjs +2 -2
  302. package/build-module/math/save.mjs.map +2 -2
  303. package/build-module/media-text/block.json +1 -0
  304. package/build-module/media-text/constants.mjs +2 -0
  305. package/build-module/media-text/constants.mjs.map +2 -2
  306. package/build-module/media-text/deprecated.mjs.map +2 -2
  307. package/build-module/media-text/edit.mjs +42 -1
  308. package/build-module/media-text/edit.mjs.map +2 -2
  309. package/build-module/media-text/image-fill.mjs.map +2 -2
  310. package/build-module/media-text/media-container.mjs +1 -1
  311. package/build-module/media-text/media-container.mjs.map +2 -2
  312. package/build-module/navigation/edit/index.mjs +1 -4
  313. package/build-module/navigation/edit/index.mjs.map +2 -2
  314. package/build-module/navigation/edit/menu-inspector-controls.mjs.map +2 -2
  315. package/build-module/navigation/edit/overlay-template-part-selector.mjs +2 -2
  316. package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +2 -2
  317. package/build-module/navigation/edit/responsive-wrapper.mjs.map +2 -2
  318. package/build-module/navigation/edit/use-generate-default-navigation-title.mjs.map +2 -2
  319. package/build-module/navigation/view.mjs +2 -2
  320. package/build-module/navigation/view.mjs.map +2 -2
  321. package/build-module/navigation-link/edit.mjs.map +2 -2
  322. package/build-module/navigation-link/link-ui/page-creator.mjs +2 -2
  323. package/build-module/navigation-link/link-ui/page-creator.mjs.map +2 -2
  324. package/build-module/navigation-link/shared/controls.mjs +2 -2
  325. package/build-module/navigation-link/shared/controls.mjs.map +2 -2
  326. package/build-module/navigation-link/shared/invalid-draft-display.mjs.map +2 -2
  327. package/build-module/navigation-link/shared/use-link-preview.mjs +13 -13
  328. package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
  329. package/build-module/navigation-overlay-close/block.json +7 -0
  330. package/build-module/navigation-submenu/block.json +6 -0
  331. package/build-module/navigation-submenu/edit.mjs +11 -2
  332. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  333. package/build-module/page-list/block.json +10 -0
  334. package/build-module/paragraph/block.json +1 -0
  335. package/build-module/paragraph/edit.mjs +1 -2
  336. package/build-module/paragraph/edit.mjs.map +2 -2
  337. package/build-module/paragraph/index.mjs +6 -0
  338. package/build-module/paragraph/index.mjs.map +2 -2
  339. package/build-module/playlist/block.json +1 -0
  340. package/build-module/playlist/edit.mjs +5 -4
  341. package/build-module/playlist/edit.mjs.map +2 -2
  342. package/build-module/post-author/edit.mjs +2 -2
  343. package/build-module/post-author/edit.mjs.map +2 -2
  344. package/build-module/post-author-biography/block.json +4 -0
  345. package/build-module/post-author-name/block.json +5 -0
  346. package/build-module/post-author-name/edit.mjs.map +2 -2
  347. package/build-module/post-comments-count/block.json +3 -0
  348. package/build-module/post-comments-form/block.json +10 -0
  349. package/build-module/post-content/block.json +3 -0
  350. package/build-module/post-date/block.json +3 -0
  351. package/build-module/post-date/edit.mjs.map +2 -2
  352. package/build-module/post-excerpt/block.json +6 -0
  353. package/build-module/post-excerpt/edit.mjs.map +2 -2
  354. package/build-module/post-featured-image/edit.mjs +11 -9
  355. package/build-module/post-featured-image/edit.mjs.map +2 -2
  356. package/build-module/post-navigation-link/block.json +30 -0
  357. package/build-module/post-navigation-link/edit.mjs +19 -5
  358. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  359. package/build-module/post-template/block.json +13 -1
  360. package/build-module/post-terms/block.json +6 -0
  361. package/build-module/post-time-to-read/block.json +6 -0
  362. package/build-module/post-time-to-read/edit.mjs.map +2 -2
  363. package/build-module/post-title/block.json +10 -0
  364. package/build-module/preformatted/block.json +7 -0
  365. package/build-module/pullquote/block.json +1 -0
  366. package/build-module/pullquote/deprecated.mjs.map +2 -2
  367. package/build-module/query/deprecated.mjs.map +2 -2
  368. package/build-module/query/edit/inspector-controls/index.mjs +2 -2
  369. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  370. package/build-module/query/edit/inspector-controls/order-control.mjs +2 -2
  371. package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
  372. package/build-module/query/edit/inspector-controls/sticky-control.mjs +2 -2
  373. package/build-module/query/edit/inspector-controls/sticky-control.mjs.map +2 -2
  374. package/build-module/query/view.mjs.map +2 -2
  375. package/build-module/query-no-results/block.json +10 -2
  376. package/build-module/query-pagination/block.json +3 -0
  377. package/build-module/query-pagination-next/block.json +3 -0
  378. package/build-module/query-pagination-numbers/block.json +3 -0
  379. package/build-module/query-pagination-previous/block.json +3 -0
  380. package/build-module/query-title/block.json +3 -0
  381. package/build-module/query-title/use-archive-label.mjs.map +2 -2
  382. package/build-module/query-total/block.json +6 -0
  383. package/build-module/quote/block.json +1 -0
  384. package/build-module/quote/deprecated.mjs.map +2 -2
  385. package/build-module/quote/transforms.mjs.map +2 -2
  386. package/build-module/read-more/block.json +6 -0
  387. package/build-module/rss/block.json +6 -0
  388. package/build-module/search/edit.mjs +3 -3
  389. package/build-module/search/edit.mjs.map +2 -2
  390. package/build-module/separator/edit.mjs +5 -2
  391. package/build-module/separator/edit.mjs.map +2 -2
  392. package/build-module/site-tagline/block.json +8 -1
  393. package/build-module/site-title/block.json +7 -1
  394. package/build-module/social-links/block.json +3 -0
  395. package/build-module/social-links/edit.mjs +4 -5
  396. package/build-module/social-links/edit.mjs.map +2 -2
  397. package/build-module/tab-panel/block.json +25 -0
  398. package/build-module/tab-panel/controls.mjs +2 -2
  399. package/build-module/tab-panel/controls.mjs.map +2 -2
  400. package/build-module/tab-panels/block.json +18 -1
  401. package/build-module/table/state.mjs.map +2 -2
  402. package/build-module/table-of-contents/block.json +7 -0
  403. package/build-module/table-of-contents/edit.mjs +2 -2
  404. package/build-module/table-of-contents/edit.mjs.map +2 -2
  405. package/build-module/table-of-contents/utils.mjs.map +2 -2
  406. package/build-module/tabs/block.json +24 -1
  407. package/build-module/tabs/use-tab-actions.mjs.map +2 -2
  408. package/build-module/tag-cloud/block.json +19 -0
  409. package/build-module/tag-cloud/edit.mjs +2 -2
  410. package/build-module/tag-cloud/edit.mjs.map +2 -2
  411. package/build-module/template-part/edit/advanced-controls.mjs +5 -2
  412. package/build-module/template-part/edit/advanced-controls.mjs.map +2 -2
  413. package/build-module/template-part/edit/import-controls.mjs +2 -2
  414. package/build-module/template-part/edit/import-controls.mjs.map +2 -2
  415. package/build-module/template-part/edit/index.mjs.map +2 -2
  416. package/build-module/template-part/edit/inner-blocks.mjs.map +2 -2
  417. package/build-module/template-part/edit/placeholder.mjs.map +2 -2
  418. package/build-module/template-part/edit/selection-modal.mjs.map +1 -1
  419. package/build-module/term-count/block.json +7 -0
  420. package/build-module/term-count/use-term-count.mjs.map +2 -2
  421. package/build-module/term-description/block.json +9 -0
  422. package/build-module/term-description/use-term-description.mjs.map +2 -2
  423. package/build-module/term-name/block.json +10 -0
  424. package/build-module/term-name/use-term-name.mjs.map +2 -2
  425. package/build-module/term-template/block.json +10 -1
  426. package/build-module/terms-query/edit/inspector-controls/index.mjs.map +2 -2
  427. package/build-module/terms-query/edit/inspector-controls/inherit-control.mjs.map +2 -2
  428. package/build-module/terms-query/edit/inspector-controls/order-control.mjs +2 -2
  429. package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
  430. package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs +2 -2
  431. package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs.map +2 -2
  432. package/build-module/utils/hooks.mjs.map +2 -2
  433. package/build-module/utils/media-control.mjs +5 -1
  434. package/build-module/utils/media-control.mjs.map +2 -2
  435. package/build-module/utils/poster-image.mjs.map +2 -2
  436. package/build-module/utils/search-patterns.mjs +7 -32
  437. package/build-module/utils/search-patterns.mjs.map +2 -2
  438. package/build-module/utils/style-state.mjs +6 -4
  439. package/build-module/utils/style-state.mjs.map +2 -2
  440. package/build-module/verse/block.json +1 -0
  441. package/build-module/video/block.json +6 -0
  442. package/build-module/video/edit-common-settings.mjs +2 -2
  443. package/build-module/video/edit-common-settings.mjs.map +2 -2
  444. package/build-module/video/edit.mjs +25 -16
  445. package/build-module/video/edit.mjs.map +2 -2
  446. package/build-module/video/index.mjs +0 -2
  447. package/build-module/video/index.mjs.map +2 -2
  448. package/build-module/video/save.mjs +7 -2
  449. package/build-module/video/save.mjs.map +2 -2
  450. package/build-module/video/tracks-editor.mjs +2 -2
  451. package/build-module/video/tracks-editor.mjs.map +2 -2
  452. package/build-style/button/style-rtl.css +2 -1
  453. package/build-style/button/style.css +2 -1
  454. package/build-style/columns/style-rtl.css +1 -1
  455. package/build-style/columns/style.css +1 -1
  456. package/build-style/comments/editor-rtl.css +1 -1
  457. package/build-style/comments/editor.css +1 -1
  458. package/build-style/comments/style-rtl.css +1 -1
  459. package/build-style/comments/style.css +1 -1
  460. package/build-style/common-rtl.css +1 -1
  461. package/build-style/common.css +1 -1
  462. package/build-style/cover/style-rtl.css +6 -0
  463. package/build-style/cover/style.css +6 -0
  464. package/build-style/editor-rtl.css +21 -7
  465. package/build-style/editor.css +21 -7
  466. package/build-style/embed/editor-rtl.css +2 -1
  467. package/build-style/embed/editor.css +2 -1
  468. package/build-style/gallery/style-rtl.css +1 -2
  469. package/build-style/gallery/style.css +1 -2
  470. package/build-style/image/editor-rtl.css +6 -0
  471. package/build-style/image/editor.css +6 -0
  472. package/build-style/image/style-rtl.css +6 -9
  473. package/build-style/image/style.css +6 -9
  474. package/build-style/math/editor-rtl.css +5 -0
  475. package/build-style/math/editor.css +5 -0
  476. package/build-style/navigation/editor-rtl.css +1 -0
  477. package/build-style/navigation/editor.css +1 -0
  478. package/build-style/navigation/style-rtl.css +19 -4
  479. package/build-style/navigation/style.css +19 -4
  480. package/build-style/navigation-link/editor-rtl.css +3 -1
  481. package/build-style/navigation-link/editor.css +3 -1
  482. package/build-style/navigation-overlay-close/style-rtl.css +1 -1
  483. package/build-style/navigation-overlay-close/style.css +1 -1
  484. package/build-style/navigation-submenu/editor-rtl.css +3 -1
  485. package/build-style/navigation-submenu/editor.css +3 -1
  486. package/build-style/post-navigation-link/style-rtl.css +3 -0
  487. package/build-style/post-navigation-link/style.css +3 -0
  488. package/build-style/post-title/style-rtl.css +2 -2
  489. package/build-style/post-title/style.css +2 -2
  490. package/build-style/query-pagination/editor-rtl.css +0 -3
  491. package/build-style/query-pagination/editor.css +0 -3
  492. package/build-style/search/theme-rtl.css +1 -1
  493. package/build-style/search/theme.css +1 -1
  494. package/build-style/style-rtl.css +47 -23
  495. package/build-style/style.css +47 -23
  496. package/build-style/tab-panel/style-rtl.css +2 -0
  497. package/build-style/tab-panel/style.css +2 -0
  498. package/build-style/theme-rtl.css +1 -1
  499. package/build-style/theme.css +1 -1
  500. package/build-style/verse/style-rtl.css +2 -1
  501. package/build-style/verse/style.css +2 -1
  502. package/package.json +42 -43
  503. package/src/accordion/README.md +3 -0
  504. package/src/accordion/block.json +4 -1
  505. package/src/accordion-item/README.md +5 -0
  506. package/src/accordion-item/block.json +7 -1
  507. package/src/accordion-panel/README.md +7 -0
  508. package/src/accordion-panel/block.json +9 -1
  509. package/src/archives/README.md +4 -0
  510. package/src/archives/block.json +9 -0
  511. package/src/archives/edit.jsx +2 -2
  512. package/src/audio/README.md +4 -0
  513. package/src/audio/block.json +8 -0
  514. package/src/audio/edit.jsx +2 -2
  515. package/src/avatar/hooks.js +2 -2
  516. package/src/breadcrumbs/README.md +2 -0
  517. package/src/breadcrumbs/block.json +3 -0
  518. package/src/breadcrumbs/edit.jsx +3 -3
  519. package/src/breadcrumbs/index.php +1 -1
  520. package/src/button/edit.jsx +1 -1
  521. package/src/button/style.scss +2 -2
  522. package/src/buttons/README.md +4 -0
  523. package/src/buttons/block.json +9 -0
  524. package/src/calendar/index.php +1 -1
  525. package/src/categories/README.md +6 -0
  526. package/src/categories/block.json +12 -1
  527. package/src/categories/edit.jsx +2 -2
  528. package/src/code/README.md +5 -0
  529. package/src/code/block.json +10 -0
  530. package/src/code/save.jsx +1 -1
  531. package/src/column/README.md +4 -0
  532. package/src/column/block.json +9 -0
  533. package/src/columns/README.md +4 -0
  534. package/src/columns/block.json +9 -0
  535. package/src/columns/style.scss +2 -3
  536. package/src/comment-author-name/README.md +2 -0
  537. package/src/comment-author-name/block.json +3 -0
  538. package/src/comment-content/README.md +4 -0
  539. package/src/comment-content/block.json +5 -0
  540. package/src/comment-date/README.md +2 -0
  541. package/src/comment-date/block.json +3 -0
  542. package/src/comment-edit-link/README.md +2 -0
  543. package/src/comment-edit-link/block.json +3 -0
  544. package/src/comment-reply-link/README.md +2 -0
  545. package/src/comment-reply-link/block.json +3 -0
  546. package/src/comment-template/hooks.js +1 -1
  547. package/src/comments/README.md +5 -0
  548. package/src/comments/block.json +10 -0
  549. package/src/comments/style.scss +1 -1
  550. package/src/comments-pagination/README.md +2 -0
  551. package/src/comments-pagination/block.json +3 -0
  552. package/src/comments-pagination-next/README.md +2 -0
  553. package/src/comments-pagination-next/block.json +3 -0
  554. package/src/comments-pagination-numbers/README.md +2 -0
  555. package/src/comments-pagination-numbers/block.json +3 -0
  556. package/src/comments-pagination-previous/README.md +2 -0
  557. package/src/comments-pagination-previous/block.json +6 -0
  558. package/src/comments-title/README.md +2 -0
  559. package/src/comments-title/block.json +3 -0
  560. package/src/common.scss +1 -2
  561. package/src/cover/edit/index.jsx +5 -2
  562. package/src/cover/edit/inspector-controls.jsx +66 -15
  563. package/src/cover/style.scss +10 -0
  564. package/src/cover/test/{edit.jsdom.test.js → edit.browser.test.js} +122 -147
  565. package/src/cover/transforms.js +3 -3
  566. package/src/details/README.md +7 -0
  567. package/src/details/block.json +12 -0
  568. package/src/details/index.js +1 -1
  569. package/src/embed/editor.scss +2 -2
  570. package/src/embed/embed-controls.jsx +2 -2
  571. package/src/file/README.md +4 -0
  572. package/src/file/block.json +9 -0
  573. package/src/file/deprecated.jsx +3 -3
  574. package/src/file/edit.jsx +5 -3
  575. package/src/file/inspector.jsx +3 -3
  576. package/src/file/save.jsx +2 -2
  577. package/src/footnotes/README.md +5 -0
  578. package/src/footnotes/block.json +10 -0
  579. package/src/footnotes/edit.jsx +1 -1
  580. package/src/gallery/README.md +4 -0
  581. package/src/gallery/block.json +9 -0
  582. package/src/gallery/dynamic-gallery.jsx +4 -4
  583. package/src/gallery/edit.jsx +122 -70
  584. package/src/gallery/gallery-styles.js +117 -0
  585. package/src/gallery/index.php +181 -67
  586. package/src/gallery/responsive-styles.js +59 -5
  587. package/src/gallery/test/edit.jsdom.test.js +71 -3
  588. package/src/gallery/test/responsive-styles.js +59 -5
  589. package/src/group/README.md +1 -0
  590. package/src/group/block.json +1 -0
  591. package/src/heading/README.md +6 -0
  592. package/src/heading/block.json +11 -0
  593. package/src/heading/index.js +2 -2
  594. package/src/home-link/README.md +5 -0
  595. package/src/home-link/block.json +18 -0
  596. package/src/home-link/edit.jsx +2 -2
  597. package/src/html/modal.jsx +0 -3
  598. package/src/icon/index.php +9 -0
  599. package/src/image/edit.jsx +1 -1
  600. package/src/image/editor.scss +8 -0
  601. package/src/image/image.jsx +20 -18
  602. package/src/image/index.php +10 -4
  603. package/src/image/style.scss +1 -0
  604. package/src/image/test/use-open-image-media-editor-modal.jsdom.test.js +140 -1
  605. package/src/image/use-open-image-media-editor-modal.js +37 -0
  606. package/src/index.jsx +1 -1
  607. package/src/latest-comments/README.md +5 -0
  608. package/src/latest-comments/block.json +10 -0
  609. package/src/latest-comments/edit.jsx +2 -2
  610. package/src/latest-posts/README.md +5 -0
  611. package/src/latest-posts/block.json +10 -0
  612. package/src/latest-posts/edit.jsx +1 -1
  613. package/src/list/ordered-list-settings.jsx +2 -2
  614. package/src/list-item/hooks/use-enter.js +1 -1
  615. package/src/loginout/README.md +5 -0
  616. package/src/loginout/block.json +10 -0
  617. package/src/math/README.md +7 -2
  618. package/src/math/block.json +12 -0
  619. package/src/math/deprecated.jsx +38 -12
  620. package/src/math/edit.jsx +49 -20
  621. package/src/math/editor.scss +5 -0
  622. package/src/math/save.jsx +20 -4
  623. package/src/media-text/README.md +1 -0
  624. package/src/media-text/block.json +1 -0
  625. package/src/media-text/constants.js +1 -0
  626. package/src/media-text/deprecated.jsx +3 -3
  627. package/src/media-text/edit.jsx +48 -3
  628. package/src/media-text/image-fill.js +2 -2
  629. package/src/media-text/media-container.jsx +1 -1
  630. package/src/navigation/edit/index.jsx +3 -5
  631. package/src/navigation/edit/menu-inspector-controls.jsx +2 -2
  632. package/src/navigation/edit/overlay-template-part-selector.jsx +3 -3
  633. package/src/navigation/edit/responsive-wrapper.jsx +1 -1
  634. package/src/navigation/edit/use-generate-default-navigation-title.js +2 -2
  635. package/src/navigation/editor.scss +1 -0
  636. package/src/navigation/index.php +12 -0
  637. package/src/navigation/style.scss +41 -5
  638. package/src/navigation/test/use-navigation-menu.jsdom.test.js +6 -28
  639. package/src/navigation/test/view.jsdom.test.js +23 -0
  640. package/src/navigation/view.js +9 -6
  641. package/src/navigation-link/edit.jsx +1 -1
  642. package/src/navigation-link/editor.scss +6 -1
  643. package/src/navigation-link/link-ui/page-creator.jsx +2 -2
  644. package/src/navigation-link/shared/controls.jsx +2 -2
  645. package/src/navigation-link/shared/invalid-draft-display.jsx +2 -2
  646. package/src/navigation-link/shared/test/use-link-preview.jsdom.test.js +22 -22
  647. package/src/navigation-link/shared/use-link-preview.js +15 -14
  648. package/src/navigation-link/test/__snapshots__/hooks.jsdom.test.js.snap +41 -11
  649. package/src/navigation-overlay-close/README.md +1 -0
  650. package/src/navigation-overlay-close/block.json +7 -0
  651. package/src/navigation-overlay-close/style.scss +1 -1
  652. package/src/navigation-submenu/README.md +7 -0
  653. package/src/navigation-submenu/block.json +6 -0
  654. package/src/navigation-submenu/edit.jsx +12 -2
  655. package/src/navigation-submenu/editor.scss +6 -1
  656. package/src/navigation-submenu/index.php +11 -0
  657. package/src/page-list/README.md +5 -0
  658. package/src/page-list/block.json +10 -0
  659. package/src/paragraph/README.md +1 -0
  660. package/src/paragraph/block.json +1 -0
  661. package/src/paragraph/edit.jsx +2 -4
  662. package/src/paragraph/index.js +7 -0
  663. package/src/pattern/index.php +2 -2
  664. package/src/playlist/README.md +1 -0
  665. package/src/playlist/block.json +1 -0
  666. package/src/playlist/edit.jsx +6 -4
  667. package/src/playlist-track/test/edit.jsdom.test.jsx +2 -3
  668. package/src/post-author/edit.jsx +2 -2
  669. package/src/post-author-biography/README.md +3 -0
  670. package/src/post-author-biography/block.json +4 -0
  671. package/src/post-author-name/README.md +4 -0
  672. package/src/post-author-name/block.json +5 -0
  673. package/src/post-author-name/edit.jsx +1 -1
  674. package/src/post-comments-count/README.md +2 -0
  675. package/src/post-comments-count/block.json +3 -0
  676. package/src/post-comments-form/README.md +5 -0
  677. package/src/post-comments-form/block.json +10 -0
  678. package/src/post-content/README.md +3 -0
  679. package/src/post-content/block.json +3 -0
  680. package/src/post-date/README.md +2 -0
  681. package/src/post-date/block.json +3 -0
  682. package/src/post-date/edit.jsx +2 -2
  683. package/src/post-excerpt/README.md +5 -0
  684. package/src/post-excerpt/block.json +6 -0
  685. package/src/post-excerpt/edit.jsx +1 -1
  686. package/src/post-featured-image/edit.jsx +13 -11
  687. package/src/post-navigation-link/README.md +12 -0
  688. package/src/post-navigation-link/block.json +30 -0
  689. package/src/post-navigation-link/edit.jsx +27 -6
  690. package/src/post-navigation-link/index.php +94 -5
  691. package/src/post-navigation-link/style.scss +2 -0
  692. package/src/post-template/README.md +7 -0
  693. package/src/post-template/block.json +13 -1
  694. package/src/post-terms/README.md +5 -0
  695. package/src/post-terms/block.json +6 -0
  696. package/src/post-time-to-read/README.md +5 -0
  697. package/src/post-time-to-read/block.json +6 -0
  698. package/src/post-time-to-read/edit.jsx +2 -2
  699. package/src/post-title/README.md +5 -0
  700. package/src/post-title/block.json +10 -0
  701. package/src/post-title/style.scss +2 -3
  702. package/src/preformatted/README.md +6 -0
  703. package/src/preformatted/block.json +7 -0
  704. package/src/pullquote/README.md +1 -0
  705. package/src/pullquote/block.json +1 -0
  706. package/src/pullquote/deprecated.jsx +1 -1
  707. package/src/query/deprecated.jsx +1 -1
  708. package/src/query/edit/inspector-controls/index.jsx +4 -4
  709. package/src/query/edit/inspector-controls/order-control.jsx +2 -2
  710. package/src/query/edit/inspector-controls/sticky-control.jsx +2 -2
  711. package/src/query/view.js +6 -9
  712. package/src/query-no-results/README.md +7 -0
  713. package/src/query-no-results/block.json +10 -2
  714. package/src/query-pagination/README.md +2 -0
  715. package/src/query-pagination/block.json +3 -0
  716. package/src/query-pagination/editor.scss +0 -3
  717. package/src/query-pagination-next/README.md +2 -0
  718. package/src/query-pagination-next/block.json +3 -0
  719. package/src/query-pagination-numbers/README.md +2 -0
  720. package/src/query-pagination-numbers/block.json +3 -0
  721. package/src/query-pagination-previous/README.md +2 -0
  722. package/src/query-pagination-previous/block.json +3 -0
  723. package/src/query-title/README.md +2 -0
  724. package/src/query-title/block.json +3 -0
  725. package/src/query-title/use-archive-label.js +1 -1
  726. package/src/query-total/README.md +5 -0
  727. package/src/query-total/block.json +6 -0
  728. package/src/quote/README.md +1 -0
  729. package/src/quote/block.json +1 -0
  730. package/src/quote/deprecated.jsx +2 -2
  731. package/src/quote/transforms.js +3 -3
  732. package/src/read-more/README.md +5 -0
  733. package/src/read-more/block.json +6 -0
  734. package/src/rss/README.md +5 -0
  735. package/src/rss/block.json +6 -0
  736. package/src/search/edit.jsx +6 -6
  737. package/src/search/theme.scss +1 -1
  738. package/src/separator/edit.jsx +7 -4
  739. package/src/site-tagline/README.md +6 -0
  740. package/src/site-tagline/block.json +8 -1
  741. package/src/site-title/README.md +5 -0
  742. package/src/site-title/block.json +7 -1
  743. package/src/social-links/README.md +2 -0
  744. package/src/social-links/block.json +3 -0
  745. package/src/social-links/edit.jsx +4 -5
  746. package/src/tab-panel/README.md +9 -0
  747. package/src/tab-panel/block.json +25 -0
  748. package/src/tab-panel/controls.jsx +2 -2
  749. package/src/tab-panel/style.scss +5 -2
  750. package/src/tab-panels/README.md +7 -0
  751. package/src/tab-panels/block.json +18 -1
  752. package/src/table/state.js +1 -1
  753. package/src/table-of-contents/README.md +6 -0
  754. package/src/table-of-contents/block.json +7 -0
  755. package/src/table-of-contents/edit.jsx +6 -6
  756. package/src/table-of-contents/utils.ts +2 -2
  757. package/src/tabs/README.md +9 -0
  758. package/src/tabs/block.json +24 -1
  759. package/src/tabs/use-tab-actions.js +1 -1
  760. package/src/tag-cloud/README.md +9 -0
  761. package/src/tag-cloud/block.json +19 -0
  762. package/src/tag-cloud/edit.jsx +2 -2
  763. package/src/template-part/edit/advanced-controls.jsx +5 -2
  764. package/src/template-part/edit/import-controls.jsx +2 -2
  765. package/src/template-part/edit/index.jsx +2 -2
  766. package/src/template-part/edit/inner-blocks.jsx +1 -1
  767. package/src/template-part/edit/placeholder.jsx +2 -2
  768. package/src/template-part/edit/selection-modal.jsx +1 -1
  769. package/src/term-count/README.md +6 -0
  770. package/src/term-count/block.json +7 -0
  771. package/src/term-count/use-term-count.js +1 -1
  772. package/src/term-description/README.md +5 -0
  773. package/src/term-description/block.json +9 -0
  774. package/src/term-description/use-term-description.js +1 -1
  775. package/src/term-name/README.md +5 -0
  776. package/src/term-name/block.json +10 -0
  777. package/src/term-name/index.php +1 -1
  778. package/src/term-name/use-term-name.js +1 -1
  779. package/src/term-template/README.md +5 -0
  780. package/src/term-template/block.json +10 -1
  781. package/src/terms-query/edit/inspector-controls/index.jsx +2 -2
  782. package/src/terms-query/edit/inspector-controls/inherit-control.jsx +1 -1
  783. package/src/terms-query/edit/inspector-controls/order-control.jsx +2 -2
  784. package/src/terms-query/edit/inspector-controls/taxonomy-control.jsx +2 -2
  785. package/src/utils/hooks.js +1 -1
  786. package/src/utils/media-control.jsx +16 -10
  787. package/src/utils/poster-image.jsx +2 -2
  788. package/src/utils/search-patterns.js +9 -53
  789. package/src/utils/style-state.js +6 -4
  790. package/src/utils/test/{search-patterns.js → search-patterns.jsdom.test.js} +1 -22
  791. package/src/utils/test/waveform-player.jsdom.test.jsx +36 -38
  792. package/src/utils/test/{waveform-utils.jsdom.test.js → waveform-utils.browser.test.js} +64 -44
  793. package/src/verse/README.md +1 -0
  794. package/src/verse/block.json +1 -0
  795. package/src/verse/style.scss +2 -2
  796. package/src/video/README.md +7 -0
  797. package/src/video/block.json +6 -0
  798. package/src/video/edit-common-settings.jsx +3 -3
  799. package/src/video/edit.jsx +56 -51
  800. package/src/video/index.js +0 -2
  801. package/src/video/save.jsx +10 -1
  802. package/src/video/tracks-editor.jsx +2 -2
  803. package/build/gallery/flex-styles.cjs.map +0 -7
  804. package/build/video/variations.cjs +0 -75
  805. package/build/video/variations.cjs.map +0 -7
  806. package/build-module/gallery/flex-styles.mjs.map +0 -7
  807. package/build-module/video/variations.mjs +0 -50
  808. package/build-module/video/variations.mjs.map +0 -7
  809. package/src/gallery/flex-styles.js +0 -99
  810. package/src/video/test/variations.js +0 -63
  811. package/src/video/variations.js +0 -62
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/post-author/edit.jsx"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tComboboxControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalText as WCText,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { recreateWithRecommendedBlocks } from './utils';\nimport {\n\tuseDefaultAvatar,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { InspectorControlsLastItem } = unlock( blockEditorPrivateApis );\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 100,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nfunction AuthorCombobox( { value, onChange } ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst { authors, isLoading } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUsers, isResolving } = select( coreStore );\n\n\t\t\tconst query = { ...AUTHORS_QUERY };\n\t\t\tif ( filterValue ) {\n\t\t\t\tquery.search = filterValue;\n\t\t\t\tquery.search_columns = [ 'name' ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tauthors: getUsers( query ),\n\t\t\t\tisLoading: isResolving( 'getUsers', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[ filterValue ]\n\t);\n\n\tconst authorOptions = useMemo( () => {\n\t\tconst fetchedAuthors = ( authors ?? [] ).map( ( author ) => {\n\t\t\treturn {\n\t\t\t\tvalue: author.id,\n\t\t\t\tlabel: decodeEntities( author.name ),\n\t\t\t};\n\t\t} );\n\n\t\t// Ensure the current author is included in the list.\n\t\tconst foundAuthor = fetchedAuthors.findIndex(\n\t\t\t( fetchedAuthor ) => value?.id === fetchedAuthor.value\n\t\t);\n\n\t\tlet currentAuthor = [];\n\t\tif ( foundAuthor < 0 && value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: value.id,\n\t\t\t\t\tlabel: decodeEntities( value.name ),\n\t\t\t\t},\n\t\t\t];\n\t\t} else if ( foundAuthor < 0 && ! value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\tlabel: __( '(No author)' ),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn [ ...currentAuthor, ...fetchedAuthors ];\n\t}, [ authors, value ] );\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\tlabel={ __( 'Author' ) }\n\t\t\toptions={ authorOptions }\n\t\t\tvalue={ value?.id }\n\t\t\tonFilterValueChange={ debounce( setFilterValue, 300 ) }\n\t\t\tonChange={ onChange }\n\t\t\tallowReset={ false }\n\t\t\tisLoading={ isLoading }\n\t\t/>\n\t);\n}\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst defaultAvatar = useDefaultAvatar();\n\n\tconst { authorDetails, canAssignAuthor, supportsAuthor } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getPostType } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst currentPost = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst authorId = currentPost?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorDetails: authorId\n\t\t\t\t\t? getUser( authorId, { context: 'view' } )\n\t\t\t\t\t: null,\n\t\t\t\tsupportsAuthor:\n\t\t\t\t\tgetPostType( postType )?.supports?.author ?? false,\n\t\t\t\tcanAssignAuthor: currentPost?._links?.[\n\t\t\t\t\t'wp:action-assign-author'\n\t\t\t\t]\n\t\t\t\t\t? true\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst {\n\t\ttextAlign,\n\t\tshowAvatar,\n\t\tshowBio,\n\t\tbyline,\n\t\tisLink,\n\t\tlinkTarget,\n\t\tavatarSize,\n\t} = attributes;\n\tconst avatarSizes = [];\n\tconst authorName = authorDetails?.name || __( 'Post Author' );\n\tif ( authorDetails?.avatar_urls ) {\n\t\tObject.keys( authorDetails.avatar_urls ).forEach( ( size ) => {\n\t\t\tavatarSizes.push( {\n\t\t\t\tvalue: size,\n\t\t\t\tlabel: `${ size } x ${ size }`,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst handleSelect = ( nextAuthorId ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tauthor: nextAuthorId,\n\t\t} );\n\t};\n\n\tconst showAuthorControl =\n\t\t!! postId && ! isDescendentOfQueryLoop && canAssignAuthor;\n\n\tif ( ! supportsAuthor && postType !== undefined ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t__( 'This post type (%s) does not support the author.' ),\n\t\t\t\t\tpostType\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction transformBlock() {\n\t\treplaceBlock(\n\t\t\tclientId,\n\t\t\trecreateWithRecommendedBlocks( attributes, blockTypes )\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tavatarSize: 48,\n\t\t\t\t\t\t\tshowAvatar: true,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showAuthorControl && (\n\t\t\t\t\t\t<div style={ { gridColumn: '1 / -1' } }>\n\t\t\t\t\t\t\t<AuthorCombobox\n\t\t\t\t\t\t\t\tvalue={ authorDetails }\n\t\t\t\t\t\t\t\tonChange={ handleSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showAvatar }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowAvatar: ! showAvatar,\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\t{ showAvatar && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => avatarSize !== 48 }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { avatarSize: 48 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\t\tvalue={ avatarSize }\n\t\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\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\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! showBio }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\t\tchecked={ !! showBio }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! isLink }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Link target' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\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\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\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</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ blockTypes.some(\n\t\t\t\t( blockType ) => blockType.name === 'core/group'\n\t\t\t) && (\n\t\t\t\t<InspectorControlsLastItem>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"wp-block-post-author__transform\"\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<WCText as=\"p\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'This block is no longer supported. Recreate its design with the Avatar, Author Name and Author Biography blocks.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ transformBlock }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Recreate' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</VStack>\n\t\t\t\t</InspectorControlsLastItem>\n\t\t\t) }\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\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{ showAvatar && (\n\t\t\t\t\t<div className=\"wp-block-post-author__avatar\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\twidth={ avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails?.avatar_urls?.[ avatarSize ] ||\n\t\t\t\t\t\t\t\tdefaultAvatar\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={\n\t\t\t\t\t\t\t\tauthorDetails?.name || __( 'Default Avatar' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-post-author__content\">\n\t\t\t\t\t{ ( ! RichText.isEmpty( byline ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tidentifier=\"byline\"\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__byline\"\n\t\t\t\t\t\t\taria-label={ __( 'Post author byline text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write byline…' ) }\n\t\t\t\t\t\t\tvalue={ byline }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { byline: value } )\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<p className=\"wp-block-post-author__name\">\n\t\t\t\t\t\t{ isLink ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"#post-author-pseudo-link\"\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ authorName }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tauthorName\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ showBio && (\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__bio\"\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t__html: authorDetails?.description,\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</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorEdit;\n"],
5
- "mappings": "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",
6
- "names": ["blockEditorPrivateApis", "coreStore", "blocksStore", "blockEditorStore", "clsx", "ToolsPanel", "ToolsPanelItem", "VStack", "WCText"]
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tComboboxControl,\n\tSelectControl as WCSelectControl,\n\tToggleControl,\n\t__experimentalText as WCText,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { recreateWithRecommendedBlocks } from './utils';\nimport {\n\tuseDefaultAvatar,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { InspectorControlsLastItem } = unlock( blockEditorPrivateApis );\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 100,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nfunction AuthorCombobox( { value, onChange } ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst { authors, isLoading } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUsers, isResolving } = select( coreStore );\n\n\t\t\tconst query = { ...AUTHORS_QUERY };\n\t\t\tif ( filterValue ) {\n\t\t\t\tquery.search = filterValue;\n\t\t\t\tquery.search_columns = [ 'name' ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tauthors: getUsers( query ),\n\t\t\t\tisLoading: isResolving( 'getUsers', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[ filterValue ]\n\t);\n\n\tconst authorOptions = useMemo( () => {\n\t\tconst fetchedAuthors = ( authors ?? [] ).map( ( author ) => {\n\t\t\treturn {\n\t\t\t\tvalue: author.id,\n\t\t\t\tlabel: decodeEntities( author.name ),\n\t\t\t};\n\t\t} );\n\n\t\t// Ensure the current author is included in the list.\n\t\tconst foundAuthor = fetchedAuthors.findIndex(\n\t\t\t( fetchedAuthor ) => value?.id === fetchedAuthor.value\n\t\t);\n\n\t\tlet currentAuthor = [];\n\t\tif ( foundAuthor < 0 && value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: value.id,\n\t\t\t\t\tlabel: decodeEntities( value.name ),\n\t\t\t\t},\n\t\t\t];\n\t\t} else if ( foundAuthor < 0 && ! value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\tlabel: __( '(No author)' ),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn [ ...currentAuthor, ...fetchedAuthors ];\n\t}, [ authors, value ] );\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\tlabel={ __( 'Author' ) }\n\t\t\toptions={ authorOptions }\n\t\t\tvalue={ value?.id }\n\t\t\tonFilterValueChange={ debounce( setFilterValue, 300 ) }\n\t\t\tonChange={ onChange }\n\t\t\tallowReset={ false }\n\t\t\tisLoading={ isLoading }\n\t\t/>\n\t);\n}\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst defaultAvatar = useDefaultAvatar();\n\n\tconst { authorDetails, canAssignAuthor, supportsAuthor } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getPostType } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst currentPost = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst authorId = currentPost?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorDetails: authorId\n\t\t\t\t\t? getUser( authorId, { context: 'view' } )\n\t\t\t\t\t: null,\n\t\t\t\tsupportsAuthor:\n\t\t\t\t\tgetPostType( postType )?.supports?.author ?? false,\n\t\t\t\tcanAssignAuthor: currentPost?._links?.[\n\t\t\t\t\t'wp:action-assign-author'\n\t\t\t\t]\n\t\t\t\t\t? true\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst {\n\t\ttextAlign,\n\t\tshowAvatar,\n\t\tshowBio,\n\t\tbyline,\n\t\tisLink,\n\t\tlinkTarget,\n\t\tavatarSize,\n\t} = attributes;\n\tconst avatarSizes = [];\n\tconst authorName = authorDetails?.name || __( 'Post Author' );\n\tif ( authorDetails?.avatar_urls ) {\n\t\tObject.keys( authorDetails.avatar_urls ).forEach( ( size ) => {\n\t\t\tavatarSizes.push( {\n\t\t\t\tvalue: size,\n\t\t\t\tlabel: `${ size } x ${ size }`,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst handleSelect = ( nextAuthorId ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tauthor: nextAuthorId,\n\t\t} );\n\t};\n\n\tconst showAuthorControl =\n\t\t!! postId && ! isDescendentOfQueryLoop && canAssignAuthor;\n\n\tif ( ! supportsAuthor && postType !== undefined ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t__( 'This post type (%s) does not support the author.' ),\n\t\t\t\t\tpostType\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction transformBlock() {\n\t\treplaceBlock(\n\t\t\tclientId,\n\t\t\trecreateWithRecommendedBlocks( attributes, blockTypes )\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tavatarSize: 48,\n\t\t\t\t\t\t\tshowAvatar: true,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showAuthorControl && (\n\t\t\t\t\t\t<div style={ { gridColumn: '1 / -1' } }>\n\t\t\t\t\t\t\t<AuthorCombobox\n\t\t\t\t\t\t\t\tvalue={ authorDetails }\n\t\t\t\t\t\t\t\tonChange={ handleSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showAvatar }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowAvatar: ! showAvatar,\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\t{ showAvatar && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => avatarSize !== 48 }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { avatarSize: 48 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<WCSelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\t\tvalue={ avatarSize }\n\t\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\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\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! showBio }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\t\tchecked={ !! showBio }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! isLink }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Link target' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\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\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\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</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ blockTypes.some(\n\t\t\t\t( blockType ) => blockType.name === 'core/group'\n\t\t\t) && (\n\t\t\t\t<InspectorControlsLastItem>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"wp-block-post-author__transform\"\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<WCText as=\"p\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'This block is no longer supported. Recreate its design with the Avatar, Author Name and Author Biography blocks.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ transformBlock }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Recreate' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</VStack>\n\t\t\t\t</InspectorControlsLastItem>\n\t\t\t) }\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\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{ showAvatar && (\n\t\t\t\t\t<div className=\"wp-block-post-author__avatar\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\twidth={ avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails?.avatar_urls?.[ avatarSize ] ||\n\t\t\t\t\t\t\t\tdefaultAvatar\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={\n\t\t\t\t\t\t\t\tauthorDetails?.name || __( 'Default Avatar' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-post-author__content\">\n\t\t\t\t\t{ ( ! RichText.isEmpty( byline ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tidentifier=\"byline\"\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__byline\"\n\t\t\t\t\t\t\taria-label={ __( 'Post author byline text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write byline…' ) }\n\t\t\t\t\t\t\tvalue={ byline }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { byline: value } )\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<p className=\"wp-block-post-author__name\">\n\t\t\t\t\t\t{ isLink ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"#post-author-pseudo-link\"\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ authorName }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tauthorName\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ showBio && (\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__bio\"\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t__html: authorDetails?.description,\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</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorEdit;\n"],
5
+ "mappings": "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",
6
+ "names": ["blockEditorPrivateApis", "coreStore", "blocksStore", "blockEditorStore", "clsx", "ToolsPanel", "ToolsPanelItem", "WCSelectControl", "VStack", "WCText"]
7
7
  }
@@ -16,6 +16,9 @@
16
16
  "margin": true,
17
17
  "padding": true
18
18
  },
19
+ "background": {
20
+ "gradient": true
21
+ },
19
22
  "color": {
20
23
  "gradients": true,
21
24
  "link": true,
@@ -28,6 +31,7 @@
28
31
  "fontSize": true,
29
32
  "lineHeight": true,
30
33
  "textAlign": true,
34
+ "textColumns": true,
31
35
  "__experimentalFontFamily": true,
32
36
  "__experimentalFontWeight": true,
33
37
  "__experimentalFontStyle": true,
@@ -25,6 +25,11 @@
25
25
  "supports": {
26
26
  "anchor": true,
27
27
  "html": false,
28
+ "background": {
29
+ "backgroundImage": true,
30
+ "backgroundSize": true,
31
+ "gradient": true
32
+ },
28
33
  "spacing": {
29
34
  "margin": true,
30
35
  "padding": true
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/post-author-name/edit.jsx"],
4
- "sourcesContent": ["import { useBlockProps, InspectorControls } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nfunction PostAuthorNameEdit( props ) {\n\tuseDeprecatedTextAlign( props );\n\tconst {\n\t\tattributes: { isLink, linkTarget },\n\t\tsetAttributes,\n\t\tcontext: { postType, postId },\n\t} = props;\n\tconst { authorName, supportsAuthor } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getPostType } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorName: _authorId ? getUser( _authorId ) : null,\n\t\t\t\tsupportsAuthor:\n\t\t\t\t\tgetPostType( postType )?.supports?.author ?? false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tconst displayName = authorName?.name || __( 'Author Name' );\n\n\tconst displayAuthor = isLink ? (\n\t\t<a\n\t\t\thref=\"#author-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\tclassName=\"wp-block-post-author-name__link\"\n\t\t>\n\t\t\t{ displayName }\n\t\t</a>\n\t) : (\n\t\tdisplayName\n\t);\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link to author archive' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => isLink }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Link to author archive' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\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\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\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</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ ! supportsAuthor && postType !== undefined\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'This post type (%s) does not support the author.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType\n\t\t\t\t\t )\n\t\t\t\t\t: displayAuthor }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorNameEdit;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAiD;AACjD,kBAA0B;AAC1B,kBAA4B;AAC5B,uBAAmC;AACnC,wBAIO;AACP,mBAA+C;AAC/C,8CAAmC;AAiCjC;AA/BF,SAAS,mBAAoB,OAAQ;AACpC,8CAAAA,SAAwB,KAAM;AAC9B,QAAM;AAAA,IACL,YAAY,EAAE,QAAQ,WAAW;AAAA,IACjC;AAAA,IACA,SAAS,EAAE,UAAU,OAAO;AAAA,EAC7B,IAAI;AACJ,QAAM,EAAE,YAAY,eAAe,QAAI;AAAA,IACtC,CAAE,WAAY;AACb,YAAM,EAAE,uBAAuB,SAAS,YAAY,IACnD,OAAQ,iBAAAC,KAAU;AACnB,YAAM,YAAY;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,MACD,GAAG;AAEH,aAAO;AAAA,QACN,YAAY,YAAY,QAAS,SAAU,IAAI;AAAA,QAC/C,gBACC,YAAa,QAAS,GAAG,UAAU,UAAU;AAAA,MAC/C;AAAA,IACD;AAAA,IACA,CAAE,UAAU,MAAO;AAAA,EACpB;AAEA,QAAM,iBAAa,mCAAc;AAEjC,QAAM,cAAc,YAAY,YAAQ,gBAAI,aAAc;AAE1D,QAAM,gBAAgB,SACrB;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,SAAU,CAAE,UAAW,MAAM,eAAe;AAAA,MAC5C,WAAU;AAAA,MAER;AAAA;AAAA,EACH,IAEA;AAGD,QAAM,wBAAoB,6CAA+B;AAEzD,SACC,4EACC;AAAA,gDAAC,yCACA;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,WAAQ,gBAAI,UAAW;AAAA,QACvB,UAAW,MAAM;AAChB,wBAAe;AAAA,YACd,QAAQ;AAAA,YACR,YAAY;AAAA,UACb,CAAE;AAAA,QACH;AAAA,QACA;AAAA,QAEA;AAAA;AAAA,YAAC,kBAAAC;AAAA,YAAA;AAAA,cACA,WAAQ,gBAAI,wBAAyB;AAAA,cACrC,kBAAgB;AAAA,cAChB,UAAW,MAAM;AAAA,cACjB,YAAa,MAAM,cAAe,EAAE,QAAQ,MAAM,CAAE;AAAA,cAEpD;AAAA,gBAAC;AAAA;AAAA,kBACA,WAAQ,gBAAI,wBAAyB;AAAA,kBACrC,UAAW,MACV,cAAe,EAAE,QAAQ,CAAE,OAAO,CAAE;AAAA,kBAErC,SAAU;AAAA;AAAA,cACX;AAAA;AAAA,UACD;AAAA,UACE,UACD;AAAA,YAAC,kBAAAA;AAAA,YAAA;AAAA,cACA,WAAQ,gBAAI,iBAAkB;AAAA,cAC9B,kBAAgB;AAAA,cAChB,UAAW,MAAM,eAAe;AAAA,cAChC,YAAa,MACZ,cAAe,EAAE,YAAY,QAAQ,CAAE;AAAA,cAGxC;AAAA,gBAAC;AAAA;AAAA,kBACA,WAAQ,gBAAI,iBAAkB;AAAA,kBAC9B,UAAW,CAAE,UACZ,cAAe;AAAA,oBACd,YAAY,QAAQ,WAAW;AAAA,kBAChC,CAAE;AAAA,kBAEH,SAAU,eAAe;AAAA;AAAA,cAC1B;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IAEF,GACD;AAAA,IACA,4CAAC,SAAM,GAAG,YACP,WAAE,kBAAkB,aAAa,aAChC;AAAA;AAAA,UAEA;AAAA,QACC;AAAA,MACD;AAAA,MACA;AAAA,IACA,IACA,eACJ;AAAA,KACD;AAEF;AAEA,IAAO,eAAQ;",
4
+ "sourcesContent": ["import { useBlockProps, InspectorControls } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nfunction PostAuthorNameEdit( props ) {\n\tuseDeprecatedTextAlign( props );\n\tconst {\n\t\tattributes: { isLink, linkTarget },\n\t\tsetAttributes,\n\t\tcontext: { postType, postId },\n\t} = props;\n\tconst { authorName, supportsAuthor } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getPostType } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorName: _authorId ? getUser( _authorId ) : null,\n\t\t\t\tsupportsAuthor:\n\t\t\t\t\tgetPostType( postType )?.supports?.author ?? false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tconst displayName = authorName?.name || __( 'Author Name' );\n\n\tconst displayAuthor = isLink ? (\n\t\t<a\n\t\t\thref=\"#author-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\tclassName=\"wp-block-post-author-name__link\"\n\t\t>\n\t\t\t{ displayName }\n\t\t</a>\n\t) : (\n\t\tdisplayName\n\t);\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link to author archive' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => isLink }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Link to author archive' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\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\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\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</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ ! supportsAuthor && postType !== undefined\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'This post type (%s) does not support the author.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType\n\t\t\t\t\t\t)\n\t\t\t\t\t: displayAuthor }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorNameEdit;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAiD;AACjD,kBAA0B;AAC1B,kBAA4B;AAC5B,uBAAmC;AACnC,wBAIO;AACP,mBAA+C;AAC/C,8CAAmC;AAiCjC;AA/BF,SAAS,mBAAoB,OAAQ;AACpC,8CAAAA,SAAwB,KAAM;AAC9B,QAAM;AAAA,IACL,YAAY,EAAE,QAAQ,WAAW;AAAA,IACjC;AAAA,IACA,SAAS,EAAE,UAAU,OAAO;AAAA,EAC7B,IAAI;AACJ,QAAM,EAAE,YAAY,eAAe,QAAI;AAAA,IACtC,CAAE,WAAY;AACb,YAAM,EAAE,uBAAuB,SAAS,YAAY,IACnD,OAAQ,iBAAAC,KAAU;AACnB,YAAM,YAAY;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,MACD,GAAG;AAEH,aAAO;AAAA,QACN,YAAY,YAAY,QAAS,SAAU,IAAI;AAAA,QAC/C,gBACC,YAAa,QAAS,GAAG,UAAU,UAAU;AAAA,MAC/C;AAAA,IACD;AAAA,IACA,CAAE,UAAU,MAAO;AAAA,EACpB;AAEA,QAAM,iBAAa,mCAAc;AAEjC,QAAM,cAAc,YAAY,YAAQ,gBAAI,aAAc;AAE1D,QAAM,gBAAgB,SACrB;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,SAAU,CAAE,UAAW,MAAM,eAAe;AAAA,MAC5C,WAAU;AAAA,MAER;AAAA;AAAA,EACH,IAEA;AAGD,QAAM,wBAAoB,6CAA+B;AAEzD,SACC,4EACC;AAAA,gDAAC,yCACA;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,WAAQ,gBAAI,UAAW;AAAA,QACvB,UAAW,MAAM;AAChB,wBAAe;AAAA,YACd,QAAQ;AAAA,YACR,YAAY;AAAA,UACb,CAAE;AAAA,QACH;AAAA,QACA;AAAA,QAEA;AAAA;AAAA,YAAC,kBAAAC;AAAA,YAAA;AAAA,cACA,WAAQ,gBAAI,wBAAyB;AAAA,cACrC,kBAAgB;AAAA,cAChB,UAAW,MAAM;AAAA,cACjB,YAAa,MAAM,cAAe,EAAE,QAAQ,MAAM,CAAE;AAAA,cAEpD;AAAA,gBAAC;AAAA;AAAA,kBACA,WAAQ,gBAAI,wBAAyB;AAAA,kBACrC,UAAW,MACV,cAAe,EAAE,QAAQ,CAAE,OAAO,CAAE;AAAA,kBAErC,SAAU;AAAA;AAAA,cACX;AAAA;AAAA,UACD;AAAA,UACE,UACD;AAAA,YAAC,kBAAAA;AAAA,YAAA;AAAA,cACA,WAAQ,gBAAI,iBAAkB;AAAA,cAC9B,kBAAgB;AAAA,cAChB,UAAW,MAAM,eAAe;AAAA,cAChC,YAAa,MACZ,cAAe,EAAE,YAAY,QAAQ,CAAE;AAAA,cAGxC;AAAA,gBAAC;AAAA;AAAA,kBACA,WAAQ,gBAAI,iBAAkB;AAAA,kBAC9B,UAAW,CAAE,UACZ,cAAe;AAAA,oBACd,YAAY,QAAQ,WAAW;AAAA,kBAChC,CAAE;AAAA,kBAEH,SAAU,eAAe;AAAA;AAAA,cAC1B;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IAEF,GACD;AAAA,IACA,4CAAC,SAAM,GAAG,YACP,WAAE,kBAAkB,aAAa,aAChC;AAAA;AAAA,UAEA;AAAA,QACC;AAAA,MACD;AAAA,MACA;AAAA,IACD,IACC,eACJ;AAAA,KACD;AAEF;AAEA,IAAO,eAAQ;",
6
6
  "names": ["useDeprecatedTextAlign", "coreStore", "ToolsPanel", "ToolsPanelItem"]
7
7
  }
@@ -13,6 +13,9 @@
13
13
  "supports": {
14
14
  "anchor": true,
15
15
  "html": false,
16
+ "background": {
17
+ "gradient": true
18
+ },
16
19
  "color": {
17
20
  "gradients": true,
18
21
  "__experimentalDefaultControls": {
@@ -10,7 +10,17 @@
10
10
  "supports": {
11
11
  "anchor": true,
12
12
  "html": false,
13
+ "background": {
14
+ "backgroundImage": true,
15
+ "backgroundSize": true,
16
+ "gradient": true,
17
+ "__experimentalDefaultControls": {
18
+ "backgroundImage": true,
19
+ "gradient": true
20
+ }
21
+ },
13
22
  "color": {
23
+ "button": true,
14
24
  "gradients": true,
15
25
  "heading": true,
16
26
  "link": true,
@@ -32,6 +32,7 @@
32
32
  "dimensions": {
33
33
  "minHeight": true
34
34
  },
35
+ "shadow": true,
35
36
  "spacing": {
36
37
  "blockGap": true,
37
38
  "padding": true,
@@ -43,6 +44,7 @@
43
44
  },
44
45
  "color": {
45
46
  "gradients": true,
47
+ "button": true,
46
48
  "heading": true,
47
49
  "link": true,
48
50
  "__experimentalDefaultControls": {
@@ -53,6 +55,7 @@
53
55
  "typography": {
54
56
  "fontSize": true,
55
57
  "lineHeight": true,
58
+ "textAlign": true,
56
59
  "__experimentalFontFamily": true,
57
60
  "__experimentalFontWeight": true,
58
61
  "__experimentalFontStyle": true,
@@ -27,6 +27,9 @@
27
27
  "supports": {
28
28
  "anchor": true,
29
29
  "html": false,
30
+ "background": {
31
+ "gradient": true
32
+ },
30
33
  "color": {
31
34
  "gradients": true,
32
35
  "link": true,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/post-date/edit.jsx"],
4
- "sourcesContent": ["import { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { pencil } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nexport default function PostDateEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tcontext: { postType: postTypeSlug, queryId },\n\t\tsetAttributes,\n\t\tname,\n\t} = props;\n\tuseDeprecatedTextAlign( props );\n\tconst { datetime, format, isLink } = attributes;\n\tconst blockProps = useBlockProps();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// We need to set the datetime to a default value upon first loading\n\t// to discern the block from its legacy version (which would default\n\t// to the containing post's publish date).\n\tuseEffect( () => {\n\t\tif ( datetime === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { datetime: new Date() } );\n\t\t}\n\t}, [ datetime ] );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\n\tconst {\n\t\tpostType,\n\t\tsiteFormat = dateSettings.formats.date,\n\t\tsiteTimeFormat = dateSettings.formats.time,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\t\treturn {\n\t\t\t\tsiteFormat: siteSettings?.date_format,\n\t\t\t\tsiteTimeFormat: siteSettings?.time_format,\n\t\t\t\tpostType: postTypeSlug ? getPostType( postTypeSlug ) : null,\n\t\t\t};\n\t\t},\n\t\t[ postTypeSlug ]\n\t);\n\tconst activeBlockVariationName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation( name, attributes )\n\t\t\t\t?.name,\n\t\t[ name, attributes ]\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst validDatetime = datetime || new Date();\n\tlet postDate = (\n\t\t<time\n\t\t\tdateTime={ dateI18n( 'c', validDatetime ) }\n\t\t\tref={ setPopoverAnchor }\n\t\t>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( validDatetime )\n\t\t\t\t: dateI18n( format || siteFormat, validDatetime ) }\n\t\t</time>\n\t);\n\n\tif ( isLink && datetime ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ ( blockEditingMode === 'default' || ! isDescendentOfQueryLoop ) &&\n\t\t\t\tactiveBlockVariationName !== 'post-date-modified' &&\n\t\t\t\t( ! isDescendentOfQueryLoop || ! activeBlockVariationName ) && (\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\t\tactiveBlockVariationName ===\n\t\t\t\t\t\t\t\t\t\t\t'post-date'\n\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Publish Date' )\n\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Date' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcurrentDate={ datetime }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( newDatetime ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tdatetime: newDatetime,\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\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tdateOrder={\n\t\t\t\t\t\t\t\t\t\t\t/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'dmy', 'date order' )\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\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t! isOpen &&\n\t\t\t\t\t\t\t\t\t\t\tevent.keyCode === DOWN\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tonToggle();\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\treturn (\n\t\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\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/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t) }\n\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdatetime: undefined,\n\t\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! format }\n\t\t\t\t\t\tlabel={ __( 'Date Format' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { format: undefined } )\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<DateFormatPicker\n\t\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => isLink !== false }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels?.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels?.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { pencil } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nexport default function PostDateEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tcontext: { postType: postTypeSlug, queryId },\n\t\tsetAttributes,\n\t\tname,\n\t} = props;\n\tuseDeprecatedTextAlign( props );\n\tconst { datetime, format, isLink } = attributes;\n\tconst blockProps = useBlockProps();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// We need to set the datetime to a default value upon first loading\n\t// to discern the block from its legacy version (which would default\n\t// to the containing post's publish date).\n\tuseEffect( () => {\n\t\tif ( datetime === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { datetime: new Date() } );\n\t\t}\n\t}, [ datetime ] );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\n\tconst {\n\t\tpostType,\n\t\tsiteFormat = dateSettings.formats.date,\n\t\tsiteTimeFormat = dateSettings.formats.time,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\t\treturn {\n\t\t\t\tsiteFormat: siteSettings?.date_format,\n\t\t\t\tsiteTimeFormat: siteSettings?.time_format,\n\t\t\t\tpostType: postTypeSlug ? getPostType( postTypeSlug ) : null,\n\t\t\t};\n\t\t},\n\t\t[ postTypeSlug ]\n\t);\n\tconst activeBlockVariationName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation( name, attributes )\n\t\t\t\t?.name,\n\t\t[ name, attributes ]\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst validDatetime = datetime || new Date();\n\tlet postDate = (\n\t\t<time\n\t\t\tdateTime={ dateI18n( 'c', validDatetime ) }\n\t\t\tref={ setPopoverAnchor }\n\t\t>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( validDatetime )\n\t\t\t\t: dateI18n( format || siteFormat, validDatetime ) }\n\t\t</time>\n\t);\n\n\tif ( isLink && datetime ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ ( blockEditingMode === 'default' || ! isDescendentOfQueryLoop ) &&\n\t\t\t\tactiveBlockVariationName !== 'post-date-modified' &&\n\t\t\t\t( ! isDescendentOfQueryLoop || ! activeBlockVariationName ) && (\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\t\tactiveBlockVariationName ===\n\t\t\t\t\t\t\t\t\t\t\t'post-date'\n\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Publish Date' )\n\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Date' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcurrentDate={ datetime }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( newDatetime ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tdatetime: newDatetime,\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\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tdateOrder={\n\t\t\t\t\t\t\t\t\t\t\t/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'dmy', 'date order' )\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\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t! isOpen &&\n\t\t\t\t\t\t\t\t\t\t\tevent.keyCode === DOWN\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tonToggle();\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\treturn (\n\t\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\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/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t) }\n\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdatetime: undefined,\n\t\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! format }\n\t\t\t\t\t\tlabel={ __( 'Date Format' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { format: undefined } )\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<DateFormatPicker\n\t\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => isLink !== false }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels?.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels?.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["useDeprecatedTextAlign", "blockEditorStore", "getDateSettings", "coreStore", "blocksStore", "PublishDateTimePicker", "ToolsPanel", "ToolsPanelItem", "DateFormatPicker"]
7
7
  }
@@ -27,6 +27,11 @@
27
27
  "supports": {
28
28
  "anchor": true,
29
29
  "html": false,
30
+ "background": {
31
+ "backgroundImage": true,
32
+ "backgroundSize": true,
33
+ "gradient": true
34
+ },
30
35
  "color": {
31
36
  "gradients": true,
32
37
  "link": true,
@@ -36,6 +41,7 @@
36
41
  "link": true
37
42
  }
38
43
  },
44
+ "shadow": true,
39
45
  "spacing": {
40
46
  "margin": true,
41
47
  "padding": true
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/post-excerpt/edit.jsx"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tRichText,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tRangeControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseCanEditEntity,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nconst ELLIPSIS = '…';\n\nexport default function PostExcerptEditor( props ) {\n\tconst {\n\t\tattributes: { moreText, showMoreOnNewLine, excerptLength },\n\t\tsetAttributes,\n\t\tisSelected,\n\t\tcontext: { postId, postType, queryId },\n\t} = props;\n\tuseDeprecatedTextAlign( props );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t/**\n\t * Check if the post type supports excerpts.\n\t * Add an exception and return early for the \"page\" post type,\n\t * which is registered without support for the excerpt UI,\n\t * but supports saving the excerpt to the database.\n\t * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65\n\t * Without this exception, users that have excerpts saved to the database will\n\t * not be able to edit the excerpts.\n\t */\n\tconst postTypeSupportsExcerpts = useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn !! select( coreStore ).getPostType( postType )?.supports\n\t\t\t\t?.excerpt;\n\t\t},\n\t\t[ postType ]\n\t);\n\n\t/**\n\t * The excerpt is editable if:\n\t * - The user can edit the post\n\t * - It is not a descendent of a Query Loop block\n\t * - The post type supports excerpts\n\t */\n\tconst isEditable =\n\t\tuserCanEdit && ! isDescendentOfQueryLoop && postTypeSupportsExcerpts;\n\n\tconst blockProps = useBlockProps();\n\n\t/**\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\t/**\n\t * When excerpt is editable, strip the html tags from\n\t * rendered excerpt. This will be used if the entity's\n\t * excerpt has been produced from the content.\n\t */\n\tconst strippedRenderedExcerpt = useMemo( () => {\n\t\tif ( ! renderedExcerpt ) {\n\t\t\treturn '';\n\t\t}\n\t\tconst document = new window.DOMParser().parseFromString(\n\t\t\trenderedExcerpt,\n\t\t\t'text/html'\n\t\t);\n\t\treturn document.body.textContent || document.body.innerText || '';\n\t}, [ renderedExcerpt ] );\n\n\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<p>{ __( 'This block will display the excerpt.' ) }</p>\n\t\t\t</div>\n\t\t);\n\t}\n\tif ( isProtected && ! userCanEdit ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The content is currently protected and does not have the available excerpt.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst readMoreLink = (\n\t\t<RichText\n\t\t\tidentifier=\"moreText\"\n\t\t\tclassName=\"wp-block-post-excerpt__more-link\"\n\t\t\ttagName=\"a\"\n\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\tplaceholder={ __( 'Add \"read more\" link text' ) }\n\t\t\tvalue={ moreText }\n\t\t\tonChange={ ( newMoreText ) =>\n\t\t\t\tsetAttributes( { moreText: newMoreText } )\n\t\t\t}\n\t\t\twithoutInteractiveFormatting\n\t\t/>\n\t);\n\tconst excerptClassName = clsx( 'wp-block-post-excerpt__excerpt', {\n\t\t'is-inline': ! showMoreOnNewLine,\n\t} );\n\n\t/**\n\t * The excerpt length setting needs to be applied to both\n\t * the raw and the rendered excerpt depending on which is being used.\n\t */\n\tconst rawOrRenderedExcerpt = (\n\t\trawExcerpt || strippedRenderedExcerpt\n\t).trim();\n\n\tlet trimmedExcerpt = '';\n\tif ( wordCountType === 'words' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( /\\s+/, excerptLength )\n\t\t\t.join( ' ' );\n\t} else if ( wordCountType === 'characters_excluding_spaces' ) {\n\t\t/*\n\t\t * 1. Split the excerpt at the character limit,\n\t\t * then join the substrings back into one string.\n\t\t * 2. Count the number of spaces in the excerpt\n\t\t * by comparing the lengths of the string with and without spaces.\n\t\t * 3. Add the number to the length of the visible excerpt,\n\t\t * so that the spaces are excluded from the word count.\n\t\t */\n\t\tconst excerptWithSpaces = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\n\t\tconst numberOfSpaces =\n\t\t\texcerptWithSpaces.length -\n\t\t\texcerptWithSpaces.replaceAll( ' ', '' ).length;\n\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength + numberOfSpaces )\n\t\t\t.join( '' );\n\t} else if ( wordCountType === 'characters_including_spaces' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\t}\n\n\tconst isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;\n\n\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\tisSelected\n\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t: ( ! isTrimmed\n\t\t\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t\t\t: trimmedExcerpt + ELLIPSIS ) ||\n\t\t\t\t\t __( 'No excerpt found' )\n\t\t\t}\n\t\t\tonChange={ setExcerpt }\n\t\t\ttagName=\"p\"\n\t\t\tallowedFormats={ [] }\n\t\t\tpreserveWhiteSpace\n\t\t/>\n\t) : (\n\t\t<p className={ excerptClassName }>\n\t\t\t{ ! isTrimmed\n\t\t\t\t? rawOrRenderedExcerpt || __( 'No excerpt found' )\n\t\t\t\t: trimmedExcerpt + ELLIPSIS }\n\t\t</p>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tshowMoreOnNewLine: true,\n\t\t\t\t\t\t\texcerptLength: 55,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => showMoreOnNewLine !== true }\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showMoreOnNewLine: true } )\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<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\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\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => excerptLength !== 55 }\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: 55 } )\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<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ excerptContent }\n\t\t\t\t{ ! showMoreOnNewLine && ' ' }\n\t\t\t\t{ showMoreOnNewLine ? (\n\t\t\t\t\t<p className=\"wp-block-post-excerpt__more-text\">\n\t\t\t\t\t\t{ readMoreLink }\n\t\t\t\t\t</p>\n\t\t\t\t) : (\n\t\t\t\t\treadMoreLink\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tRichText,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tRangeControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseCanEditEntity,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nconst ELLIPSIS = '…';\n\nexport default function PostExcerptEditor( props ) {\n\tconst {\n\t\tattributes: { moreText, showMoreOnNewLine, excerptLength },\n\t\tsetAttributes,\n\t\tisSelected,\n\t\tcontext: { postId, postType, queryId },\n\t} = props;\n\tuseDeprecatedTextAlign( props );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t/**\n\t * Check if the post type supports excerpts.\n\t * Add an exception and return early for the \"page\" post type,\n\t * which is registered without support for the excerpt UI,\n\t * but supports saving the excerpt to the database.\n\t * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65\n\t * Without this exception, users that have excerpts saved to the database will\n\t * not be able to edit the excerpts.\n\t */\n\tconst postTypeSupportsExcerpts = useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn !! select( coreStore ).getPostType( postType )?.supports\n\t\t\t\t?.excerpt;\n\t\t},\n\t\t[ postType ]\n\t);\n\n\t/**\n\t * The excerpt is editable if:\n\t * - The user can edit the post\n\t * - It is not a descendent of a Query Loop block\n\t * - The post type supports excerpts\n\t */\n\tconst isEditable =\n\t\tuserCanEdit && ! isDescendentOfQueryLoop && postTypeSupportsExcerpts;\n\n\tconst blockProps = useBlockProps();\n\n\t/**\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\t/**\n\t * When excerpt is editable, strip the html tags from\n\t * rendered excerpt. This will be used if the entity's\n\t * excerpt has been produced from the content.\n\t */\n\tconst strippedRenderedExcerpt = useMemo( () => {\n\t\tif ( ! renderedExcerpt ) {\n\t\t\treturn '';\n\t\t}\n\t\tconst document = new window.DOMParser().parseFromString(\n\t\t\trenderedExcerpt,\n\t\t\t'text/html'\n\t\t);\n\t\treturn document.body.textContent || document.body.innerText || '';\n\t}, [ renderedExcerpt ] );\n\n\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<p>{ __( 'This block will display the excerpt.' ) }</p>\n\t\t\t</div>\n\t\t);\n\t}\n\tif ( isProtected && ! userCanEdit ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The content is currently protected and does not have the available excerpt.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst readMoreLink = (\n\t\t<RichText\n\t\t\tidentifier=\"moreText\"\n\t\t\tclassName=\"wp-block-post-excerpt__more-link\"\n\t\t\ttagName=\"a\"\n\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\tplaceholder={ __( 'Add \"read more\" link text' ) }\n\t\t\tvalue={ moreText }\n\t\t\tonChange={ ( newMoreText ) =>\n\t\t\t\tsetAttributes( { moreText: newMoreText } )\n\t\t\t}\n\t\t\twithoutInteractiveFormatting\n\t\t/>\n\t);\n\tconst excerptClassName = clsx( 'wp-block-post-excerpt__excerpt', {\n\t\t'is-inline': ! showMoreOnNewLine,\n\t} );\n\n\t/**\n\t * The excerpt length setting needs to be applied to both\n\t * the raw and the rendered excerpt depending on which is being used.\n\t */\n\tconst rawOrRenderedExcerpt = (\n\t\trawExcerpt || strippedRenderedExcerpt\n\t).trim();\n\n\tlet trimmedExcerpt = '';\n\tif ( wordCountType === 'words' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( /\\s+/, excerptLength )\n\t\t\t.join( ' ' );\n\t} else if ( wordCountType === 'characters_excluding_spaces' ) {\n\t\t/*\n\t\t * 1. Split the excerpt at the character limit,\n\t\t * then join the substrings back into one string.\n\t\t * 2. Count the number of spaces in the excerpt\n\t\t * by comparing the lengths of the string with and without spaces.\n\t\t * 3. Add the number to the length of the visible excerpt,\n\t\t * so that the spaces are excluded from the word count.\n\t\t */\n\t\tconst excerptWithSpaces = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\n\t\tconst numberOfSpaces =\n\t\t\texcerptWithSpaces.length -\n\t\t\texcerptWithSpaces.replaceAll( ' ', '' ).length;\n\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength + numberOfSpaces )\n\t\t\t.join( '' );\n\t} else if ( wordCountType === 'characters_including_spaces' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\t}\n\n\tconst isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;\n\n\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\tisSelected\n\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t: ( ! isTrimmed\n\t\t\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t\t\t: trimmedExcerpt + ELLIPSIS ) ||\n\t\t\t\t\t\t__( 'No excerpt found' )\n\t\t\t}\n\t\t\tonChange={ setExcerpt }\n\t\t\ttagName=\"p\"\n\t\t\tallowedFormats={ [] }\n\t\t\tpreserveWhiteSpace\n\t\t/>\n\t) : (\n\t\t<p className={ excerptClassName }>\n\t\t\t{ ! isTrimmed\n\t\t\t\t? rawOrRenderedExcerpt || __( 'No excerpt found' )\n\t\t\t\t: trimmedExcerpt + ELLIPSIS }\n\t\t</p>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tshowMoreOnNewLine: true,\n\t\t\t\t\t\t\texcerptLength: 55,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => showMoreOnNewLine !== true }\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showMoreOnNewLine: true } )\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<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\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\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => excerptLength !== 55 }\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: 55 } )\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<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ excerptContent }\n\t\t\t\t{ ! showMoreOnNewLine && ' ' }\n\t\t\t\t{ showMoreOnNewLine ? (\n\t\t\t\t\t<p className=\"wp-block-post-excerpt__more-text\">\n\t\t\t\t\t\t{ readMoreLink }\n\t\t\t\t\t</p>\n\t\t\t\t) : (\n\t\t\t\t\treadMoreLink\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["useDeprecatedTextAlign", "coreStore", "clsx", "ToolsPanel", "ToolsPanelItem"]
7
7
  }
@@ -51,9 +51,7 @@ var import_lock_unlock = require("../lock-unlock.cjs");
51
51
  var import_style_state = require("../utils/style-state.cjs");
52
52
  var import_jsx_runtime = require("react/jsx-runtime");
53
53
  var ALLOWED_MEDIA_TYPES = ["image"];
54
- var { isDefaultBlockStyleState, ResolutionTool } = (0, import_lock_unlock.unlock)(
55
- import_block_editor.privateApis
56
- );
54
+ var { ResolutionTool } = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
57
55
  var hasDimensionValue = (value) => value !== void 0 && value !== null && value !== "";
58
56
  var DEFAULT_MEDIA_SIZE_SLUG = "full";
59
57
  function FeaturedImageResolutionTool({ image, value, onChange }) {
@@ -123,12 +121,16 @@ function PostFeaturedImageEdit({
123
121
  const imageId = imageOpener?.groups?.attrs && JSON.parse(imageOpener.groups.attrs)?.id;
124
122
  return imageId;
125
123
  }, [storedFeaturedImage, useFirstImageFromPost, postContent]);
126
- const { media, postType, postPermalink, selectedStyleState } = (0, import_data.useSelect)(
124
+ const {
125
+ media,
126
+ postType,
127
+ postPermalink,
128
+ selectedStyleState,
129
+ hasSelectedStyleState
130
+ } = (0, import_data.useSelect)(
127
131
  (select) => {
128
132
  const { getEntityRecord, getPostType, getEditedEntityRecord } = select(import_core_data.store);
129
- const { getSelectedBlockStyleState } = (0, import_lock_unlock.unlock)(
130
- select(import_block_editor.store)
131
- );
133
+ const { getSelectedBlockStyleState, hasSelectedBlockStyleState } = select(import_block_editor.store);
132
134
  return {
133
135
  media: featuredImage && getEntityRecord("postType", "attachment", featuredImage, {
134
136
  context: "view"
@@ -139,12 +141,12 @@ function PostFeaturedImageEdit({
139
141
  postTypeSlug,
140
142
  postId
141
143
  )?.link,
142
- selectedStyleState: getSelectedBlockStyleState(clientId)
144
+ selectedStyleState: getSelectedBlockStyleState(clientId),
145
+ hasSelectedStyleState: hasSelectedBlockStyleState(clientId)
143
146
  };
144
147
  },
145
148
  [clientId, featuredImage, postTypeSlug, postId]
146
149
  );
147
- const hasSelectedStyleState = !isDefaultBlockStyleState(selectedStyleState);
148
150
  const mediaUrl = media?.media_details?.sizes?.[sizeSlug]?.source_url || media?.source_url;
149
151
  const blockProps = (0, import_block_editor.useBlockProps)({
150
152
  className: (0, import_clsx.default)({
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/post-featured-image/edit.jsx"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tToggleControl,\n\tPlaceholder,\n\tButton,\n\tSpinner,\n\tTextControl,\n\tExternalLink,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tuseMemo,\n\tuseEffect,\n\tuseState,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport DimensionControls from './dimension-controls';\nimport OverlayControls from './overlay-controls';\nimport Overlay from './overlay';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\nimport { getDimensionResetAttributes } from '../utils/style-state';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst { isDefaultBlockStyleState, ResolutionTool } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst hasDimensionValue = ( value ) =>\n\tvalue !== undefined && value !== null && value !== '';\nconst DEFAULT_MEDIA_SIZE_SLUG = 'full';\n\nfunction FeaturedImageResolutionTool( { image, value, onChange } ) {\n\tconst { imageSizes } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\timageSizes: getSettings().imageSizes,\n\t\t};\n\t}, [] );\n\n\tif ( ! imageSizes?.length ) {\n\t\treturn null;\n\t}\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\treturn (\n\t\t<ResolutionTool\n\t\t\tvalue={ value }\n\t\t\tdefaultValue={ DEFAULT_MEDIA_SIZE_SLUG }\n\t\t\toptions={ imageSizeOptions }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nexport default function PostFeaturedImageEdit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType: postTypeSlug, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst {\n\t\tisLink,\n\t\taspectRatio,\n\t\theight,\n\t\twidth,\n\t\tscale,\n\t\tsizeSlug,\n\t\trel,\n\t\tlinkTarget,\n\t\tuseFirstImageFromPost,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst [ storedFeaturedImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\t// Fallback to post content if no featured image is set.\n\t// This is needed for the \"Use first image from post\" option.\n\tconst [ postContent ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst featuredImage = useMemo( () => {\n\t\tif ( storedFeaturedImage ) {\n\t\t\treturn storedFeaturedImage;\n\t\t}\n\n\t\tif ( ! useFirstImageFromPost ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageOpener =\n\t\t\t/<!--\\s+wp:(?:core\\/)?image\\s+(?<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\\s+\\/?-->).)*)?}\\s+)?-->/.exec(\n\t\t\t\tpostContent\n\t\t\t);\n\t\tconst imageId =\n\t\t\timageOpener?.groups?.attrs &&\n\t\t\tJSON.parse( imageOpener.groups.attrs )?.id;\n\t\treturn imageId;\n\t}, [ storedFeaturedImage, useFirstImageFromPost, postContent ] );\n\n\tconst { media, postType, postPermalink, selectedStyleState } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getPostType, getEditedEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getSelectedBlockStyleState } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tmedia:\n\t\t\t\t\tfeaturedImage &&\n\t\t\t\t\tgetEntityRecord( 'postType', 'attachment', featuredImage, {\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} ),\n\t\t\t\tpostType: postTypeSlug && getPostType( postTypeSlug ),\n\t\t\t\tpostPermalink: getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\tpostId\n\t\t\t\t)?.link,\n\t\t\t\tselectedStyleState: getSelectedBlockStyleState( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, featuredImage, postTypeSlug, postId ]\n\t);\n\tconst hasSelectedStyleState =\n\t\t! isDefaultBlockStyleState( selectedStyleState );\n\n\tconst mediaUrl =\n\t\tmedia?.media_details?.sizes?.[ sizeSlug ]?.source_url ||\n\t\tmedia?.source_url;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t'is-transient': temporaryURL,\n\t\t} ),\n\t} );\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst aspectRatioStyle = aspectRatio === 'auto' ? undefined : aspectRatio;\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-media-placeholder',\n\t\t\t\t\tborderProps.className\n\t\t\t\t) }\n\t\t\t\twithIllustration\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio: aspectRatioStyle,\n\t\t\t\t\theight: hasDimensionValue( height )\n\t\t\t\t\t\t? height\n\t\t\t\t\t\t: hasDimensionValue( width ) && 'auto',\n\t\t\t\t\twidth: hasDimensionValue( width )\n\t\t\t\t\t\t? width\n\t\t\t\t\t\t: !! aspectRatio && '100%',\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\n\t\tif ( value?.url && isBlobURL( value.url ) ) {\n\t\t\tsetTemporaryURL( value.url );\n\t\t}\n\t};\n\n\t// On reset image\n\tconst onResetImage = () => {\n\t\tsetAttributes( {\n\t\t\tisLink: false,\n\t\t\tlinkTarget: '_self',\n\t\t\trel: '',\n\t\t\tsizeSlug: undefined,\n\t\t} );\n\t\tsetFeaturedImage( 0 );\n\t};\n\n\t// Reset temporary url when media is available.\n\tuseEffect( () => {\n\t\tif ( mediaUrl && temporaryURL ) {\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}, [ mediaUrl, temporaryURL ] );\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetTemporaryURL();\n\t};\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst controls = blockEditingMode === 'default' && (\n\t\t<>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t<OverlayControls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tresetAllFilter={ ( attrs ) => {\n\t\t\t\t\treturn getDimensionResetAttributes( {\n\t\t\t\t\t\tattributes: attrs,\n\t\t\t\t\t\tselectedState: selectedStyleState,\n\t\t\t\t\t\thasSelectedStyleState,\n\t\t\t\t\t\tkeys: [ 'aspectRatio', 'height', 'objectFit', 'width' ],\n\t\t\t\t\t\tdefaultAttributes: {\n\t\t\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\t\tscale: undefined,\n\t\t\t\t\t\t\twidth: undefined,\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\t<DimensionControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tmedia={ media }\n\t\t\t\t\tselectedStyleState={ selectedStyleState }\n\t\t\t\t\thasSelectedStyleState={ hasSelectedStyleState }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ ( featuredImage || isDescendentOfQueryLoop || ! postId ) && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t\t\trel: '',\n\t\t\t\t\t\t\t\tsizeSlug: DEFAULT_MEDIA_SIZE_SLUG,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels?.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! isLink }\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\tisLink: 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>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Make image a link' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => '_self' !== linkTarget }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: '_self',\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<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tlinkTarget: value\n\t\t\t\t\t\t\t\t\t\t\t\t? '_blank'\n\t\t\t\t\t\t\t\t\t\t\t\t: '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => !! rel }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\trel: '',\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<TextControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'\n\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\ta: (\n\t\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://developer.mozilla.org/docs/Web/HTML/Attributes/rel\" />\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\tvalue={ rel }\n\t\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\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</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ !! media && (\n\t\t\t\t\t\t\t<FeaturedImageResolutionTool\n\t\t\t\t\t\t\t\timage={ media }\n\t\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\t\tonChange={ ( nextSizeSlug ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { sizeSlug: nextSizeSlug } )\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</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n\n\tlet image;\n\n\t/**\n\t * A Post Featured Image block should not have image replacement\n\t * or upload options in the following cases:\n\t * - Is placed in a Query Loop. This is a conscious decision to\n\t * prevent content editing of different posts in Query Loop, and\n\t * this could change in the future.\n\t * - Is in a context where it does not have a postId (for example\n\t * in a template or template part).\n\t */\n\tif ( ! featuredImage && ( isDescendentOfQueryLoop || ! postId ) ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t\t<a href={ postPermalink } target={ linkTarget }>\n\t\t\t\t\t\t\t{ placeholder() }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tplaceholder()\n\t\t\t\t\t) }\n\t\t\t\t\t<Overlay\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\tconst imageStyles = {\n\t\t...borderProps.style,\n\t\t...shadowProps.style,\n\t\taspectRatio: aspectRatioStyle,\n\t\theight: hasDimensionValue( height )\n\t\t\t? height\n\t\t\t: hasDimensionValue( width ) && 'auto',\n\t\twidth: hasDimensionValue( width ) ? width : !! aspectRatio && '100%',\n\t\tobjectFit: !! ( height || aspectRatio ) && scale,\n\t};\n\n\t/**\n\t * When the post featured image block is placed in a context where:\n\t * - It has a postId (for example in a single post)\n\t * - It is not inside a query loop\n\t * - It has no image assigned yet\n\t * Then display the placeholder with the image upload option.\n\t */\n\tif ( ! featuredImage && ! temporaryURL ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\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);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage =\n\t\t\t! media && ! temporaryURL ? (\n\t\t\t\tplaceholder()\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName={ borderProps.className }\n\t\t\t\t\t\tsrc={ temporaryURL || mediaUrl }\n\t\t\t\t\t\talt={\n\t\t\t\t\t\t\tmedia && media?.alt_text\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: The image's alt text.\n\t\t\t\t\t\t\t\t\t\t__( 'Featured image: %s' ),\n\t\t\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Featured image' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle={ imageStyles }\n\t\t\t\t\t/>\n\t\t\t\t\t{ temporaryURL && <Spinner /> }\n\t\t\t\t</>\n\t\t\t);\n\t}\n\n\t/**\n\t * When the post featured image block:\n\t * - Has an image assigned\n\t * - Is not inside a query loop\n\t * Then display the image and the image replacement option.\n\t */\n\treturn (\n\t\t<>\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\tonReset={ onResetImage }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /* If the featured image is linked, wrap in an <a /> tag to trigger any inherited link element styles */ }\n\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t<a href={ postPermalink } target={ linkTarget }>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t<Overlay\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tToggleControl,\n\tPlaceholder,\n\tButton,\n\tSpinner,\n\tTextControl,\n\tExternalLink,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tuseMemo,\n\tuseEffect,\n\tuseState,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport DimensionControls from './dimension-controls';\nimport OverlayControls from './overlay-controls';\nimport Overlay from './overlay';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\nimport { getDimensionResetAttributes } from '../utils/style-state';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst { ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst hasDimensionValue = ( value ) =>\n\tvalue !== undefined && value !== null && value !== '';\nconst DEFAULT_MEDIA_SIZE_SLUG = 'full';\n\nfunction FeaturedImageResolutionTool( { image, value, onChange } ) {\n\tconst { imageSizes } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\timageSizes: getSettings().imageSizes,\n\t\t};\n\t}, [] );\n\n\tif ( ! imageSizes?.length ) {\n\t\treturn null;\n\t}\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\treturn (\n\t\t<ResolutionTool\n\t\t\tvalue={ value }\n\t\t\tdefaultValue={ DEFAULT_MEDIA_SIZE_SLUG }\n\t\t\toptions={ imageSizeOptions }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nexport default function PostFeaturedImageEdit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType: postTypeSlug, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst {\n\t\tisLink,\n\t\taspectRatio,\n\t\theight,\n\t\twidth,\n\t\tscale,\n\t\tsizeSlug,\n\t\trel,\n\t\tlinkTarget,\n\t\tuseFirstImageFromPost,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst [ storedFeaturedImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\t// Fallback to post content if no featured image is set.\n\t// This is needed for the \"Use first image from post\" option.\n\tconst [ postContent ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst featuredImage = useMemo( () => {\n\t\tif ( storedFeaturedImage ) {\n\t\t\treturn storedFeaturedImage;\n\t\t}\n\n\t\tif ( ! useFirstImageFromPost ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageOpener =\n\t\t\t/<!--\\s+wp:(?:core\\/)?image\\s+(?<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\\s+\\/?-->).)*)?}\\s+)?-->/.exec(\n\t\t\t\tpostContent\n\t\t\t);\n\t\tconst imageId =\n\t\t\timageOpener?.groups?.attrs &&\n\t\t\tJSON.parse( imageOpener.groups.attrs )?.id;\n\t\treturn imageId;\n\t}, [ storedFeaturedImage, useFirstImageFromPost, postContent ] );\n\n\tconst {\n\t\tmedia,\n\t\tpostType,\n\t\tpostPermalink,\n\t\tselectedStyleState,\n\t\thasSelectedStyleState,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getPostType, getEditedEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getSelectedBlockStyleState, hasSelectedBlockStyleState } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tmedia:\n\t\t\t\t\tfeaturedImage &&\n\t\t\t\t\tgetEntityRecord( 'postType', 'attachment', featuredImage, {\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} ),\n\t\t\t\tpostType: postTypeSlug && getPostType( postTypeSlug ),\n\t\t\t\tpostPermalink: getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\tpostId\n\t\t\t\t)?.link,\n\t\t\t\tselectedStyleState: getSelectedBlockStyleState( clientId ),\n\t\t\t\thasSelectedStyleState: hasSelectedBlockStyleState( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, featuredImage, postTypeSlug, postId ]\n\t);\n\n\tconst mediaUrl =\n\t\tmedia?.media_details?.sizes?.[ sizeSlug ]?.source_url ||\n\t\tmedia?.source_url;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t'is-transient': temporaryURL,\n\t\t} ),\n\t} );\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst aspectRatioStyle = aspectRatio === 'auto' ? undefined : aspectRatio;\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-media-placeholder',\n\t\t\t\t\tborderProps.className\n\t\t\t\t) }\n\t\t\t\twithIllustration\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio: aspectRatioStyle,\n\t\t\t\t\theight: hasDimensionValue( height )\n\t\t\t\t\t\t? height\n\t\t\t\t\t\t: hasDimensionValue( width ) && 'auto',\n\t\t\t\t\twidth: hasDimensionValue( width )\n\t\t\t\t\t\t? width\n\t\t\t\t\t\t: !! aspectRatio && '100%',\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\n\t\tif ( value?.url && isBlobURL( value.url ) ) {\n\t\t\tsetTemporaryURL( value.url );\n\t\t}\n\t};\n\n\t// On reset image\n\tconst onResetImage = () => {\n\t\tsetAttributes( {\n\t\t\tisLink: false,\n\t\t\tlinkTarget: '_self',\n\t\t\trel: '',\n\t\t\tsizeSlug: undefined,\n\t\t} );\n\t\tsetFeaturedImage( 0 );\n\t};\n\n\t// Reset temporary url when media is available.\n\tuseEffect( () => {\n\t\tif ( mediaUrl && temporaryURL ) {\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}, [ mediaUrl, temporaryURL ] );\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetTemporaryURL();\n\t};\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst controls = blockEditingMode === 'default' && (\n\t\t<>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t<OverlayControls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tresetAllFilter={ ( attrs ) => {\n\t\t\t\t\treturn getDimensionResetAttributes( {\n\t\t\t\t\t\tattributes: attrs,\n\t\t\t\t\t\tselectedState: selectedStyleState,\n\t\t\t\t\t\thasSelectedStyleState,\n\t\t\t\t\t\tkeys: [ 'aspectRatio', 'height', 'objectFit', 'width' ],\n\t\t\t\t\t\tdefaultAttributes: {\n\t\t\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\t\tscale: undefined,\n\t\t\t\t\t\t\twidth: undefined,\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\t<DimensionControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tmedia={ media }\n\t\t\t\t\tselectedStyleState={ selectedStyleState }\n\t\t\t\t\thasSelectedStyleState={ hasSelectedStyleState }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ ( featuredImage || isDescendentOfQueryLoop || ! postId ) && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t\t\trel: '',\n\t\t\t\t\t\t\t\tsizeSlug: DEFAULT_MEDIA_SIZE_SLUG,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels?.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! isLink }\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\tisLink: 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>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Make image a link' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => '_self' !== linkTarget }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: '_self',\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<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tlinkTarget: value\n\t\t\t\t\t\t\t\t\t\t\t\t? '_blank'\n\t\t\t\t\t\t\t\t\t\t\t\t: '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => !! rel }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\trel: '',\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<TextControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'\n\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\ta: (\n\t\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://developer.mozilla.org/docs/Web/HTML/Attributes/rel\" />\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\tvalue={ rel }\n\t\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\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</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ !! media && (\n\t\t\t\t\t\t\t<FeaturedImageResolutionTool\n\t\t\t\t\t\t\t\timage={ media }\n\t\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\t\tonChange={ ( nextSizeSlug ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { sizeSlug: nextSizeSlug } )\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</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n\n\tlet image;\n\n\t/**\n\t * A Post Featured Image block should not have image replacement\n\t * or upload options in the following cases:\n\t * - Is placed in a Query Loop. This is a conscious decision to\n\t * prevent content editing of different posts in Query Loop, and\n\t * this could change in the future.\n\t * - Is in a context where it does not have a postId (for example\n\t * in a template or template part).\n\t */\n\tif ( ! featuredImage && ( isDescendentOfQueryLoop || ! postId ) ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t\t<a href={ postPermalink } target={ linkTarget }>\n\t\t\t\t\t\t\t{ placeholder() }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tplaceholder()\n\t\t\t\t\t) }\n\t\t\t\t\t<Overlay\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\tconst imageStyles = {\n\t\t...borderProps.style,\n\t\t...shadowProps.style,\n\t\taspectRatio: aspectRatioStyle,\n\t\theight: hasDimensionValue( height )\n\t\t\t? height\n\t\t\t: hasDimensionValue( width ) && 'auto',\n\t\twidth: hasDimensionValue( width ) ? width : !! aspectRatio && '100%',\n\t\tobjectFit: !! ( height || aspectRatio ) && scale,\n\t};\n\n\t/**\n\t * When the post featured image block is placed in a context where:\n\t * - It has a postId (for example in a single post)\n\t * - It is not inside a query loop\n\t * - It has no image assigned yet\n\t * Then display the placeholder with the image upload option.\n\t */\n\tif ( ! featuredImage && ! temporaryURL ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\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);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage =\n\t\t\t! media && ! temporaryURL ? (\n\t\t\t\tplaceholder()\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName={ borderProps.className }\n\t\t\t\t\t\tsrc={ temporaryURL || mediaUrl }\n\t\t\t\t\t\talt={\n\t\t\t\t\t\t\tmedia && media?.alt_text\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: The image's alt text.\n\t\t\t\t\t\t\t\t\t\t__( 'Featured image: %s' ),\n\t\t\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: __( 'Featured image' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle={ imageStyles }\n\t\t\t\t\t/>\n\t\t\t\t\t{ temporaryURL && <Spinner /> }\n\t\t\t\t</>\n\t\t\t);\n\t}\n\n\t/**\n\t * When the post featured image block:\n\t * - Has an image assigned\n\t * - Is not inside a query loop\n\t * Then display the image and the image replacement option.\n\t */\n\treturn (\n\t\t<>\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\tonReset={ onResetImage }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /* If the featured image is linked, wrap in an <a /> tag to trigger any inherited link element styles */ }\n\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t<a href={ postPermalink } target={ linkTarget }>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t<Overlay\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["blockEditorPrivateApis", "blockEditorStore", "coreStore", "clsx", "useBorderProps", "getShadowClassesAndStyles", "noticesStore", "OverlayControls", "DimensionControls", "ToolsPanel", "ToolsPanelItem", "Overlay"]
7
7
  }
@@ -55,9 +55,39 @@
55
55
  "fontSize": true
56
56
  }
57
57
  },
58
+ "shadow": {
59
+ "__experimentalSkipSerialization": true
60
+ },
58
61
  "interactivity": {
59
62
  "clientNavigation": true
63
+ },
64
+ "spacing": {
65
+ "__experimentalSkipSerialization": true,
66
+ "margin": true,
67
+ "padding": true,
68
+ "__experimentalDefaultControls": {
69
+ "margin": false,
70
+ "padding": false
71
+ }
72
+ },
73
+ "__experimentalBorder": {
74
+ "__experimentalSkipSerialization": true,
75
+ "color": true,
76
+ "radius": true,
77
+ "style": true,
78
+ "width": true,
79
+ "__experimentalDefaultControls": {
80
+ "color": false,
81
+ "radius": false,
82
+ "style": false,
83
+ "width": false
84
+ }
60
85
  }
61
86
  },
87
+ "selectors": {
88
+ "border": ".wp-block-post-navigation-link:not(:empty)",
89
+ "shadow": ".wp-block-post-navigation-link:not(:empty)",
90
+ "spacing": ".wp-block-post-navigation-link:not(:empty)"
91
+ },
62
92
  "style": "wp-block-post-navigation-link"
63
93
  }