@wordpress/block-library 9.48.1 → 10.0.1-next.v.202606191442.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 (480) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/build/breadcrumbs/edit.cjs +1 -1
  3. package/build/breadcrumbs/edit.cjs.map +1 -1
  4. package/build/button/edit.cjs +1 -1
  5. package/build/button/edit.cjs.map +2 -2
  6. package/build/categories/edit.cjs +1 -1
  7. package/build/categories/edit.cjs.map +1 -1
  8. package/build/code/edit.cjs +1 -1
  9. package/build/code/edit.cjs.map +2 -2
  10. package/build/code/index.cjs +1 -1
  11. package/build/code/index.cjs.map +1 -1
  12. package/build/columns/utils.cjs.map +1 -1
  13. package/build/comments/edit/comments-legacy.cjs +1 -1
  14. package/build/comments/edit/comments-legacy.cjs.map +1 -1
  15. package/build/comments/edit/placeholder.cjs +4 -4
  16. package/build/comments/edit/placeholder.cjs.map +1 -1
  17. package/build/comments-pagination-next/edit.cjs +2 -2
  18. package/build/comments-pagination-next/edit.cjs.map +1 -1
  19. package/build/comments-pagination-previous/edit.cjs +2 -2
  20. package/build/comments-pagination-previous/edit.cjs.map +1 -1
  21. package/build/cover/deprecated.cjs +3 -3
  22. package/build/cover/deprecated.cjs.map +2 -2
  23. package/build/cover/edit/block-controls.cjs +13 -0
  24. package/build/cover/edit/block-controls.cjs.map +2 -2
  25. package/build/cover/edit/index.cjs +61 -2
  26. package/build/cover/edit/index.cjs.map +3 -3
  27. package/build/cover/edit/inspector-controls.cjs +93 -35
  28. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  29. package/build/details/edit.cjs +1 -1
  30. package/build/details/edit.cjs.map +2 -2
  31. package/build/embed/embed-placeholder.cjs +1 -1
  32. package/build/embed/embed-placeholder.cjs.map +2 -2
  33. package/build/file/edit.cjs +3 -11
  34. package/build/file/edit.cjs.map +2 -2
  35. package/build/file/index.cjs +3 -1
  36. package/build/file/index.cjs.map +3 -3
  37. package/build/file/transforms.cjs +11 -32
  38. package/build/file/transforms.cjs.map +2 -2
  39. package/build/file/variations.cjs +38 -0
  40. package/build/file/variations.cjs.map +7 -0
  41. package/build/footnotes/edit.cjs +1 -1
  42. package/build/footnotes/edit.cjs.map +2 -2
  43. package/build/form-input/edit.cjs +1 -1
  44. package/build/form-input/edit.cjs.map +2 -2
  45. package/build/freeform/edit.cjs +1 -1
  46. package/build/freeform/edit.cjs.map +1 -1
  47. package/build/gallery/edit.cjs +2 -2
  48. package/build/gallery/edit.cjs.map +2 -2
  49. package/build/home-link/edit.cjs +1 -1
  50. package/build/home-link/edit.cjs.map +2 -2
  51. package/build/html/index.cjs +1 -1
  52. package/build/html/index.cjs.map +2 -2
  53. package/build/html/modal.cjs +3 -3
  54. package/build/html/modal.cjs.map +2 -2
  55. package/build/icon/block.json +12 -0
  56. package/build/icon/edit.cjs +90 -39
  57. package/build/icon/edit.cjs.map +3 -3
  58. package/build/icon/index.cjs +3 -1
  59. package/build/icon/index.cjs.map +3 -3
  60. package/build/{tab/save.cjs → icon/variations.cjs} +14 -15
  61. package/build/icon/variations.cjs.map +7 -0
  62. package/build/image/block.json +1 -0
  63. package/build/image/edit.cjs +4 -3
  64. package/build/image/edit.cjs.map +2 -2
  65. package/build/image/image.cjs +91 -27
  66. package/build/image/image.cjs.map +2 -2
  67. package/build/image/index.cjs +1 -1
  68. package/build/image/index.cjs.map +2 -2
  69. package/build/image/transforms.cjs +9 -3
  70. package/build/image/transforms.cjs.map +2 -2
  71. package/build/index.cjs +1 -3
  72. package/build/index.cjs.map +2 -2
  73. package/build/latest-posts/edit.cjs +1 -1
  74. package/build/latest-posts/edit.cjs.map +1 -1
  75. package/build/math/edit.cjs +1 -1
  76. package/build/math/index.cjs +1 -1
  77. package/build/math/index.cjs.map +1 -1
  78. package/build/media-text/constants.cjs +1 -1
  79. package/build/media-text/constants.cjs.map +2 -2
  80. package/build/media-text/index.cjs +1 -1
  81. package/build/media-text/index.cjs.map +2 -2
  82. package/build/missing/edit.cjs +2 -2
  83. package/build/missing/edit.cjs.map +1 -1
  84. package/build/navigation/edit/index.cjs +14 -8
  85. package/build/navigation/edit/index.cjs.map +2 -2
  86. package/build/navigation/edit/navigation-menu-selector.cjs +1 -1
  87. package/build/navigation/edit/navigation-menu-selector.cjs.map +2 -2
  88. package/build/navigation/edit/placeholder/index.cjs +1 -1
  89. package/build/navigation/edit/placeholder/index.cjs.map +2 -2
  90. package/build/navigation-link/edit.cjs +1 -1
  91. package/build/navigation-link/edit.cjs.map +2 -2
  92. package/build/navigation-submenu/block.json +7 -0
  93. package/build/navigation-submenu/edit.cjs +1 -1
  94. package/build/navigation-submenu/edit.cjs.map +2 -2
  95. package/build/page-list/block.json +2 -5
  96. package/build/page-list/edit.cjs +1 -11
  97. package/build/page-list/edit.cjs.map +2 -2
  98. package/build/post-author/edit.cjs +1 -1
  99. package/build/post-author/edit.cjs.map +2 -2
  100. package/build/post-author/utils.cjs +1 -1
  101. package/build/post-author/utils.cjs.map +2 -2
  102. package/build/post-date/edit.cjs +2 -2
  103. package/build/post-date/edit.cjs.map +2 -2
  104. package/build/post-excerpt/edit.cjs +2 -2
  105. package/build/post-excerpt/edit.cjs.map +2 -2
  106. package/build/post-featured-image/block.json +1 -0
  107. package/build/post-featured-image/dimension-controls.cjs +90 -178
  108. package/build/post-featured-image/dimension-controls.cjs.map +3 -3
  109. package/build/post-featured-image/edit.cjs +47 -17
  110. package/build/post-featured-image/edit.cjs.map +2 -2
  111. package/build/post-navigation-link/edit.cjs +2 -2
  112. package/build/post-navigation-link/edit.cjs.map +2 -2
  113. package/build/post-time-to-read/edit.cjs +1 -1
  114. package/build/post-time-to-read/edit.cjs.map +1 -1
  115. package/build/preformatted/edit.cjs +1 -1
  116. package/build/preformatted/edit.cjs.map +2 -2
  117. package/build/pullquote/block.json +1 -3
  118. package/build/pullquote/deprecated.cjs +114 -9
  119. package/build/pullquote/deprecated.cjs.map +3 -3
  120. package/build/pullquote/edit.cjs +43 -61
  121. package/build/pullquote/edit.cjs.map +3 -3
  122. package/build/pullquote/save.cjs +5 -26
  123. package/build/pullquote/save.cjs.map +3 -3
  124. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs +1 -1
  125. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs.map +1 -1
  126. package/build/query/edit/inspector-controls/order-control.cjs +2 -2
  127. package/build/query/edit/inspector-controls/order-control.cjs.map +2 -2
  128. package/build/query/utils.cjs +2 -2
  129. package/build/query/utils.cjs.map +2 -2
  130. package/build/query-pagination-next/edit.cjs +2 -2
  131. package/build/query-pagination-next/edit.cjs.map +1 -1
  132. package/build/query-pagination-previous/edit.cjs +2 -2
  133. package/build/query-pagination-previous/edit.cjs.map +1 -1
  134. package/build/query-title/edit.cjs +1 -1
  135. package/build/query-title/edit.cjs.map +2 -2
  136. package/build/query-total/edit.cjs +1 -1
  137. package/build/query-total/edit.cjs.map +2 -2
  138. package/build/quote/index.cjs +1 -1
  139. package/build/quote/index.cjs.map +2 -2
  140. package/build/read-more/edit.cjs +1 -1
  141. package/build/read-more/edit.cjs.map +2 -2
  142. package/build/rss/edit.cjs +1 -1
  143. package/build/rss/edit.cjs.map +2 -2
  144. package/build/search/edit.cjs +3 -3
  145. package/build/search/edit.cjs.map +2 -2
  146. package/build/shortcode/edit.cjs +1 -1
  147. package/build/shortcode/edit.cjs.map +2 -2
  148. package/build/site-tagline/edit.cjs +1 -1
  149. package/build/site-tagline/edit.cjs.map +2 -2
  150. package/build/site-title/edit.cjs +1 -1
  151. package/build/site-title/edit.cjs.map +2 -2
  152. package/build/tab-list/block.json +34 -21
  153. package/build/tab-list/edit.cjs +116 -12
  154. package/build/tab-list/edit.cjs.map +3 -3
  155. package/build/tab-list/save.cjs +33 -3
  156. package/build/tab-list/save.cjs.map +3 -3
  157. package/build/tab-panel/add-tab-toolbar-control.cjs +19 -8
  158. package/build/tab-panel/add-tab-toolbar-control.cjs.map +2 -2
  159. package/build/tab-panel/block.json +2 -6
  160. package/build/tab-panel/remove-tab-toolbar-control.cjs +9 -14
  161. package/build/tab-panel/remove-tab-toolbar-control.cjs.map +2 -2
  162. package/build/tab-panels/block.json +2 -27
  163. package/build/table/index.cjs +1 -1
  164. package/build/table/index.cjs.map +2 -2
  165. package/build/tabs/block.json +3 -17
  166. package/build/tabs/edit.cjs +7 -21
  167. package/build/tabs/edit.cjs.map +3 -3
  168. package/build/tabs/index.cjs +6 -10
  169. package/build/tabs/index.cjs.map +2 -2
  170. package/build/tabs/use-tab-list-items-sync.cjs +53 -0
  171. package/build/tabs/use-tab-list-items-sync.cjs.map +7 -0
  172. package/build/tabs/view.cjs +2 -10
  173. package/build/tabs/view.cjs.map +2 -2
  174. package/build/terms-query/edit/inspector-controls/order-control.cjs +2 -2
  175. package/build/terms-query/edit/inspector-controls/order-control.cjs.map +2 -2
  176. package/build/utils/style-state.cjs +164 -0
  177. package/build/utils/style-state.cjs.map +7 -0
  178. package/build/utils/waveform-player.cjs +1 -1
  179. package/build/verse/edit.cjs +1 -1
  180. package/build/verse/edit.cjs.map +2 -2
  181. package/build-module/breadcrumbs/edit.mjs +1 -1
  182. package/build-module/breadcrumbs/edit.mjs.map +1 -1
  183. package/build-module/button/edit.mjs +1 -1
  184. package/build-module/button/edit.mjs.map +2 -2
  185. package/build-module/categories/edit.mjs +1 -1
  186. package/build-module/categories/edit.mjs.map +1 -1
  187. package/build-module/code/edit.mjs +1 -1
  188. package/build-module/code/edit.mjs.map +2 -2
  189. package/build-module/code/index.mjs +1 -1
  190. package/build-module/code/index.mjs.map +1 -1
  191. package/build-module/columns/utils.mjs.map +1 -1
  192. package/build-module/comments/edit/comments-legacy.mjs +1 -1
  193. package/build-module/comments/edit/comments-legacy.mjs.map +1 -1
  194. package/build-module/comments/edit/placeholder.mjs +4 -4
  195. package/build-module/comments/edit/placeholder.mjs.map +1 -1
  196. package/build-module/comments-pagination-next/edit.mjs +2 -2
  197. package/build-module/comments-pagination-next/edit.mjs.map +1 -1
  198. package/build-module/comments-pagination-previous/edit.mjs +2 -2
  199. package/build-module/comments-pagination-previous/edit.mjs.map +1 -1
  200. package/build-module/cover/deprecated.mjs +3 -3
  201. package/build-module/cover/deprecated.mjs.map +2 -2
  202. package/build-module/cover/edit/block-controls.mjs +15 -2
  203. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  204. package/build-module/cover/edit/index.mjs +64 -3
  205. package/build-module/cover/edit/index.mjs.map +2 -2
  206. package/build-module/cover/edit/inspector-controls.mjs +98 -35
  207. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  208. package/build-module/details/edit.mjs +1 -1
  209. package/build-module/details/edit.mjs.map +2 -2
  210. package/build-module/embed/embed-placeholder.mjs +1 -1
  211. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  212. package/build-module/file/edit.mjs +5 -13
  213. package/build-module/file/edit.mjs.map +2 -2
  214. package/build-module/file/index.mjs +3 -1
  215. package/build-module/file/index.mjs.map +2 -2
  216. package/build-module/file/transforms.mjs +11 -32
  217. package/build-module/file/transforms.mjs.map +2 -2
  218. package/build-module/file/variations.mjs +17 -0
  219. package/build-module/file/variations.mjs.map +7 -0
  220. package/build-module/footnotes/edit.mjs +1 -1
  221. package/build-module/footnotes/edit.mjs.map +2 -2
  222. package/build-module/form-input/edit.mjs +1 -1
  223. package/build-module/form-input/edit.mjs.map +2 -2
  224. package/build-module/freeform/edit.mjs +1 -1
  225. package/build-module/freeform/edit.mjs.map +1 -1
  226. package/build-module/gallery/edit.mjs +2 -2
  227. package/build-module/gallery/edit.mjs.map +2 -2
  228. package/build-module/home-link/edit.mjs +1 -1
  229. package/build-module/home-link/edit.mjs.map +2 -2
  230. package/build-module/html/index.mjs +1 -1
  231. package/build-module/html/index.mjs.map +2 -2
  232. package/build-module/html/modal.mjs +3 -3
  233. package/build-module/html/modal.mjs.map +2 -2
  234. package/build-module/icon/block.json +12 -0
  235. package/build-module/icon/edit.mjs +94 -40
  236. package/build-module/icon/edit.mjs.map +2 -2
  237. package/build-module/icon/index.mjs +3 -1
  238. package/build-module/icon/index.mjs.map +2 -2
  239. package/build-module/icon/variations.mjs +13 -0
  240. package/build-module/icon/variations.mjs.map +7 -0
  241. package/build-module/image/block.json +1 -0
  242. package/build-module/image/edit.mjs +4 -3
  243. package/build-module/image/edit.mjs.map +2 -2
  244. package/build-module/image/image.mjs +96 -27
  245. package/build-module/image/image.mjs.map +2 -2
  246. package/build-module/image/index.mjs +1 -1
  247. package/build-module/image/index.mjs.map +2 -2
  248. package/build-module/image/transforms.mjs +9 -3
  249. package/build-module/image/transforms.mjs.map +2 -2
  250. package/build-module/index.mjs +1 -3
  251. package/build-module/index.mjs.map +2 -2
  252. package/build-module/latest-posts/edit.mjs +1 -1
  253. package/build-module/latest-posts/edit.mjs.map +1 -1
  254. package/build-module/math/edit.mjs +1 -1
  255. package/build-module/math/index.mjs +1 -1
  256. package/build-module/math/index.mjs.map +1 -1
  257. package/build-module/media-text/constants.mjs +1 -1
  258. package/build-module/media-text/constants.mjs.map +2 -2
  259. package/build-module/media-text/index.mjs +1 -1
  260. package/build-module/media-text/index.mjs.map +2 -2
  261. package/build-module/missing/edit.mjs +2 -2
  262. package/build-module/missing/edit.mjs.map +1 -1
  263. package/build-module/navigation/edit/index.mjs +14 -8
  264. package/build-module/navigation/edit/index.mjs.map +2 -2
  265. package/build-module/navigation/edit/navigation-menu-selector.mjs +1 -1
  266. package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
  267. package/build-module/navigation/edit/placeholder/index.mjs +1 -1
  268. package/build-module/navigation/edit/placeholder/index.mjs.map +2 -2
  269. package/build-module/navigation-link/edit.mjs +1 -1
  270. package/build-module/navigation-link/edit.mjs.map +2 -2
  271. package/build-module/navigation-submenu/block.json +7 -0
  272. package/build-module/navigation-submenu/edit.mjs +1 -1
  273. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  274. package/build-module/page-list/block.json +2 -5
  275. package/build-module/page-list/edit.mjs +1 -11
  276. package/build-module/page-list/edit.mjs.map +2 -2
  277. package/build-module/post-author/edit.mjs +1 -1
  278. package/build-module/post-author/edit.mjs.map +2 -2
  279. package/build-module/post-author/utils.mjs +1 -1
  280. package/build-module/post-author/utils.mjs.map +2 -2
  281. package/build-module/post-date/edit.mjs +2 -2
  282. package/build-module/post-date/edit.mjs.map +2 -2
  283. package/build-module/post-excerpt/edit.mjs +2 -2
  284. package/build-module/post-excerpt/edit.mjs.map +2 -2
  285. package/build-module/post-featured-image/block.json +1 -0
  286. package/build-module/post-featured-image/dimension-controls.mjs +99 -187
  287. package/build-module/post-featured-image/dimension-controls.mjs.map +2 -2
  288. package/build-module/post-featured-image/edit.mjs +47 -17
  289. package/build-module/post-featured-image/edit.mjs.map +2 -2
  290. package/build-module/post-navigation-link/edit.mjs +2 -2
  291. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  292. package/build-module/post-time-to-read/edit.mjs +1 -1
  293. package/build-module/post-time-to-read/edit.mjs.map +1 -1
  294. package/build-module/preformatted/edit.mjs +1 -1
  295. package/build-module/preformatted/edit.mjs.map +2 -2
  296. package/build-module/pullquote/block.json +1 -3
  297. package/build-module/pullquote/deprecated.mjs +114 -9
  298. package/build-module/pullquote/deprecated.mjs.map +2 -2
  299. package/build-module/pullquote/edit.mjs +44 -67
  300. package/build-module/pullquote/edit.mjs.map +2 -2
  301. package/build-module/pullquote/save.mjs +5 -16
  302. package/build-module/pullquote/save.mjs.map +2 -2
  303. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs +1 -1
  304. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs.map +1 -1
  305. package/build-module/query/edit/inspector-controls/order-control.mjs +2 -2
  306. package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
  307. package/build-module/query/utils.mjs +2 -2
  308. package/build-module/query/utils.mjs.map +2 -2
  309. package/build-module/query-pagination-next/edit.mjs +2 -2
  310. package/build-module/query-pagination-next/edit.mjs.map +1 -1
  311. package/build-module/query-pagination-previous/edit.mjs +2 -2
  312. package/build-module/query-pagination-previous/edit.mjs.map +1 -1
  313. package/build-module/query-title/edit.mjs +1 -1
  314. package/build-module/query-title/edit.mjs.map +2 -2
  315. package/build-module/query-total/edit.mjs +1 -1
  316. package/build-module/query-total/edit.mjs.map +2 -2
  317. package/build-module/quote/index.mjs +1 -1
  318. package/build-module/quote/index.mjs.map +2 -2
  319. package/build-module/read-more/edit.mjs +1 -1
  320. package/build-module/read-more/edit.mjs.map +2 -2
  321. package/build-module/rss/edit.mjs +1 -1
  322. package/build-module/rss/edit.mjs.map +2 -2
  323. package/build-module/search/edit.mjs +3 -3
  324. package/build-module/search/edit.mjs.map +2 -2
  325. package/build-module/shortcode/edit.mjs +1 -1
  326. package/build-module/shortcode/edit.mjs.map +2 -2
  327. package/build-module/site-tagline/edit.mjs +1 -1
  328. package/build-module/site-tagline/edit.mjs.map +2 -2
  329. package/build-module/site-title/edit.mjs +1 -1
  330. package/build-module/site-title/edit.mjs.map +2 -2
  331. package/build-module/tab-list/block.json +34 -21
  332. package/build-module/tab-list/edit.mjs +122 -15
  333. package/build-module/tab-list/edit.mjs.map +2 -2
  334. package/build-module/tab-list/save.mjs +29 -4
  335. package/build-module/tab-list/save.mjs.map +2 -2
  336. package/build-module/tab-panel/add-tab-toolbar-control.mjs +19 -8
  337. package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +2 -2
  338. package/build-module/tab-panel/block.json +2 -6
  339. package/build-module/tab-panel/remove-tab-toolbar-control.mjs +9 -14
  340. package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +2 -2
  341. package/build-module/tab-panels/block.json +2 -27
  342. package/build-module/table/index.mjs +1 -1
  343. package/build-module/table/index.mjs.map +2 -2
  344. package/build-module/tabs/block.json +3 -17
  345. package/build-module/tabs/edit.mjs +7 -21
  346. package/build-module/tabs/edit.mjs.map +2 -2
  347. package/build-module/tabs/index.mjs +6 -10
  348. package/build-module/tabs/index.mjs.map +2 -2
  349. package/build-module/tabs/use-tab-list-items-sync.mjs +32 -0
  350. package/build-module/tabs/use-tab-list-items-sync.mjs.map +7 -0
  351. package/build-module/tabs/view.mjs +2 -10
  352. package/build-module/tabs/view.mjs.map +2 -2
  353. package/build-module/terms-query/edit/inspector-controls/order-control.mjs +2 -2
  354. package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
  355. package/build-module/utils/style-state.mjs +132 -0
  356. package/build-module/utils/style-state.mjs.map +7 -0
  357. package/build-module/utils/waveform-player.mjs +1 -1
  358. package/build-module/verse/edit.mjs +1 -1
  359. package/build-module/verse/edit.mjs.map +2 -2
  360. package/build-style/editor-rtl.css +12 -16
  361. package/build-style/editor.css +12 -16
  362. package/build-style/icon/style-rtl.css +9 -0
  363. package/build-style/icon/style.css +9 -0
  364. package/build-style/style-rtl.css +11 -24
  365. package/build-style/style.css +11 -24
  366. package/build-style/tab-list/editor-rtl.css +12 -4
  367. package/build-style/tab-list/editor.css +12 -4
  368. package/build-style/{tab → tab-list}/style-rtl.css +2 -2
  369. package/build-style/{tab → tab-list}/style.css +2 -2
  370. package/build-style/tab-panel/style-rtl.css +0 -17
  371. package/build-style/tab-panel/style.css +0 -17
  372. package/package.json +48 -45
  373. package/src/avatar/index.php +2 -2
  374. package/src/block/index.php +2 -26
  375. package/src/comment-author-avatar/index.php +3 -3
  376. package/src/comment-author-name/index.php +1 -1
  377. package/src/comment-date/index.php +1 -1
  378. package/src/cover/edit/block-controls.js +14 -2
  379. package/src/cover/edit/index.js +86 -0
  380. package/src/cover/edit/inspector-controls.js +124 -54
  381. package/src/editor.scss +0 -1
  382. package/src/file/edit.js +3 -16
  383. package/src/file/index.js +2 -0
  384. package/src/file/transforms.js +12 -31
  385. package/src/file/variations.js +17 -0
  386. package/src/gallery/edit.js +13 -13
  387. package/src/icon/README.md +3 -0
  388. package/src/icon/block.json +12 -0
  389. package/src/icon/edit.js +86 -36
  390. package/src/icon/index.js +3 -1
  391. package/src/icon/index.php +23 -0
  392. package/src/icon/style.scss +12 -0
  393. package/src/icon/variations.js +9 -0
  394. package/src/image/README.md +1 -0
  395. package/src/image/block.json +1 -0
  396. package/src/image/edit.js +8 -3
  397. package/src/image/image.js +120 -54
  398. package/src/image/index.php +0 -1
  399. package/src/image/transforms.js +34 -8
  400. package/src/index.js +4 -11
  401. package/src/navigation/edit/index.js +23 -10
  402. package/src/navigation/index.php +58 -0
  403. package/src/navigation-submenu/README.md +5 -0
  404. package/src/navigation-submenu/block.json +7 -0
  405. package/src/page-list/README.md +1 -1
  406. package/src/page-list/block.json +2 -5
  407. package/src/page-list/edit.js +0 -11
  408. package/src/page-list/index.php +1 -1
  409. package/src/post-date/edit.js +2 -2
  410. package/src/post-featured-image/README.md +1 -0
  411. package/src/post-featured-image/block.json +1 -0
  412. package/src/post-featured-image/dimension-controls.js +105 -184
  413. package/src/post-featured-image/edit.js +53 -21
  414. package/src/post-featured-image/index.php +24 -22
  415. package/src/pullquote/README.md +1 -1
  416. package/src/pullquote/block.json +1 -3
  417. package/src/pullquote/deprecated.js +121 -9
  418. package/src/pullquote/edit.js +7 -31
  419. package/src/pullquote/save.js +2 -13
  420. package/src/search/index.php +1 -1
  421. package/src/style.scss +1 -2
  422. package/src/tab-list/README.md +19 -17
  423. package/src/tab-list/block.json +34 -21
  424. package/src/tab-list/edit.js +147 -15
  425. package/src/tab-list/editor.scss +13 -6
  426. package/src/tab-list/index.php +23 -30
  427. package/src/tab-list/save.js +39 -4
  428. package/src/{tab → tab-list}/style.scss +1 -1
  429. package/src/tab-panel/README.md +0 -3
  430. package/src/tab-panel/add-tab-toolbar-control.js +24 -11
  431. package/src/tab-panel/block.json +2 -6
  432. package/src/tab-panel/remove-tab-toolbar-control.js +10 -14
  433. package/src/tab-panel/style.scss +0 -17
  434. package/src/tab-panels/README.md +0 -16
  435. package/src/tab-panels/block.json +2 -27
  436. package/src/tabs/README.md +1 -7
  437. package/src/tabs/block.json +3 -17
  438. package/src/tabs/edit.js +8 -19
  439. package/src/tabs/index.js +6 -10
  440. package/src/tabs/index.php +0 -13
  441. package/src/tabs/use-tab-list-items-sync.js +49 -0
  442. package/src/tabs/view.js +2 -10
  443. package/src/utils/style-state.js +151 -0
  444. package/src/utils/test/style-state.js +307 -0
  445. package/babel-plugin.cjs +0 -150
  446. package/build/tab/block.json +0 -56
  447. package/build/tab/controls.cjs +0 -46
  448. package/build/tab/controls.cjs.map +0 -7
  449. package/build/tab/edit.cjs +0 -135
  450. package/build/tab/edit.cjs.map +0 -7
  451. package/build/tab/index.cjs +0 -58
  452. package/build/tab/index.cjs.map +0 -7
  453. package/build/tab/save.cjs.map +0 -7
  454. package/build/tabs/use-tab-list-sync.cjs +0 -190
  455. package/build/tabs/use-tab-list-sync.cjs.map +0 -7
  456. package/build-module/tab/block.json +0 -56
  457. package/build-module/tab/controls.mjs +0 -15
  458. package/build-module/tab/controls.mjs.map +0 -7
  459. package/build-module/tab/edit.mjs +0 -108
  460. package/build-module/tab/edit.mjs.map +0 -7
  461. package/build-module/tab/index.mjs +0 -20
  462. package/build-module/tab/index.mjs.map +0 -7
  463. package/build-module/tab/save.mjs +0 -14
  464. package/build-module/tab/save.mjs.map +0 -7
  465. package/build-module/tabs/use-tab-list-sync.mjs +0 -169
  466. package/build-module/tabs/use-tab-list-sync.mjs.map +0 -7
  467. package/build-style/tab/editor-rtl.css +0 -11
  468. package/build-style/tab/editor.css +0 -11
  469. package/build-style/tab-panels/style-rtl.css +0 -4
  470. package/build-style/tab-panels/style.css +0 -4
  471. package/src/tab/README.md +0 -69
  472. package/src/tab/block.json +0 -56
  473. package/src/tab/controls.js +0 -19
  474. package/src/tab/edit.js +0 -141
  475. package/src/tab/editor.scss +0 -14
  476. package/src/tab/index.js +0 -24
  477. package/src/tab/index.php +0 -70
  478. package/src/tab/save.js +0 -13
  479. package/src/tab-panels/style.scss +0 -4
  480. package/src/tabs/use-tab-list-sync.js +0 -237
package/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 10.0.0-next.0 (2026-06-19)
6
+
7
+ ### Breaking Changes
8
+
9
+ - Removed the `@wordpress/block-library/babel-plugin` export. It was an internal transform for stripping experimental blocks from WordPress core builds and is no longer used by Gutenberg's build process ([#79162](https://github.com/WordPress/gutenberg/pull/79162)).
10
+
11
+ ### Enhancements
12
+
13
+ - Icon Block: Insert with a default icon instead of an empty placeholder ([#79111](https://github.com/WordPress/gutenberg/pull/79111)).
14
+
5
15
  ## 9.48.1 (2026-06-16)
6
16
 
7
17
  ## 9.48.0 (2026-06-10)
@@ -9,6 +19,7 @@
9
19
  ### Code Quality
10
20
 
11
21
  - Add missing `@types/react` dependency. [#78882](https://github.com/WordPress/gutenberg/pull/78882).
22
+ - Page List: derive `isNested` from a new `core/isInsideSubmenu` block context provided by Navigation Submenu, replacing the self-setting attribute pattern that was dirtying related entities ([#79015](https://github.com/WordPress/gutenberg/issues/79015)).
12
23
 
13
24
  ## 9.47.0 (2026-05-27)
14
25
 
@@ -263,7 +263,7 @@ function BreadcrumbEdit({
263
263
  checked: showOnHomePage,
264
264
  onChange: (value) => setAttributes({ showOnHomePage: value }),
265
265
  help: (0, import_i18n.__)(
266
- "If this Breadcrumbs block appears in a template or template part that\u2019s shown on the homepage, enable this option to display the breadcrumb trail. Otherwise, this setting has no effect."
266
+ "If this Breadcrumbs block appears in a template or template part that’s shown on the homepage, enable this option to display the breadcrumb trail. Otherwise, this setting has no effect."
267
267
  )
268
268
  }
269
269
  ),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/breadcrumbs/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tTextControl,\n\tCheckboxControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { useDisabled } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport HtmlRenderer from '../utils/html-renderer';\n\nconst separatorDefaultValue = '/';\n\nexport default function BreadcrumbEdit( {\n\tattributes,\n\tsetAttributes,\n\tname,\n\tcontext: { postId, postType, templateSlug },\n} ) {\n\tconst {\n\t\tseparator,\n\t\tshowHomeItem,\n\t\tshowCurrentItem,\n\t\tprefersTaxonomy,\n\t\tshowOnHomePage,\n\t} = attributes;\n\tconst {\n\t\tpost,\n\t\tisPostTypeHierarchical,\n\t\tpostTypeHasTaxonomies,\n\t\thasTermsAssigned,\n\t\tisLoading,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! postType ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst _post = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst postTypeObject = select( coreStore ).getPostType( postType );\n\t\t\tconst _postTypeHasTaxonomies =\n\t\t\t\tpostTypeObject && postTypeObject.taxonomies.length;\n\t\t\tlet taxonomies;\n\t\t\tif ( _postTypeHasTaxonomies ) {\n\t\t\t\ttaxonomies = select( coreStore ).getTaxonomies( {\n\t\t\t\t\ttype: postType,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpost: _post,\n\t\t\t\tisPostTypeHierarchical: postTypeObject?.hierarchical,\n\t\t\t\tpostTypeHasTaxonomies: _postTypeHasTaxonomies,\n\t\t\t\thasTermsAssigned:\n\t\t\t\t\t_post &&\n\t\t\t\t\t( taxonomies || [] )\n\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.some( ( taxonomy ) => {\n\t\t\t\t\t\t\treturn !! _post[ taxonomy.rest_base ]?.length;\n\t\t\t\t\t\t} ),\n\t\t\t\tisLoading:\n\t\t\t\t\t( postId && ! _post ) ||\n\t\t\t\t\t! postTypeObject ||\n\t\t\t\t\t( _postTypeHasTaxonomies && ! taxonomies ),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\t/**\n\t * Counter used to cache-bust `useServerSideRender`.\n\t *\n\t * This is a catch-all signal to re-render the block when a post's title,\n\t * parent ID, or terms change.\n\t *\n\t * This is fundamentally imperfect, because there are other entities which\n\t * could change in the meantime (the titles of ancestor posts, or the\n\t * labels of taxonomy terms), hence the choice to re-render systematically\n\t * upon saving.\n\t */\n\tconst [ invalidationKey, setInvalidationKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tsetInvalidationKey( ( c ) => c + 1 );\n\t}, [ post ] );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { content, status, error } = useServerSideRender( {\n\t\tattributes,\n\t\tskipBlockSupportAttributes: true,\n\t\tblock: name,\n\t\turlQueryArgs: { post_id: postId, invalidationKey },\n\t} );\n\tconst prevContentRef = useRef( '' );\n\tuseEffect( () => {\n\t\tif ( status === 'success' ) {\n\t\t\tprevContentRef.current = content;\n\t\t}\n\t}, [ content, status ] );\n\tconst [ showLoader, setShowLoader ] = useState( false );\n\tuseEffect( () => {\n\t\tif ( status !== 'loading' ) {\n\t\t\treturn;\n\t\t}\n\t\tconst timeout = setTimeout( () => {\n\t\t\tsetShowLoader( true );\n\t\t}, 400 );\n\t\treturn () => {\n\t\t\tclearTimeout( timeout );\n\t\t\tsetShowLoader( false );\n\t\t};\n\t}, [ status ] );\n\tconst disabledRef = useDisabled();\n\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\n\tif ( isLoading ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Try to determine breadcrumb type for more accurate previews.\n\tlet _showTerms;\n\t// Some non-hierarchical post types (e.g., attachments) can have parents.\n\t// Use hierarchical breadcrumbs if a parent exists, otherwise use taxonomy breadcrumbs.\n\tif ( ! isPostTypeHierarchical && ! post?.parent ) {\n\t\t_showTerms = true;\n\t} else if ( ! postTypeHasTaxonomies ) {\n\t\t// Hierarchical post type without taxonomies can only use ancestors.\n\t\t_showTerms = false;\n\t} else {\n\t\t// For hierarchical post types with taxonomies, use the attribute.\n\t\t_showTerms = prefersTaxonomy;\n\t}\n\tlet placeholder = null;\n\t// This is fragile because this block is server side rendered and we'll have to\n\t// update the placeholder html if the server side rendering output changes.\n\tconst showPlaceholder =\n\t\t! postId ||\n\t\t! postType ||\n\t\t// When `templateSlug` is set only show placeholder if the post type is not.\n\t\t// This is needed because when we are showing the template in post editor we\n\t\t// want to show the real breadcrumbs if we have the post type.\n\t\t( templateSlug && ! postType ) ||\n\t\t( ! _showTerms && ! isPostTypeHierarchical ) ||\n\t\t( _showTerms && ! hasTermsAssigned );\n\tif ( showPlaceholder ) {\n\t\tconst placeholderItems = [];\n\t\tif ( showHomeItem ) {\n\t\t\tplaceholderItems.push( __( 'Home' ) );\n\t\t}\n\t\tif ( templateSlug && ! postId ) {\n\t\t\tplaceholderItems.push( __( 'Page' ) );\n\t\t} else if ( _showTerms ) {\n\t\t\tplaceholderItems.push( __( 'Category' ) );\n\t\t} else {\n\t\t\tplaceholderItems.push( __( 'Ancestor' ), __( 'Parent' ) );\n\t\t}\n\t\tplaceholder = (\n\t\t\t<nav\n\t\t\t\t{ ...blockProps }\n\t\t\t\tstyle={ {\n\t\t\t\t\t'--separator': `\"${ separator\n\t\t\t\t\t\t.replace( /\\\\/g, '\\\\\\\\' )\n\t\t\t\t\t\t.replace( /\"/g, '\\\\\"' ) }\"`,\n\t\t\t\t\t...blockProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ol>\n\t\t\t\t\t{ placeholderItems.map( ( text, index ) => (\n\t\t\t\t\t\t<li key={ index }>\n\t\t\t\t\t\t\t<a href={ `#breadcrumbs-pseudo-link-${ index }` }>\n\t\t\t\t\t\t\t\t{ text }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ showCurrentItem && (\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<span aria-current=\"page\">{ __( 'Current' ) }</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) }\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t);\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\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\tshowHomeItem: true,\n\t\t\t\t\t\t\tshowCurrentItem: true,\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={ __( 'Show home breadcrumb' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showHomeItem }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowHomeItem: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show home breadcrumb' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { showHomeItem: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ showHomeItem }\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={ __( 'Show current breadcrumb' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showCurrentItem }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowCurrentItem: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show current breadcrumb' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { showCurrentItem: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ showCurrentItem }\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={ __( 'Separator' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => separator !== separatorDefaultValue }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tlabel={ __( 'Separator' ) }\n\t\t\t\t\t\t\tvalue={ separator }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { separator: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\t\tif ( ! separator ) {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tlabel={ __( 'Show on homepage' ) }\n\t\t\t\t\tchecked={ showOnHomePage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { showOnHomePage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'If this Breadcrumbs block appears in a template or template part that\u2019s shown on the homepage, enable this option to display the breadcrumb trail. Otherwise, this setting has no effect.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tlabel={ __( 'Prefer taxonomy terms' ) }\n\t\t\t\t\tchecked={ prefersTaxonomy }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { prefersTaxonomy: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'The exact type of breadcrumbs shown will vary automatically depending on the page in which this block is displayed. In the specific case of a hierarchical post type with taxonomies, the breadcrumbs can either reflect its post hierarchy (default) or the hierarchy of its assigned taxonomy terms.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ status === 'loading' &&\n\t\t\t\t! showPlaceholder &&\n\t\t\t\t( prevContentRef.current ? (\n\t\t\t\t\t<HtmlRenderer\n\t\t\t\t\t\twrapperProps={ {\n\t\t\t\t\t\t\t...blockProps,\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t...blockProps.style,\n\t\t\t\t\t\t\t\topacity: showLoader ? 0.3 : 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thtml={ prevContentRef.current }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</div>\n\t\t\t\t) ) }\n\t\t\t{ status === 'error' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: error message returned when rendering the block. */\n\t\t\t\t\t\t\t__( 'Error: %s' ),\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ showPlaceholder && placeholder }\n\t\t\t{ ! showPlaceholder && status === 'success' && (\n\t\t\t\t<HtmlRenderer wrapperProps={ blockProps } html={ content } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tTextControl,\n\tCheckboxControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { useDisabled } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport HtmlRenderer from '../utils/html-renderer';\n\nconst separatorDefaultValue = '/';\n\nexport default function BreadcrumbEdit( {\n\tattributes,\n\tsetAttributes,\n\tname,\n\tcontext: { postId, postType, templateSlug },\n} ) {\n\tconst {\n\t\tseparator,\n\t\tshowHomeItem,\n\t\tshowCurrentItem,\n\t\tprefersTaxonomy,\n\t\tshowOnHomePage,\n\t} = attributes;\n\tconst {\n\t\tpost,\n\t\tisPostTypeHierarchical,\n\t\tpostTypeHasTaxonomies,\n\t\thasTermsAssigned,\n\t\tisLoading,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! postType ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst _post = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst postTypeObject = select( coreStore ).getPostType( postType );\n\t\t\tconst _postTypeHasTaxonomies =\n\t\t\t\tpostTypeObject && postTypeObject.taxonomies.length;\n\t\t\tlet taxonomies;\n\t\t\tif ( _postTypeHasTaxonomies ) {\n\t\t\t\ttaxonomies = select( coreStore ).getTaxonomies( {\n\t\t\t\t\ttype: postType,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpost: _post,\n\t\t\t\tisPostTypeHierarchical: postTypeObject?.hierarchical,\n\t\t\t\tpostTypeHasTaxonomies: _postTypeHasTaxonomies,\n\t\t\t\thasTermsAssigned:\n\t\t\t\t\t_post &&\n\t\t\t\t\t( taxonomies || [] )\n\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.some( ( taxonomy ) => {\n\t\t\t\t\t\t\treturn !! _post[ taxonomy.rest_base ]?.length;\n\t\t\t\t\t\t} ),\n\t\t\t\tisLoading:\n\t\t\t\t\t( postId && ! _post ) ||\n\t\t\t\t\t! postTypeObject ||\n\t\t\t\t\t( _postTypeHasTaxonomies && ! taxonomies ),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\t/**\n\t * Counter used to cache-bust `useServerSideRender`.\n\t *\n\t * This is a catch-all signal to re-render the block when a post's title,\n\t * parent ID, or terms change.\n\t *\n\t * This is fundamentally imperfect, because there are other entities which\n\t * could change in the meantime (the titles of ancestor posts, or the\n\t * labels of taxonomy terms), hence the choice to re-render systematically\n\t * upon saving.\n\t */\n\tconst [ invalidationKey, setInvalidationKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tsetInvalidationKey( ( c ) => c + 1 );\n\t}, [ post ] );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { content, status, error } = useServerSideRender( {\n\t\tattributes,\n\t\tskipBlockSupportAttributes: true,\n\t\tblock: name,\n\t\turlQueryArgs: { post_id: postId, invalidationKey },\n\t} );\n\tconst prevContentRef = useRef( '' );\n\tuseEffect( () => {\n\t\tif ( status === 'success' ) {\n\t\t\tprevContentRef.current = content;\n\t\t}\n\t}, [ content, status ] );\n\tconst [ showLoader, setShowLoader ] = useState( false );\n\tuseEffect( () => {\n\t\tif ( status !== 'loading' ) {\n\t\t\treturn;\n\t\t}\n\t\tconst timeout = setTimeout( () => {\n\t\t\tsetShowLoader( true );\n\t\t}, 400 );\n\t\treturn () => {\n\t\t\tclearTimeout( timeout );\n\t\t\tsetShowLoader( false );\n\t\t};\n\t}, [ status ] );\n\tconst disabledRef = useDisabled();\n\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\n\tif ( isLoading ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Try to determine breadcrumb type for more accurate previews.\n\tlet _showTerms;\n\t// Some non-hierarchical post types (e.g., attachments) can have parents.\n\t// Use hierarchical breadcrumbs if a parent exists, otherwise use taxonomy breadcrumbs.\n\tif ( ! isPostTypeHierarchical && ! post?.parent ) {\n\t\t_showTerms = true;\n\t} else if ( ! postTypeHasTaxonomies ) {\n\t\t// Hierarchical post type without taxonomies can only use ancestors.\n\t\t_showTerms = false;\n\t} else {\n\t\t// For hierarchical post types with taxonomies, use the attribute.\n\t\t_showTerms = prefersTaxonomy;\n\t}\n\tlet placeholder = null;\n\t// This is fragile because this block is server side rendered and we'll have to\n\t// update the placeholder html if the server side rendering output changes.\n\tconst showPlaceholder =\n\t\t! postId ||\n\t\t! postType ||\n\t\t// When `templateSlug` is set only show placeholder if the post type is not.\n\t\t// This is needed because when we are showing the template in post editor we\n\t\t// want to show the real breadcrumbs if we have the post type.\n\t\t( templateSlug && ! postType ) ||\n\t\t( ! _showTerms && ! isPostTypeHierarchical ) ||\n\t\t( _showTerms && ! hasTermsAssigned );\n\tif ( showPlaceholder ) {\n\t\tconst placeholderItems = [];\n\t\tif ( showHomeItem ) {\n\t\t\tplaceholderItems.push( __( 'Home' ) );\n\t\t}\n\t\tif ( templateSlug && ! postId ) {\n\t\t\tplaceholderItems.push( __( 'Page' ) );\n\t\t} else if ( _showTerms ) {\n\t\t\tplaceholderItems.push( __( 'Category' ) );\n\t\t} else {\n\t\t\tplaceholderItems.push( __( 'Ancestor' ), __( 'Parent' ) );\n\t\t}\n\t\tplaceholder = (\n\t\t\t<nav\n\t\t\t\t{ ...blockProps }\n\t\t\t\tstyle={ {\n\t\t\t\t\t'--separator': `\"${ separator\n\t\t\t\t\t\t.replace( /\\\\/g, '\\\\\\\\' )\n\t\t\t\t\t\t.replace( /\"/g, '\\\\\"' ) }\"`,\n\t\t\t\t\t...blockProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ol>\n\t\t\t\t\t{ placeholderItems.map( ( text, index ) => (\n\t\t\t\t\t\t<li key={ index }>\n\t\t\t\t\t\t\t<a href={ `#breadcrumbs-pseudo-link-${ index }` }>\n\t\t\t\t\t\t\t\t{ text }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ showCurrentItem && (\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<span aria-current=\"page\">{ __( 'Current' ) }</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) }\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t);\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\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\tshowHomeItem: true,\n\t\t\t\t\t\t\tshowCurrentItem: true,\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={ __( 'Show home breadcrumb' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showHomeItem }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowHomeItem: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show home breadcrumb' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { showHomeItem: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ showHomeItem }\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={ __( 'Show current breadcrumb' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showCurrentItem }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowCurrentItem: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show current breadcrumb' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { showCurrentItem: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ showCurrentItem }\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={ __( 'Separator' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => separator !== separatorDefaultValue }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tlabel={ __( 'Separator' ) }\n\t\t\t\t\t\t\tvalue={ separator }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { separator: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\t\tif ( ! separator ) {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tlabel={ __( 'Show on homepage' ) }\n\t\t\t\t\tchecked={ showOnHomePage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { showOnHomePage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'If this Breadcrumbs block appears in a template or template part that’s shown on the homepage, enable this option to display the breadcrumb trail. Otherwise, this setting has no effect.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tlabel={ __( 'Prefer taxonomy terms' ) }\n\t\t\t\t\tchecked={ prefersTaxonomy }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { prefersTaxonomy: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'The exact type of breadcrumbs shown will vary automatically depending on the page in which this block is displayed. In the specific case of a hierarchical post type with taxonomies, the breadcrumbs can either reflect its post hierarchy (default) or the hierarchy of its assigned taxonomy terms.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ status === 'loading' &&\n\t\t\t\t! showPlaceholder &&\n\t\t\t\t( prevContentRef.current ? (\n\t\t\t\t\t<HtmlRenderer\n\t\t\t\t\t\twrapperProps={ {\n\t\t\t\t\t\t\t...blockProps,\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t...blockProps.style,\n\t\t\t\t\t\t\t\topacity: showLoader ? 0.3 : 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thtml={ prevContentRef.current }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</div>\n\t\t\t\t) ) }\n\t\t\t{ status === 'error' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: error message returned when rendering the block. */\n\t\t\t\t\t\t\t__( 'Error: %s' ),\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ showPlaceholder && placeholder }\n\t\t\t{ ! showPlaceholder && status === 'success' && (\n\t\t\t\t<HtmlRenderer wrapperProps={ blockProps } html={ content } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["coreStore", "ToolsPanel", "ToolsPanelItem", "HtmlRenderer"]
7
7
  }
@@ -295,7 +295,7 @@ function ButtonEdit(props) {
295
295
  {
296
296
  ref: mergedRef,
297
297
  "aria-label": (0, import_i18n.__)("Button text"),
298
- placeholder: placeholder || (0, import_i18n.__)("Add text\u2026"),
298
+ placeholder: placeholder || (0, import_i18n.__)("Add text"),
299
299
  value: text,
300
300
  onChange: (value) => setAttributes({
301
301
  text: (0, import_remove_anchor_tag.default)(value)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/button/edit.js"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n\tExternalLink,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tLinkControl,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalGetShadowClassesAndStyles as useShadowProps,\n\t__experimentalGetDimensionsClassesAndStyles as useDimensionsProps,\n\t__experimentalGetElementClassName,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tuseSettings,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport {\n\tcreateBlock,\n\tcloneBlock,\n\tgetDefaultBlockName,\n\tgetBlockBindingsSource,\n} from '@wordpress/blocks';\nimport {\n\tuseMergeRefs,\n\tuseRefEffect,\n\tprivateApis as composePrivateApis,\n} from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';\nimport { getUpdatedLinkAttributes } from './get-updated-link-attributes';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { unlock } from '../lock-unlock';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\nimport { getWidthClasses, isPercentageWidth } from './utils';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\nconst { subscribeDelegatedListener } = unlock( composePrivateApis );\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\n\nfunction useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\tconst after = topParentListBlock.innerBlocks.slice(\n\t\t\t\tblockIndex + 1\n\t\t\t);\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\t// Capture phase so we run before writing-flow's ancestor-bubble\n\t\t// keydown handlers that gate on `event.defaultPrevented`.\n\t\treturn subscribeDelegatedListener(\n\t\t\telement,\n\t\t\t'keydown',\n\t\t\tonKeyDown,\n\t\t\ttrue\n\t\t);\n\t}, [] );\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t\tclientId,\n\t\tcontext,\n\t} = props;\n\tconst {\n\t\ttagName,\n\t\tlinkTarget,\n\t\tplaceholder,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\turl,\n\t\tmetadata,\n\t} = attributes;\n\tconst width = style?.dimensions?.width;\n\n\tuseDeprecatedTextAlign( props );\n\n\tconst TagName = tagName || 'a';\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\n\t\t}\n\t}\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\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst shadowProps = useShadowProps( attributes );\n\tconst dimensionsProps = useDimensionsProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === NEW_TAB_TARGET;\n\tconst nofollow = !! rel?.includes( NOFOLLOW_REL );\n\tconst isLinkTag = 'a' === TagName;\n\n\tconst {\n\t\tcreatePageEntity,\n\t\tuserCanCreatePages,\n\t\tlockUrlControls = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst _settings = select( blockEditorStore ).getSettings();\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcreatePageEntity: _settings.__experimentalCreatePageEntity,\n\t\t\t\tuserCanCreatePages: _settings.__experimentalUserCanCreatePages,\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSelected, metadata?.bindings?.url ]\n\t);\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst page = await createPageEntity( {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: page.type,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tfunction createButtonText( searchTerm ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Create page: <mark>%s</mark>' ),\n\t\t\t\tsearchTerm\n\t\t\t),\n\t\t\t{ mark: <mark /> }\n\t\t);\n\t}\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.\n\tconst linkValue = useMemo(\n\t\t() => ( { url, opensInNewTab, nofollow } ),\n\t\t[ url, opensInNewTab, nofollow ]\n\t);\n\n\tconst useEnterRef = useEnter( { content: text, clientId } );\n\tconst mergedRef = useMergeRefs( [ useEnterRef, richTextRef ] );\n\n\tconst [ fluidTypographySettings, layout, dimensionSizes ] = useSettings(\n\t\t'typography.fluid',\n\t\t'layout',\n\t\t'dimensions.dimensionSizes'\n\t);\n\tconst dimensionPresets = useMemo( () => {\n\t\tif ( ! dimensionSizes ) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [\n\t\t\t...( dimensionSizes?.custom ?? [] ),\n\t\t\t...( dimensionSizes?.theme ?? [] ),\n\t\t\t...( dimensionSizes?.default ?? [] ),\n\t\t];\n\t}, [ dimensionSizes ] );\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\n\t// Resolve preset dimension references to their actual values.\n\tconst resolvedWidth = useMemo( () => {\n\t\tif ( ! width ) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst presetPrefix = 'var:preset|dimension|';\n\t\tif ( width.startsWith( presetPrefix ) ) {\n\t\t\tconst slug = width.slice( presetPrefix.length );\n\t\t\tconst preset = dimensionPresets?.find( ( p ) => p.slug === slug );\n\t\t\treturn preset?.size ?? width;\n\t\t}\n\t\treturn width;\n\t}, [ width, dimensionPresets ] );\n\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst hasBlockControls =\n\t\thasNonContentControls || ( isLinkTag && ! lockUrlControls );\n\tconst classes = clsx(\n\t\tblockProps.className,\n\t\tgetWidthClasses( resolvedWidth )\n\t);\n\n\tconst widthStyle = useMemo( () => {\n\t\tif ( ! width ) {\n\t\t\treturn {};\n\t\t}\n\t\tif ( isPercentageWidth( resolvedWidth ) ) {\n\t\t\treturn {\n\t\t\t\t'--wp--block-button--width': parseFloat( resolvedWidth ),\n\t\t\t};\n\t\t}\n\t\treturn dimensionsProps.style;\n\t}, [ width, resolvedWidth, dimensionsProps.style ] );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classes }\n\t\t\t\tstyle={ { ...blockProps.style, ...widthStyle } }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ mergedRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text\u2026' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttext: removeAnchorTag( value ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\ttypographyProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t\t[ `has-custom-font-size` ]:\n\t\t\t\t\t\t\t\tblockProps.style.fontSize,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t\t...spacingProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t\t...typographyProps.style,\n\t\t\t\t\t\twritingMode: undefined,\n\t\t\t\t\t} }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ hasBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ ! isURLSet ? link : linkOff }\n\t\t\t\t\t\t\ttitle={ ! isURLSet ? __( 'Link' ) : __( 'Unlink' ) }\n\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t! isURLSet\n\t\t\t\t\t\t\t\t\t? displayShortcut.primary( 'k' )\n\t\t\t\t\t\t\t\t\t: displayShortcut.primaryShift( 'k' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ ! isURLSet ? startEditing : unlink }\n\t\t\t\t\t\t\tisActive={ isURLSet }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isLinkTag &&\n\t\t\t\tisSelected &&\n\t\t\t\t( isEditingURL || isURLSet ) &&\n\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t\t__unstableSlotName=\"__unstable-block-tools-after\"\n\t\t\t\t\t\tshift\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\tvalue={ linkValue }\n\t\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\tnofollow: newNofollow,\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tsetAttributes(\n\t\t\t\t\t\t\t\t\tgetUpdatedLinkAttributes( {\n\t\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\t\t\tnofollow: newNofollow,\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\tonRemove={ () => {\n\t\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t\t\tsettings={ LINK_SETTINGS }\n\t\t\t\t\t\t\tcreateSuggestion={\n\t\t\t\t\t\t\t\tcreatePageEntity && handleCreate\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreatePages }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={ createButtonText }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Popover>\n\t\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HTMLElementControl\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<a>)' ), value: 'a' },\n\t\t\t\t\t\t{ label: '<button>', value: 'button' },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t\t{ isLinkTag && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t\t__(\n\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),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ta: (\n\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),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n\tExternalLink,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tLinkControl,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalGetShadowClassesAndStyles as useShadowProps,\n\t__experimentalGetDimensionsClassesAndStyles as useDimensionsProps,\n\t__experimentalGetElementClassName,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tuseSettings,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport {\n\tcreateBlock,\n\tcloneBlock,\n\tgetDefaultBlockName,\n\tgetBlockBindingsSource,\n} from '@wordpress/blocks';\nimport {\n\tuseMergeRefs,\n\tuseRefEffect,\n\tprivateApis as composePrivateApis,\n} from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';\nimport { getUpdatedLinkAttributes } from './get-updated-link-attributes';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { unlock } from '../lock-unlock';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\nimport { getWidthClasses, isPercentageWidth } from './utils';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\nconst { subscribeDelegatedListener } = unlock( composePrivateApis );\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\n\nfunction useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\tconst after = topParentListBlock.innerBlocks.slice(\n\t\t\t\tblockIndex + 1\n\t\t\t);\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\t// Capture phase so we run before writing-flow's ancestor-bubble\n\t\t// keydown handlers that gate on `event.defaultPrevented`.\n\t\treturn subscribeDelegatedListener(\n\t\t\telement,\n\t\t\t'keydown',\n\t\t\tonKeyDown,\n\t\t\ttrue\n\t\t);\n\t}, [] );\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t\tclientId,\n\t\tcontext,\n\t} = props;\n\tconst {\n\t\ttagName,\n\t\tlinkTarget,\n\t\tplaceholder,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\turl,\n\t\tmetadata,\n\t} = attributes;\n\tconst width = style?.dimensions?.width;\n\n\tuseDeprecatedTextAlign( props );\n\n\tconst TagName = tagName || 'a';\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\n\t\t}\n\t}\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\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst shadowProps = useShadowProps( attributes );\n\tconst dimensionsProps = useDimensionsProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === NEW_TAB_TARGET;\n\tconst nofollow = !! rel?.includes( NOFOLLOW_REL );\n\tconst isLinkTag = 'a' === TagName;\n\n\tconst {\n\t\tcreatePageEntity,\n\t\tuserCanCreatePages,\n\t\tlockUrlControls = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst _settings = select( blockEditorStore ).getSettings();\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcreatePageEntity: _settings.__experimentalCreatePageEntity,\n\t\t\t\tuserCanCreatePages: _settings.__experimentalUserCanCreatePages,\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSelected, metadata?.bindings?.url ]\n\t);\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst page = await createPageEntity( {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: page.type,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tfunction createButtonText( searchTerm ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Create page: <mark>%s</mark>' ),\n\t\t\t\tsearchTerm\n\t\t\t),\n\t\t\t{ mark: <mark /> }\n\t\t);\n\t}\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.\n\tconst linkValue = useMemo(\n\t\t() => ( { url, opensInNewTab, nofollow } ),\n\t\t[ url, opensInNewTab, nofollow ]\n\t);\n\n\tconst useEnterRef = useEnter( { content: text, clientId } );\n\tconst mergedRef = useMergeRefs( [ useEnterRef, richTextRef ] );\n\n\tconst [ fluidTypographySettings, layout, dimensionSizes ] = useSettings(\n\t\t'typography.fluid',\n\t\t'layout',\n\t\t'dimensions.dimensionSizes'\n\t);\n\tconst dimensionPresets = useMemo( () => {\n\t\tif ( ! dimensionSizes ) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [\n\t\t\t...( dimensionSizes?.custom ?? [] ),\n\t\t\t...( dimensionSizes?.theme ?? [] ),\n\t\t\t...( dimensionSizes?.default ?? [] ),\n\t\t];\n\t}, [ dimensionSizes ] );\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\n\t// Resolve preset dimension references to their actual values.\n\tconst resolvedWidth = useMemo( () => {\n\t\tif ( ! width ) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst presetPrefix = 'var:preset|dimension|';\n\t\tif ( width.startsWith( presetPrefix ) ) {\n\t\t\tconst slug = width.slice( presetPrefix.length );\n\t\t\tconst preset = dimensionPresets?.find( ( p ) => p.slug === slug );\n\t\t\treturn preset?.size ?? width;\n\t\t}\n\t\treturn width;\n\t}, [ width, dimensionPresets ] );\n\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst hasBlockControls =\n\t\thasNonContentControls || ( isLinkTag && ! lockUrlControls );\n\tconst classes = clsx(\n\t\tblockProps.className,\n\t\tgetWidthClasses( resolvedWidth )\n\t);\n\n\tconst widthStyle = useMemo( () => {\n\t\tif ( ! width ) {\n\t\t\treturn {};\n\t\t}\n\t\tif ( isPercentageWidth( resolvedWidth ) ) {\n\t\t\treturn {\n\t\t\t\t'--wp--block-button--width': parseFloat( resolvedWidth ),\n\t\t\t};\n\t\t}\n\t\treturn dimensionsProps.style;\n\t}, [ width, resolvedWidth, dimensionsProps.style ] );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classes }\n\t\t\t\tstyle={ { ...blockProps.style, ...widthStyle } }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ mergedRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text…' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttext: removeAnchorTag( value ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\ttypographyProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t\t[ `has-custom-font-size` ]:\n\t\t\t\t\t\t\t\tblockProps.style.fontSize,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t\t...spacingProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t\t...typographyProps.style,\n\t\t\t\t\t\twritingMode: undefined,\n\t\t\t\t\t} }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ hasBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ ! isURLSet ? link : linkOff }\n\t\t\t\t\t\t\ttitle={ ! isURLSet ? __( 'Link' ) : __( 'Unlink' ) }\n\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t! isURLSet\n\t\t\t\t\t\t\t\t\t? displayShortcut.primary( 'k' )\n\t\t\t\t\t\t\t\t\t: displayShortcut.primaryShift( 'k' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ ! isURLSet ? startEditing : unlink }\n\t\t\t\t\t\t\tisActive={ isURLSet }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isLinkTag &&\n\t\t\t\tisSelected &&\n\t\t\t\t( isEditingURL || isURLSet ) &&\n\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t\t__unstableSlotName=\"__unstable-block-tools-after\"\n\t\t\t\t\t\tshift\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\tvalue={ linkValue }\n\t\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\tnofollow: newNofollow,\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tsetAttributes(\n\t\t\t\t\t\t\t\t\tgetUpdatedLinkAttributes( {\n\t\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\t\t\tnofollow: newNofollow,\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\tonRemove={ () => {\n\t\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t\t\tsettings={ LINK_SETTINGS }\n\t\t\t\t\t\t\tcreateSuggestion={\n\t\t\t\t\t\t\t\tcreatePageEntity && handleCreate\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreatePages }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={ createButtonText }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Popover>\n\t\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HTMLElementControl\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<a>)' ), value: 'a' },\n\t\t\t\t\t\t{ label: '<button>', value: 'button' },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t\t{ isLinkTag && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t\t__(\n\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),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ta: (\n\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),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"],
5
+ "mappings": "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",
6
6
  "names": ["blockEditorPrivateApis", "composePrivateApis", "blockEditorStore", "useDeprecatedTextAlign", "useBorderProps", "useColorProps", "useSpacingProps", "useShadowProps", "useDimensionsProps", "useTypographyProps", "clsx", "removeAnchorTag"]
7
7
  }
@@ -151,7 +151,7 @@ function CategoriesEdit({
151
151
  const childCategories = getCategoriesList(id);
152
152
  return [
153
153
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("option", { className: `level-${level}`, children: [
154
- Array.from({ length: level * 3 }).map(() => "\xA0"),
154
+ Array.from({ length: level * 3 }).map(() => " "),
155
155
  renderCategoryName(name),
156
156
  showPostCounts && ` (${count})`
157
157
  ] }, id),
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/categories/edit.js"],
4
4
  "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tPlaceholder,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { pin } from '@wordpress/icons';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { VisuallyHidden } from '@wordpress/ui';\nimport { store as noticeStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function CategoriesEdit( {\n\tattributes: {\n\t\tdisplayAsDropdown,\n\t\tshowHierarchy,\n\t\tshowPostCounts,\n\t\tshowOnlyTopLevel,\n\t\tshowEmpty,\n\t\tlabel,\n\t\tshowLabel,\n\t\ttaxonomy: taxonomySlug,\n\t},\n\tsetAttributes,\n\tclassName,\n\tclientId,\n} ) {\n\tconst selectId = useInstanceId( CategoriesEdit, 'blocks-category-select' );\n\n\tconst { records: allTaxonomies, isResolvingTaxonomies } = useEntityRecords(\n\t\t'root',\n\t\t'taxonomy',\n\t\t{ per_page: -1 }\n\t);\n\n\tconst taxonomies = allTaxonomies?.filter( ( t ) => t.visibility.public );\n\n\tconst taxonomy = taxonomies?.find( ( t ) => t.slug === taxonomySlug );\n\n\tconst isHierarchicalTaxonomy =\n\t\t! isResolvingTaxonomies && taxonomy?.hierarchical;\n\n\tconst query = { per_page: -1, hide_empty: ! showEmpty, context: 'view' };\n\tif ( isHierarchicalTaxonomy && showOnlyTopLevel ) {\n\t\tquery.parent = 0;\n\t}\n\n\tconst { records: categories, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomySlug,\n\t\tquery\n\t);\n\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/categories/redirection-prevented/${ clientId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst getCategoriesList = ( parentId ) => {\n\t\tif ( ! categories?.length ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( parentId === null ) {\n\t\t\treturn categories;\n\t\t}\n\t\treturn categories.filter( ( { parent } ) => parent === parentId );\n\t};\n\n\tconst toggleAttribute = ( attributeName ) => ( newValue ) =>\n\t\tsetAttributes( { [ attributeName ]: newValue } );\n\n\tconst renderCategoryName = ( name ) =>\n\t\t! name ? __( '(Untitled)' ) : decodeEntities( name ).trim();\n\n\tconst renderCategoryList = () => {\n\t\tconst parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;\n\t\tconst categoriesList = getCategoriesList( parentId );\n\t\treturn categoriesList.map( ( category ) =>\n\t\t\trenderCategoryListItem( category )\n\t\t);\n\t};\n\n\tconst renderCategoryListItem = ( category ) => {\n\t\tconst childCategories = getCategoriesList( category.id );\n\t\tconst { id, link, count, name } = category;\n\t\treturn (\n\t\t\t<li key={ id } className={ `cat-item cat-item-${ id }` }>\n\t\t\t\t<a href={ link } onClick={ showRedirectionPreventedNotice }>\n\t\t\t\t\t{ renderCategoryName( name ) }\n\t\t\t\t</a>\n\t\t\t\t{ showPostCounts && ` (${ count })` }\n\t\t\t\t{ isHierarchicalTaxonomy &&\n\t\t\t\t\tshowHierarchy &&\n\t\t\t\t\t!! childCategories.length && (\n\t\t\t\t\t\t<ul className=\"children\">\n\t\t\t\t\t\t\t{ childCategories.map( ( childCategory ) =>\n\t\t\t\t\t\t\t\trenderCategoryListItem( childCategory )\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t};\n\n\tconst renderCategoryDropdown = () => {\n\t\tconst parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;\n\t\tconst categoriesList = getCategoriesList( parentId );\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ showLabel ? (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName=\"wp-block-categories__label\"\n\t\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\t\tplaceholder={ taxonomy?.name }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t// eslint-disable-next-line jsx-a11y/label-has-associated-control\n\t\t\t\t\t<VisuallyHidden render={ <label htmlFor={ selectId } /> }>\n\t\t\t\t\t\t{ label ? label : taxonomy?.name }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t\t<select id={ selectId }>\n\t\t\t\t\t<option>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: taxonomy's singular name */\n\t\t\t\t\t\t\t__( 'Select %s' ),\n\t\t\t\t\t\t\ttaxonomy?.labels?.singular_name\n\t\t\t\t\t\t) }\n\t\t\t\t\t</option>\n\t\t\t\t\t{ categoriesList.map( ( category ) =>\n\t\t\t\t\t\trenderCategoryDropdownItem( category, 0 )\n\t\t\t\t\t) }\n\t\t\t\t</select>\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst renderCategoryDropdownItem = ( category, level ) => {\n\t\tconst { id, count, name } = category;\n\t\tconst childCategories = getCategoriesList( id );\n\t\treturn [\n\t\t\t<option key={ id } className={ `level-${ level }` }>\n\t\t\t\t{ Array.from( { length: level * 3 } ).map( () => '\\xa0' ) }\n\t\t\t\t{ renderCategoryName( name ) }\n\t\t\t\t{ showPostCounts && ` (${ count })` }\n\t\t\t</option>,\n\t\t\tisHierarchicalTaxonomy &&\n\t\t\t\tshowHierarchy &&\n\t\t\t\t!! childCategories.length &&\n\t\t\t\tchildCategories.map( ( childCategory ) =>\n\t\t\t\t\trenderCategoryDropdownItem( childCategory, level + 1 )\n\t\t\t\t),\n\t\t];\n\t};\n\n\tconst TagName =\n\t\t!! categories?.length && ! displayAsDropdown && ! isResolving\n\t\t\t? 'ul'\n\t\t\t: 'div';\n\n\tconst classes = clsx(\n\t\tclassName,\n\t\t`wp-block-categories-taxonomy-${ taxonomySlug }`,\n\t\t{\n\t\t\t'wp-block-categories-list':\n\t\t\t\t!! categories?.length && ! displayAsDropdown && ! isResolving,\n\t\t\t'wp-block-categories-dropdown':\n\t\t\t\t!! categories?.length && displayAsDropdown && ! isResolving,\n\t\t}\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<TagName { ...blockProps }>\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\ttaxonomy: 'category',\n\t\t\t\t\t\t\tdisplayAsDropdown: false,\n\t\t\t\t\t\t\tshowHierarchy: false,\n\t\t\t\t\t\t\tshowPostCounts: false,\n\t\t\t\t\t\t\tshowOnlyTopLevel: false,\n\t\t\t\t\t\t\tshowEmpty: false,\n\t\t\t\t\t\t\tshowLabel: true,\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{ Array.isArray( taxonomies ) && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => {\n\t\t\t\t\t\t\t\treturn taxonomySlug !== 'category';\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { taxonomy: 'category' } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\t\t\t\toptions={ taxonomies.map( ( t ) => ( {\n\t\t\t\t\t\t\t\t\tlabel: t.name,\n\t\t\t\t\t\t\t\t\tvalue: t.slug,\n\t\t\t\t\t\t\t\t} ) ) }\n\t\t\t\t\t\t\t\tvalue={ taxonomySlug }\n\t\t\t\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\ttaxonomy: selectedTaxonomy,\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\thasValue={ () => !! displayAsDropdown }\n\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAsDropdown: false } )\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={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAsDropdown' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ displayAsDropdown && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showLabel }\n\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showLabel: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-categories__indentation\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\t\tchecked={ showLabel }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showLabel' ) }\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\thasValue={ () => !! showPostCounts }\n\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showPostCounts: false } )\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 post counts' ) }\n\t\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showPostCounts' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isHierarchicalTaxonomy && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! showOnlyTopLevel }\n\t\t\t\t\t\t\tlabel={ __( 'Show only top level terms' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showOnlyTopLevel: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show only top level terms' ) }\n\t\t\t\t\t\t\t\tchecked={ showOnlyTopLevel }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute(\n\t\t\t\t\t\t\t\t\t'showOnlyTopLevel'\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\thasValue={ () => !! showEmpty }\n\t\t\t\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showEmpty: false } )\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 empty terms' ) }\n\t\t\t\t\t\t\tchecked={ showEmpty }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showEmpty' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isHierarchicalTaxonomy && ! showOnlyTopLevel && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! showHierarchy }\n\t\t\t\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showHierarchy: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\t\t\t\t\tchecked={ showHierarchy }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showHierarchy' ) }\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{ isResolving && (\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Terms' ) }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! isResolving && categories?.length === 0 && (\n\t\t\t\t<p>{ taxonomy.labels.no_terms }</p>\n\t\t\t) }\n\t\t\t{ ! isResolving &&\n\t\t\t\tcategories?.length > 0 &&\n\t\t\t\t( displayAsDropdown\n\t\t\t\t\t? renderCategoryDropdown()\n\t\t\t\t\t: renderCategoryList() ) }\n\t\t</TagName>\n\t);\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["noticeStore", "clsx", "ToolsPanel", "ToolsPanelItem"]
7
7
  }
@@ -44,7 +44,7 @@ function CodeEdit({
44
44
  onChange: (content) => setAttributes({ content }),
45
45
  onRemove,
46
46
  onMerge: mergeBlocks,
47
- placeholder: (0, import_i18n.__)("Write code\u2026"),
47
+ placeholder: (0, import_i18n.__)("Write code"),
48
48
  "aria-label": (0, import_i18n.__)("Code"),
49
49
  preserveWhiteSpace: true,
50
50
  __unstablePastePlainText: true,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/code/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nexport default function CodeEdit( {\n\tattributes,\n\tsetAttributes,\n\tonRemove,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n} ) {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<pre { ...blockProps }>\n\t\t\t<RichText\n\t\t\t\ttagName=\"code\"\n\t\t\t\tidentifier=\"content\"\n\t\t\t\tvalue={ attributes.content }\n\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tplaceholder={ __( 'Write code\u2026' ) }\n\t\t\t\taria-label={ __( 'Code' ) }\n\t\t\t\tpreserveWhiteSpace\n\t\t\t\t__unstablePastePlainText\n\t\t\t\t__unstableOnSplitAtDoubleLineEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t\tstyle={ { whiteSpace: 'break-spaces' } }\n\t\t\t/>\n\t\t</pre>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,0BAAwC;AACxC,oBAAiD;AAY9C;AAVY,SAAR,SAA2B;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,iBAAa,mCAAc;AACjC,SACC,4CAAC,SAAM,GAAG,YACT;AAAA,IAAC;AAAA;AAAA,MACA,SAAQ;AAAA,MACR,YAAW;AAAA,MACX,OAAQ,WAAW;AAAA,MACnB,UAAW,CAAE,YAAa,cAAe,EAAE,QAAQ,CAAE;AAAA,MACrD;AAAA,MACA,SAAU;AAAA,MACV,iBAAc,gBAAI,kBAAc;AAAA,MAChC,kBAAa,gBAAI,MAAO;AAAA,MACxB,oBAAkB;AAAA,MAClB,0BAAwB;AAAA,MACxB,kCAAmC,MAClC,sBAAmB,+BAAa,mCAAoB,CAAE,CAAE;AAAA,MAEzD,OAAQ,EAAE,YAAY,eAAe;AAAA;AAAA,EACtC,GACD;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nexport default function CodeEdit( {\n\tattributes,\n\tsetAttributes,\n\tonRemove,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n} ) {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<pre { ...blockProps }>\n\t\t\t<RichText\n\t\t\t\ttagName=\"code\"\n\t\t\t\tidentifier=\"content\"\n\t\t\t\tvalue={ attributes.content }\n\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tplaceholder={ __( 'Write code' ) }\n\t\t\t\taria-label={ __( 'Code' ) }\n\t\t\t\tpreserveWhiteSpace\n\t\t\t\t__unstablePastePlainText\n\t\t\t\t__unstableOnSplitAtDoubleLineEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t\tstyle={ { whiteSpace: 'break-spaces' } }\n\t\t\t/>\n\t\t</pre>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,0BAAwC;AACxC,oBAAiD;AAY9C;AAVY,SAAR,SAA2B;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,iBAAa,mCAAc;AACjC,SACC,4CAAC,SAAM,GAAG,YACT;AAAA,IAAC;AAAA;AAAA,MACA,SAAQ;AAAA,MACR,YAAW;AAAA,MACX,OAAQ,WAAW;AAAA,MACnB,UAAW,CAAE,YAAa,cAAe,EAAE,QAAQ,CAAE;AAAA,MACrD;AAAA,MACA,SAAU;AAAA,MACV,iBAAc,gBAAI,aAAc;AAAA,MAChC,kBAAa,gBAAI,MAAO;AAAA,MACxB,oBAAkB;AAAA,MAClB,0BAAwB;AAAA,MACxB,kCAAmC,MAClC,sBAAmB,+BAAa,mCAAoB,CAAE,CAAE;AAAA,MAEzD,OAAQ,EAAE,YAAY,eAAe;AAAA;AAAA,EACtC,GACD;AAEF;",
6
6
  "names": []
7
7
  }
@@ -54,7 +54,7 @@ var settings = {
54
54
  /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
55
55
  // translators: Preserve \n markers for line breaks
56
56
  content: (0, import_i18n.__)(
57
- "// A \u201Cblock\u201D is the abstract term used\n// to describe units of markup that\n// when composed together, form the\n// content or layout of a page.\nregisterBlockType( name, settings );"
57
+ "// A “block” is the abstract term used\n// to describe units of markup that\n// when composed together, form the\n// content or layout of a page.\nregisterBlockType( name, settings );"
58
58
  )
59
59
  /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
60
60
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/code/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A \u201Cblock\u201D is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + '\\n\\n' + attributesToMerge.content,\n\t\t};\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'content',\n\t\t\tlabel: __( 'Code' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'content' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A “block” is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + '\\n\\n' + attributesToMerge.content,\n\t\t};\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'content',\n\t\t\tlabel: __( 'Code' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'content' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,+BAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,mBAA6B;AAC7B,oBAAiD;AAKjD,wBAAsB;AACtB,kBAAiB;AACjB,mBAAqB;AACrB,kBAAiB;AACjB,wBAAuB;AACvB,yBAAuB;AAEvB,IAAM,EAAE,WAAW,QAAQ,QAAI,2BAAQ,cAAAC,WAAkB;AAEzD,IAAM,EAAE,KAAK,IAAI,aAAAD;AAIV,IAAM,WAAW;AAAA,EACvB,mBAAAE;AAAA,EACA,SAAS;AAAA,IACR,YAAY;AAAA;AAAA;AAAA,MAGX,aAAS;AAAA,QACR;AAAA,MACD;AAAA;AAAA,IAED;AAAA,EACD;AAAA,EACA,MAAO,YAAY,mBAAoB;AACtC,WAAO;AAAA,MACN,SAAS,WAAW,UAAU,SAAS,kBAAkB;AAAA,IAC1D;AAAA,EACD;AAAA,EACA,8BAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AACD;AAEA,IAAK,OAAO,0CAA2C;AACtD,WAAU,SAAU,IAAI;AAAA,IACvB;AAAA,MACC,IAAI;AAAA,MACJ,WAAO,gBAAI,MAAO;AAAA,MAClB,MAAM;AAAA,MACN,MAAM;AAAA;AAAA,IACP;AAAA,EACD;AACA,WAAU,OAAQ,IAAI;AAAA,IACrB,QAAQ,CAAE,SAAU;AAAA,EACrB;AACD;AAEO,IAAM,OAAO,UAAM,kBAAAC,SAAW,EAAE,MAAM,uBAAAC,SAAU,SAAS,CAAE;",
6
6
  "names": ["metadata", "blocksPrivateApis", "icon", "transforms", "edit", "save", "initBlock", "metadata"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/columns/utils.js"],
4
- "sourcesContent": ["/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\nexport const toWidthPrecision = ( value ) => {\n\tconst unitlessValue = parseFloat( value );\n\treturn Number.isFinite( unitlessValue )\n\t\t? parseFloat( unitlessValue.toFixed( 2 ) )\n\t\t: undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block Block object.\n * @param {number} totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\nexport function getEffectiveColumnWidth( block, totalBlockCount ) {\n\tconst { width = 100 / totalBlockCount } = block.attributes;\n\treturn toWidthPrecision( width );\n}\n\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\nexport function getTotalColumnsWidth(\n\tblocks,\n\ttotalBlockCount = blocks.length\n) {\n\treturn blocks.reduce(\n\t\t( sum, block ) =>\n\t\t\tsum + getEffectiveColumnWidth( block, totalBlockCount ),\n\t\t0\n\t);\n}\n\n/**\n * Returns an object of `clientId` \u2192 `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\nexport function getColumnWidths( blocks, totalBlockCount = blocks.length ) {\n\treturn blocks.reduce( ( accumulator, block ) => {\n\t\tconst width = getEffectiveColumnWidth( block, totalBlockCount );\n\t\treturn Object.assign( accumulator, { [ block.clientId ]: width } );\n\t}, {} );\n}\n\n/**\n * Returns an object of `clientId` \u2192 `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {number} availableWidth Maximum width to fit within.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\nexport function getRedistributedColumnWidths(\n\tblocks,\n\tavailableWidth,\n\ttotalBlockCount = blocks.length\n) {\n\tconst totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );\n\n\treturn Object.fromEntries(\n\t\tObject.entries( getColumnWidths( blocks, totalBlockCount ) ).map(\n\t\t\t( [ clientId, width ] ) => {\n\t\t\t\tconst newWidth = ( availableWidth * width ) / totalWidth;\n\t\t\t\treturn [ clientId, toWidthPrecision( newWidth ) ];\n\t\t\t}\n\t\t)\n\t);\n}\n\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\nexport function hasExplicitPercentColumnWidths( blocks ) {\n\treturn blocks.every( ( block ) => {\n\t\tconst blockWidth = block.attributes.width;\n\t\treturn Number.isFinite(\n\t\t\tblockWidth?.endsWith?.( '%' )\n\t\t\t\t? parseFloat( blockWidth )\n\t\t\t\t: blockWidth\n\t\t);\n\t} );\n}\n\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\nexport function getMappedColumnWidths( blocks, widths ) {\n\treturn blocks.map( ( block ) => ( {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...block.attributes,\n\t\t\twidth: `${ widths[ block.clientId ] }%`,\n\t\t},\n\t} ) );\n}\n\n/**\n * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?boolean} withParsing Whether value has to be parsed.\n *\n * @return {Array<number,string>} Column widths.\n */\nexport function getWidths( blocks, withParsing = true ) {\n\treturn blocks.map( ( innerColumn ) => {\n\t\tconst innerColumnWidth =\n\t\t\tinnerColumn.attributes.width || 100 / blocks.length;\n\n\t\treturn withParsing ? parseFloat( innerColumnWidth ) : innerColumnWidth;\n\t} );\n}\n\n/**\n * Returns a column width with unit.\n *\n * @param {string} width Column width.\n * @param {string} unit Column width unit.\n *\n * @return {string} Column width with unit.\n */\nexport function getWidthWithUnit( width, unit ) {\n\twidth = 0 > parseFloat( width ) ? '0' : width;\n\n\tif ( isPercentageUnit( unit ) ) {\n\t\twidth = Math.min( width, 100 );\n\t}\n\n\treturn `${ width }${ unit }`;\n}\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Column width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n"],
4
+ "sourcesContent": ["/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\nexport const toWidthPrecision = ( value ) => {\n\tconst unitlessValue = parseFloat( value );\n\treturn Number.isFinite( unitlessValue )\n\t\t? parseFloat( unitlessValue.toFixed( 2 ) )\n\t\t: undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block Block object.\n * @param {number} totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\nexport function getEffectiveColumnWidth( block, totalBlockCount ) {\n\tconst { width = 100 / totalBlockCount } = block.attributes;\n\treturn toWidthPrecision( width );\n}\n\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\nexport function getTotalColumnsWidth(\n\tblocks,\n\ttotalBlockCount = blocks.length\n) {\n\treturn blocks.reduce(\n\t\t( sum, block ) =>\n\t\t\tsum + getEffectiveColumnWidth( block, totalBlockCount ),\n\t\t0\n\t);\n}\n\n/**\n * Returns an object of `clientId` `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\nexport function getColumnWidths( blocks, totalBlockCount = blocks.length ) {\n\treturn blocks.reduce( ( accumulator, block ) => {\n\t\tconst width = getEffectiveColumnWidth( block, totalBlockCount );\n\t\treturn Object.assign( accumulator, { [ block.clientId ]: width } );\n\t}, {} );\n}\n\n/**\n * Returns an object of `clientId` `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {number} availableWidth Maximum width to fit within.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\nexport function getRedistributedColumnWidths(\n\tblocks,\n\tavailableWidth,\n\ttotalBlockCount = blocks.length\n) {\n\tconst totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );\n\n\treturn Object.fromEntries(\n\t\tObject.entries( getColumnWidths( blocks, totalBlockCount ) ).map(\n\t\t\t( [ clientId, width ] ) => {\n\t\t\t\tconst newWidth = ( availableWidth * width ) / totalWidth;\n\t\t\t\treturn [ clientId, toWidthPrecision( newWidth ) ];\n\t\t\t}\n\t\t)\n\t);\n}\n\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\nexport function hasExplicitPercentColumnWidths( blocks ) {\n\treturn blocks.every( ( block ) => {\n\t\tconst blockWidth = block.attributes.width;\n\t\treturn Number.isFinite(\n\t\t\tblockWidth?.endsWith?.( '%' )\n\t\t\t\t? parseFloat( blockWidth )\n\t\t\t\t: blockWidth\n\t\t);\n\t} );\n}\n\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\nexport function getMappedColumnWidths( blocks, widths ) {\n\treturn blocks.map( ( block ) => ( {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...block.attributes,\n\t\t\twidth: `${ widths[ block.clientId ] }%`,\n\t\t},\n\t} ) );\n}\n\n/**\n * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?boolean} withParsing Whether value has to be parsed.\n *\n * @return {Array<number,string>} Column widths.\n */\nexport function getWidths( blocks, withParsing = true ) {\n\treturn blocks.map( ( innerColumn ) => {\n\t\tconst innerColumnWidth =\n\t\t\tinnerColumn.attributes.width || 100 / blocks.length;\n\n\t\treturn withParsing ? parseFloat( innerColumnWidth ) : innerColumnWidth;\n\t} );\n}\n\n/**\n * Returns a column width with unit.\n *\n * @param {string} width Column width.\n * @param {string} unit Column width unit.\n *\n * @return {string} Column width with unit.\n */\nexport function getWidthWithUnit( width, unit ) {\n\twidth = 0 > parseFloat( width ) ? '0' : width;\n\n\tif ( isPercentageUnit( unit ) ) {\n\t\twidth = Math.min( width, 100 );\n\t}\n\n\treturn `${ width }${ unit }`;\n}\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Column width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,IAAM,mBAAmB,CAAE,UAAW;AAC5C,QAAM,gBAAgB,WAAY,KAAM;AACxC,SAAO,OAAO,SAAU,aAAc,IACnC,WAAY,cAAc,QAAS,CAAE,CAAE,IACvC;AACJ;AAUO,SAAS,wBAAyB,OAAO,iBAAkB;AACjE,QAAM,EAAE,QAAQ,MAAM,gBAAgB,IAAI,MAAM;AAChD,SAAO,iBAAkB,KAAM;AAChC;AAWO,SAAS,qBACf,QACA,kBAAkB,OAAO,QACxB;AACD,SAAO,OAAO;AAAA,IACb,CAAE,KAAK,UACN,MAAM,wBAAyB,OAAO,eAAgB;AAAA,IACvD;AAAA,EACD;AACD;AAWO,SAAS,gBAAiB,QAAQ,kBAAkB,OAAO,QAAS;AAC1E,SAAO,OAAO,OAAQ,CAAE,aAAa,UAAW;AAC/C,UAAM,QAAQ,wBAAyB,OAAO,eAAgB;AAC9D,WAAO,OAAO,OAAQ,aAAa,EAAE,CAAE,MAAM,QAAS,GAAG,MAAM,CAAE;AAAA,EAClE,GAAG,CAAC,CAAE;AACP;AAcO,SAAS,6BACf,QACA,gBACA,kBAAkB,OAAO,QACxB;AACD,QAAM,aAAa,qBAAsB,QAAQ,eAAgB;AAEjE,SAAO,OAAO;AAAA,IACb,OAAO,QAAS,gBAAiB,QAAQ,eAAgB,CAAE,EAAE;AAAA,MAC5D,CAAE,CAAE,UAAU,KAAM,MAAO;AAC1B,cAAM,WAAa,iBAAiB,QAAU;AAC9C,eAAO,CAAE,UAAU,iBAAkB,QAAS,CAAE;AAAA,MACjD;AAAA,IACD;AAAA,EACD;AACD;AAUO,SAAS,+BAAgC,QAAS;AACxD,SAAO,OAAO,MAAO,CAAE,UAAW;AACjC,UAAM,aAAa,MAAM,WAAW;AACpC,WAAO,OAAO;AAAA,MACb,YAAY,WAAY,GAAI,IACzB,WAAY,UAAW,IACvB;AAAA,IACJ;AAAA,EACD,CAAE;AACH;AAWO,SAAS,sBAAuB,QAAQ,QAAS;AACvD,SAAO,OAAO,IAAK,CAAE,WAAa;AAAA,IACjC,GAAG;AAAA,IACH,YAAY;AAAA,MACX,GAAG,MAAM;AAAA,MACT,OAAO,GAAI,OAAQ,MAAM,QAAS,CAAE;AAAA,IACrC;AAAA,EACD,EAAI;AACL;AAUO,SAAS,UAAW,QAAQ,cAAc,MAAO;AACvD,SAAO,OAAO,IAAK,CAAE,gBAAiB;AACrC,UAAM,mBACL,YAAY,WAAW,SAAS,MAAM,OAAO;AAE9C,WAAO,cAAc,WAAY,gBAAiB,IAAI;AAAA,EACvD,CAAE;AACH;AAUO,SAAS,iBAAkB,OAAO,MAAO;AAC/C,UAAQ,IAAI,WAAY,KAAM,IAAI,MAAM;AAExC,MAAK,iBAAkB,IAAK,GAAI;AAC/B,YAAQ,KAAK,IAAK,OAAO,GAAI;AAAA,EAC9B;AAEA,SAAO,GAAI,KAAM,GAAI,IAAK;AAC3B;AASO,SAAS,iBAAkB,MAAO;AACxC,SAAO,SAAS;AACjB;",
6
6
  "names": []
7
7
  }
@@ -74,7 +74,7 @@ function CommentsLegacy({
74
74
  ) }),
75
75
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...blockProps, children: [
76
76
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.Warning, { actions, children: (0, import_i18n.__)(
77
- "Comments block: You\u2019re currently using the legacy version of the block. The following is just a placeholder - the final styling will likely look different. For a better representation and more customization options, switch the block to its editable mode."
77
+ "Comments block: You’re currently using the legacy version of the block. The following is just a placeholder - the final styling will likely look different. For a better representation and more customization options, switch the block to its editable mode."
78
78
  ) }),
79
79
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_placeholder.default, { postId, postType })
80
80
  ] })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/comments/edit/comments-legacy.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport Placeholder from './placeholder';\n\nexport default function CommentsLegacy( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { postType, postId },\n} ) {\n\tconst { textAlign } = attributes;\n\n\tconst actions = [\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tkey=\"convert\"\n\t\t\tonClick={ () => void setAttributes( { legacy: false } ) }\n\t\t\tvariant=\"primary\"\n\t\t>\n\t\t\t{ __( 'Switch to editable mode' ) }\n\t\t</Button>,\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\treturn (\n\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\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning actions={ actions }>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Comments block: You\u2019re currently using the legacy version of the block. ' +\n\t\t\t\t\t\t\t'The following is just a placeholder - the final styling will likely look different. ' +\n\t\t\t\t\t\t\t'For a better representation and more customization options, ' +\n\t\t\t\t\t\t\t'switch the block to its editable mode.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t\t<Placeholder postId={ postId } postType={ postType } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport Placeholder from './placeholder';\n\nexport default function CommentsLegacy( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { postType, postId },\n} ) {\n\tconst { textAlign } = attributes;\n\n\tconst actions = [\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tkey=\"convert\"\n\t\t\tonClick={ () => void setAttributes( { legacy: false } ) }\n\t\t\tvariant=\"primary\"\n\t\t>\n\t\t\t{ __( 'Switch to editable mode' ) }\n\t\t</Button>,\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\treturn (\n\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\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning actions={ actions }>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Comments block: You’re currently using the legacy version of the block. ' +\n\t\t\t\t\t\t\t'The following is just a placeholder - the final styling will likely look different. ' +\n\t\t\t\t\t\t\t'For a better representation and more customization options, ' +\n\t\t\t\t\t\t\t'switch the block to its editable mode.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t\t<Placeholder postId={ postId } postType={ postType } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,0BAKO;AACP,kBAAmB;AACnB,wBAAuB;AAKvB,yBAAwB;AAUtB;AARa,SAAR,eAAiC;AAAA,EACvC;AAAA,EACA;AAAA,EACA,SAAS,EAAE,UAAU,OAAO;AAC7B,GAAI;AACH,QAAM,EAAE,UAAU,IAAI;AAEtB,QAAM,UAAU;AAAA,IACf;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QAErB,SAAU,MAAM,KAAK,cAAe,EAAE,QAAQ,MAAM,CAAE;AAAA,QACtD,SAAQ;AAAA,QAEN,8BAAI,yBAA0B;AAAA;AAAA,MAJ5B;AAAA,IAKL;AAAA,EACD;AAEA,QAAM,iBAAa,mCAAe;AAAA,IACjC,eAAW,YAAAA,SAAM;AAAA,MAChB,CAAE,kBAAmB,SAAU,EAAG,GAAG;AAAA,IACtC,CAAE;AAAA,EACH,CAAE;AAEF,SACC,4EACC;AAAA,gDAAC,qCAAc,OAAM,SACpB;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ;AAAA,QACR,UAAW,CAAE,cAAe;AAC3B,wBAAe,EAAE,WAAW,UAAU,CAAE;AAAA,QACzC;AAAA;AAAA,IACD,GACD;AAAA,IAEA,6CAAC,SAAM,GAAG,YACT;AAAA,kDAAC,+BAAQ,SACN;AAAA,QACD;AAAA,MAID,GACD;AAAA,MACA,4CAAC,mBAAAC,SAAA,EAAY,QAAkB,UAAsB;AAAA,OACtD;AAAA,KACD;AAEF;",
6
6
  "names": ["clsx", "Placeholder"]
7
7
  }
@@ -54,12 +54,12 @@ function PostCommentsPlaceholder({ postType, postId }) {
54
54
  }),
55
55
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "navigation", children: [
56
56
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "alignleft", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("a", { href: "#top", children: [
57
- "\xAB ",
57
+ "« ",
58
58
  (0, import_i18n.__)("Older Comments")
59
59
  ] }) }),
60
60
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "alignright", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("a", { href: "#top", children: [
61
61
  (0, import_i18n.__)("Newer Comments"),
62
- " \xBB"
62
+ " »"
63
63
  ] }) })
64
64
  ] }),
65
65
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ol", { className: "commentlist", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { className: "comment even thread-even depth-1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("article", { className: "comment-body", children: [
@@ -130,12 +130,12 @@ function PostCommentsPlaceholder({ postType, postId }) {
130
130
  ] }) }) }),
131
131
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "navigation", children: [
132
132
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "alignleft", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("a", { href: "#top", children: [
133
- "\xAB ",
133
+ "« ",
134
134
  (0, import_i18n.__)("Older Comments")
135
135
  ] }) }),
136
136
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "alignright", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("a", { href: "#top", children: [
137
137
  (0, import_i18n.__)("Newer Comments"),
138
- " \xBB"
138
+ " »"
139
139
  ] }) })
140
140
  ] }),
141
141
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_form.default, { postId, postType })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/comments/edit/placeholder.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport CommentsForm from '../../post-comments-form/form';\n\nexport default function PostCommentsPlaceholder( { postType, postId } ) {\n\tlet [ postTitle ] = useEntityProp( 'postType', postType, 'title', postId );\n\tpostTitle = postTitle || __( 'Post Title' );\n\n\tconst avatarURL = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t.__experimentalDiscussionSettings?.avatarURL,\n\t\t[]\n\t);\n\n\treturn (\n\t\t<div className=\"wp-block-comments__legacy-placeholder\" inert=\"true\">\n\t\t\t<h3>\n\t\t\t\t{\n\t\t\t\t\t/* translators: %s: Post title. */\n\t\t\t\t\tsprintf( __( 'One response to %s' ), postTitle )\n\t\t\t\t}\n\t\t\t</h3>\n\n\t\t\t<div className=\"navigation\">\n\t\t\t\t<div className=\"alignleft\">\n\t\t\t\t\t<a href=\"#top\">\u00AB { __( 'Older Comments' ) }</a>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"alignright\">\n\t\t\t\t\t<a href=\"#top\">{ __( 'Newer Comments' ) } \u00BB</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<ol className=\"commentlist\">\n\t\t\t\t<li className=\"comment even thread-even depth-1\">\n\t\t\t\t\t<article className=\"comment-body\">\n\t\t\t\t\t\t<footer className=\"comment-meta\">\n\t\t\t\t\t\t\t<div className=\"comment-author vcard\">\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\talt={ __( 'Commenter Avatar' ) }\n\t\t\t\t\t\t\t\t\tsrc={ avatarURL }\n\t\t\t\t\t\t\t\t\tclassName=\"avatar avatar-32 photo\"\n\t\t\t\t\t\t\t\t\theight=\"32\"\n\t\t\t\t\t\t\t\t\twidth=\"32\"\n\t\t\t\t\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<b className=\"fn\">\n\t\t\t\t\t\t\t\t\t<a href=\"#top\" className=\"url\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'A WordPress Commenter' ) }\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</b>{ ' ' }\n\t\t\t\t\t\t\t\t<span className=\"says\">{ __( 'says' ) }:</span>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className=\"comment-metadata\">\n\t\t\t\t\t\t\t\t<a href=\"#top\">\n\t\t\t\t\t\t\t\t\t<time dateTime=\"2000-01-01T00:00:00+00:00\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'January 1, 2000 at 00:00 am' ) }\n\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t</a>{ ' ' }\n\t\t\t\t\t\t\t\t<span className=\"edit-link\">\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\tclassName=\"comment-edit-link\"\n\t\t\t\t\t\t\t\t\t\thref=\"#top\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</footer>\n\n\t\t\t\t\t\t<div className=\"comment-content\">\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t{ __( 'Hi, this is a comment.' ) }\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'Commenter avatars come from <a>Gravatar</a>.'\n\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\t\ta: (\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https://gravatar.com/\" />\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</p>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className=\"reply\">\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"comment-reply-link\"\n\t\t\t\t\t\t\t\thref=\"#top\"\n\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t'Reply to A WordPress Commenter'\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{\n\t\t\t\t\t\t\t\t\t/* translators: Comment reply button text. */\n\t\t\t\t\t\t\t\t\t_x( 'Reply', 'verb' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</article>\n\t\t\t\t</li>\n\t\t\t</ol>\n\n\t\t\t<div className=\"navigation\">\n\t\t\t\t<div className=\"alignleft\">\n\t\t\t\t\t<a href=\"#top\">\u00AB { __( 'Older Comments' ) }</a>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"alignright\">\n\t\t\t\t\t<a href=\"#top\">{ __( 'Newer Comments' ) } \u00BB</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<CommentsForm postId={ postId } postType={ postType } />\n\t\t</div>\n\t);\n}\n"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport CommentsForm from '../../post-comments-form/form';\n\nexport default function PostCommentsPlaceholder( { postType, postId } ) {\n\tlet [ postTitle ] = useEntityProp( 'postType', postType, 'title', postId );\n\tpostTitle = postTitle || __( 'Post Title' );\n\n\tconst avatarURL = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t.__experimentalDiscussionSettings?.avatarURL,\n\t\t[]\n\t);\n\n\treturn (\n\t\t<div className=\"wp-block-comments__legacy-placeholder\" inert=\"true\">\n\t\t\t<h3>\n\t\t\t\t{\n\t\t\t\t\t/* translators: %s: Post title. */\n\t\t\t\t\tsprintf( __( 'One response to %s' ), postTitle )\n\t\t\t\t}\n\t\t\t</h3>\n\n\t\t\t<div className=\"navigation\">\n\t\t\t\t<div className=\"alignleft\">\n\t\t\t\t\t<a href=\"#top\" { __( 'Older Comments' ) }</a>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"alignright\">\n\t\t\t\t\t<a href=\"#top\">{ __( 'Newer Comments' ) } »</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<ol className=\"commentlist\">\n\t\t\t\t<li className=\"comment even thread-even depth-1\">\n\t\t\t\t\t<article className=\"comment-body\">\n\t\t\t\t\t\t<footer className=\"comment-meta\">\n\t\t\t\t\t\t\t<div className=\"comment-author vcard\">\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\talt={ __( 'Commenter Avatar' ) }\n\t\t\t\t\t\t\t\t\tsrc={ avatarURL }\n\t\t\t\t\t\t\t\t\tclassName=\"avatar avatar-32 photo\"\n\t\t\t\t\t\t\t\t\theight=\"32\"\n\t\t\t\t\t\t\t\t\twidth=\"32\"\n\t\t\t\t\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<b className=\"fn\">\n\t\t\t\t\t\t\t\t\t<a href=\"#top\" className=\"url\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'A WordPress Commenter' ) }\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</b>{ ' ' }\n\t\t\t\t\t\t\t\t<span className=\"says\">{ __( 'says' ) }:</span>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className=\"comment-metadata\">\n\t\t\t\t\t\t\t\t<a href=\"#top\">\n\t\t\t\t\t\t\t\t\t<time dateTime=\"2000-01-01T00:00:00+00:00\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'January 1, 2000 at 00:00 am' ) }\n\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t</a>{ ' ' }\n\t\t\t\t\t\t\t\t<span className=\"edit-link\">\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\tclassName=\"comment-edit-link\"\n\t\t\t\t\t\t\t\t\t\thref=\"#top\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</footer>\n\n\t\t\t\t\t\t<div className=\"comment-content\">\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t{ __( 'Hi, this is a comment.' ) }\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'Commenter avatars come from <a>Gravatar</a>.'\n\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\t\ta: (\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https://gravatar.com/\" />\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</p>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className=\"reply\">\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"comment-reply-link\"\n\t\t\t\t\t\t\t\thref=\"#top\"\n\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t'Reply to A WordPress Commenter'\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{\n\t\t\t\t\t\t\t\t\t/* translators: Comment reply button text. */\n\t\t\t\t\t\t\t\t\t_x( 'Reply', 'verb' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</article>\n\t\t\t\t</li>\n\t\t\t</ol>\n\n\t\t\t<div className=\"navigation\">\n\t\t\t\t<div className=\"alignleft\">\n\t\t\t\t\t<a href=\"#top\" { __( 'Older Comments' ) }</a>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"alignright\">\n\t\t\t\t\t<a href=\"#top\">{ __( 'Newer Comments' ) } »</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<CommentsForm postId={ postId } postType={ postType } />\n\t\t</div>\n\t);\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["blockEditorStore", "CommentsForm"]
7
7
  }
@@ -28,8 +28,8 @@ var import_block_editor = require("@wordpress/block-editor");
28
28
  var import_jsx_runtime = require("react/jsx-runtime");
29
29
  var arrowMap = {
30
30
  none: "",
31
- arrow: "\u2192",
32
- chevron: "\xBB"
31
+ arrow: "",
32
+ chevron: "»"
33
33
  };
34
34
  function CommentsPaginationNextEdit({
35
35
  attributes: { label },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/comments-pagination-next/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '\u2192',\n\tchevron: '\u00BB',\n};\n\nexport default function CommentsPaginationNextEdit( {\n\tattributes: { label },\n\tsetAttributes,\n\tcontext: { 'comments/paginationArrow': paginationArrow },\n} ) {\n\tconst displayArrow = arrowMap[ paginationArrow ];\n\treturn (\n\t\t<a\n\t\t\thref=\"#comments-pagination-next-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t{ ...useBlockProps() }\n\t\t>\n\t\t\t<PlainText\n\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\ttagName=\"span\"\n\t\t\t\taria-label={ __( 'Newer comments page link' ) }\n\t\t\t\tplaceholder={ __( 'Newer Comments' ) }\n\t\t\t\tvalue={ label }\n\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ displayArrow && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={ `wp-block-comments-pagination-next-arrow is-arrow-${ paginationArrow }` }\n\t\t\t\t>\n\t\t\t\t\t{ displayArrow }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</a>\n\t);\n}\n"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '',\n\tchevron: '»',\n};\n\nexport default function CommentsPaginationNextEdit( {\n\tattributes: { label },\n\tsetAttributes,\n\tcontext: { 'comments/paginationArrow': paginationArrow },\n} ) {\n\tconst displayArrow = arrowMap[ paginationArrow ];\n\treturn (\n\t\t<a\n\t\t\thref=\"#comments-pagination-next-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t{ ...useBlockProps() }\n\t\t>\n\t\t\t<PlainText\n\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\ttagName=\"span\"\n\t\t\t\taria-label={ __( 'Newer comments page link' ) }\n\t\t\t\tplaceholder={ __( 'Newer Comments' ) }\n\t\t\t\tvalue={ label }\n\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ displayArrow && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={ `wp-block-comments-pagination-next-arrow is-arrow-${ paginationArrow }` }\n\t\t\t\t>\n\t\t\t\t\t{ displayArrow }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</a>\n\t);\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,0BAAyC;AAevC;AAbF,IAAM,WAAW;AAAA,EAChB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AACV;AAEe,SAAR,2BAA6C;AAAA,EACnD,YAAY,EAAE,MAAM;AAAA,EACpB;AAAA,EACA,SAAS,EAAE,4BAA4B,gBAAgB;AACxD,GAAI;AACH,QAAM,eAAe,SAAU,eAAgB;AAC/C,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,SAAU,CAAE,UAAW,MAAM,eAAe;AAAA,MAC1C,OAAG,mCAAc;AAAA,MAEnB;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,uBAAwB;AAAA,YACxB,SAAQ;AAAA,YACR,kBAAa,gBAAI,0BAA2B;AAAA,YAC5C,iBAAc,gBAAI,gBAAiB;AAAA,YACnC,OAAQ;AAAA,YACR,UAAW,CAAE,aACZ,cAAe,EAAE,OAAO,SAAS,CAAE;AAAA;AAAA,QAErC;AAAA,QACE,gBACD;AAAA,UAAC;AAAA;AAAA,YACA,WAAY,oDAAqD,eAAgB;AAAA,YAE/E;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EAEF;AAEF;",
6
6
  "names": []
7
7
  }
@@ -28,8 +28,8 @@ var import_block_editor = require("@wordpress/block-editor");
28
28
  var import_jsx_runtime = require("react/jsx-runtime");
29
29
  var arrowMap = {
30
30
  none: "",
31
- arrow: "\u2190",
32
- chevron: "\xAB"
31
+ arrow: "",
32
+ chevron: "«"
33
33
  };
34
34
  function CommentsPaginationPreviousEdit({
35
35
  attributes: { label },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/comments-pagination-previous/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '\u2190',\n\tchevron: '\u00AB',\n};\n\nexport default function CommentsPaginationPreviousEdit( {\n\tattributes: { label },\n\tsetAttributes,\n\tcontext: { 'comments/paginationArrow': paginationArrow },\n} ) {\n\tconst displayArrow = arrowMap[ paginationArrow ];\n\treturn (\n\t\t<a\n\t\t\thref=\"#comments-pagination-previous-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t{ ...useBlockProps() }\n\t\t>\n\t\t\t{ displayArrow && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={ `wp-block-comments-pagination-previous-arrow is-arrow-${ paginationArrow }` }\n\t\t\t\t>\n\t\t\t\t\t{ displayArrow }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t<PlainText\n\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\ttagName=\"span\"\n\t\t\t\taria-label={ __( 'Older comments page link' ) }\n\t\t\t\tplaceholder={ __( 'Older Comments' ) }\n\t\t\t\tvalue={ label }\n\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</a>\n\t);\n}\n"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '',\n\tchevron: '«',\n};\n\nexport default function CommentsPaginationPreviousEdit( {\n\tattributes: { label },\n\tsetAttributes,\n\tcontext: { 'comments/paginationArrow': paginationArrow },\n} ) {\n\tconst displayArrow = arrowMap[ paginationArrow ];\n\treturn (\n\t\t<a\n\t\t\thref=\"#comments-pagination-previous-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t{ ...useBlockProps() }\n\t\t>\n\t\t\t{ displayArrow && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={ `wp-block-comments-pagination-previous-arrow is-arrow-${ paginationArrow }` }\n\t\t\t\t>\n\t\t\t\t\t{ displayArrow }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t<PlainText\n\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\ttagName=\"span\"\n\t\t\t\taria-label={ __( 'Older comments page link' ) }\n\t\t\t\tplaceholder={ __( 'Older Comments' ) }\n\t\t\t\tvalue={ label }\n\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</a>\n\t);\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,0BAAyC;AAevC;AAbF,IAAM,WAAW;AAAA,EAChB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AACV;AAEe,SAAR,+BAAiD;AAAA,EACvD,YAAY,EAAE,MAAM;AAAA,EACpB;AAAA,EACA,SAAS,EAAE,4BAA4B,gBAAgB;AACxD,GAAI;AACH,QAAM,eAAe,SAAU,eAAgB;AAC/C,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,SAAU,CAAE,UAAW,MAAM,eAAe;AAAA,MAC1C,OAAG,mCAAc;AAAA,MAEjB;AAAA,wBACD;AAAA,UAAC;AAAA;AAAA,YACA,WAAY,wDAAyD,eAAgB;AAAA,YAEnF;AAAA;AAAA,QACH;AAAA,QAED;AAAA,UAAC;AAAA;AAAA,YACA,uBAAwB;AAAA,YACxB,SAAQ;AAAA,YACR,kBAAa,gBAAI,0BAA2B;AAAA,YAC5C,iBAAc,gBAAI,gBAAiB;AAAA,YACnC,OAAQ;AAAA,YACR,UAAW,CAAE,aACZ,cAAe,EAAE,OAAO,SAAS,CAAE;AAAA;AAAA,QAErC;AAAA;AAAA;AAAA,EACD;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1642,7 +1642,7 @@ var v3 = {
1642
1642
  }
1643
1643
  },
1644
1644
  fontSize: "large",
1645
- placeholder: (0, import_i18n.__)("Write title\u2026")
1645
+ placeholder: (0, import_i18n.__)("Write title")
1646
1646
  })
1647
1647
  ]
1648
1648
  ];
@@ -1724,7 +1724,7 @@ var v2 = {
1724
1724
  }
1725
1725
  },
1726
1726
  fontSize: "large",
1727
- placeholder: (0, import_i18n.__)("Write title\u2026")
1727
+ placeholder: (0, import_i18n.__)("Write title")
1728
1728
  })
1729
1729
  ]
1730
1730
  ];
@@ -1781,7 +1781,7 @@ var v1 = {
1781
1781
  }
1782
1782
  },
1783
1783
  fontSize: "large",
1784
- placeholder: (0, import_i18n.__)("Write title\u2026")
1784
+ placeholder: (0, import_i18n.__)("Write title")
1785
1785
  })
1786
1786
  ]
1787
1787
  ];