@wordpress/block-library 11.0.0 → 11.0.2-next.v.202609171837.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 (434) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +7 -7
  3. package/build/archives/edit.cjs.map +3 -3
  4. package/build/audio/edit.cjs.map +3 -3
  5. package/build/avatar/hooks.cjs.map +2 -2
  6. package/build/button/edit.cjs.map +2 -2
  7. package/build/categories/edit.cjs.map +3 -3
  8. package/build/code/block.json +1 -0
  9. package/build/code/save.cjs.map +2 -2
  10. package/build/comment-template/hooks.cjs.map +2 -2
  11. package/build/cover/edit/index.cjs.map +2 -2
  12. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  13. package/build/cover/transforms.cjs.map +2 -2
  14. package/build/details/block.json +1 -0
  15. package/build/details/index.cjs.map +2 -2
  16. package/build/embed/embed-controls.cjs.map +2 -2
  17. package/build/file/deprecated.cjs.map +2 -2
  18. package/build/file/edit.cjs.map +2 -2
  19. package/build/file/inspector.cjs.map +3 -3
  20. package/build/file/save.cjs.map +2 -2
  21. package/build/footnotes/block.json +1 -0
  22. package/build/footnotes/edit.cjs.map +2 -2
  23. package/build/gallery/dynamic-gallery.cjs.map +3 -3
  24. package/build/gallery/edit.cjs +64 -37
  25. package/build/gallery/edit.cjs.map +3 -3
  26. package/build/gallery/{flex-styles.cjs → gallery-styles.cjs} +31 -32
  27. package/build/gallery/gallery-styles.cjs.map +7 -0
  28. package/build/gallery/responsive-styles.cjs +27 -5
  29. package/build/gallery/responsive-styles.cjs.map +2 -2
  30. package/build/heading/block.json +2 -0
  31. package/build/heading/index.cjs.map +2 -2
  32. package/build/html/modal.cjs +3 -6
  33. package/build/html/modal.cjs.map +2 -2
  34. package/build/image/edit.cjs.map +2 -2
  35. package/build/image/image.cjs.map +2 -2
  36. package/build/index.cjs.map +2 -2
  37. package/build/latest-comments/edit.cjs.map +3 -3
  38. package/build/latest-posts/edit.cjs.map +2 -2
  39. package/build/list/ordered-list-settings.cjs.map +3 -3
  40. package/build/list-item/hooks/use-enter.cjs.map +2 -2
  41. package/build/math/block.json +2 -0
  42. package/build/math/deprecated.cjs +29 -12
  43. package/build/math/deprecated.cjs.map +2 -2
  44. package/build/math/edit.cjs +67 -46
  45. package/build/math/edit.cjs.map +2 -2
  46. package/build/math/save.cjs +2 -2
  47. package/build/math/save.cjs.map +2 -2
  48. package/build/media-text/constants.cjs +3 -0
  49. package/build/media-text/constants.cjs.map +2 -2
  50. package/build/media-text/deprecated.cjs.map +2 -2
  51. package/build/media-text/edit.cjs +40 -0
  52. package/build/media-text/edit.cjs.map +3 -3
  53. package/build/media-text/image-fill.cjs.map +2 -2
  54. package/build/media-text/media-container.cjs +3 -3
  55. package/build/media-text/media-container.cjs.map +2 -2
  56. package/build/navigation/edit/index.cjs.map +2 -2
  57. package/build/navigation/edit/menu-inspector-controls.cjs.map +2 -2
  58. package/build/navigation/edit/overlay-template-part-selector.cjs.map +3 -3
  59. package/build/navigation/edit/responsive-wrapper.cjs.map +2 -2
  60. package/build/navigation/edit/use-generate-default-navigation-title.cjs.map +2 -2
  61. package/build/navigation/view.cjs +2 -2
  62. package/build/navigation/view.cjs.map +2 -2
  63. package/build/navigation-link/edit.cjs.map +2 -2
  64. package/build/navigation-link/shared/invalid-draft-display.cjs.map +2 -2
  65. package/build/navigation-submenu/edit.cjs.map +2 -2
  66. package/build/paragraph/block.json +1 -0
  67. package/build/paragraph/edit.cjs.map +2 -2
  68. package/build/paragraph/index.cjs +6 -0
  69. package/build/paragraph/index.cjs.map +3 -3
  70. package/build/playlist/edit.cjs +2 -1
  71. package/build/playlist/edit.cjs.map +3 -3
  72. package/build/post-author/edit.cjs.map +3 -3
  73. package/build/post-author-name/edit.cjs.map +2 -2
  74. package/build/post-content/block.json +1 -0
  75. package/build/post-date/edit.cjs.map +2 -2
  76. package/build/post-excerpt/block.json +1 -0
  77. package/build/post-excerpt/edit.cjs.map +2 -2
  78. package/build/post-featured-image/edit.cjs.map +2 -2
  79. package/build/post-navigation-link/edit.cjs.map +3 -3
  80. package/build/post-time-to-read/edit.cjs.map +2 -2
  81. package/build/pullquote/deprecated.cjs.map +2 -2
  82. package/build/query/deprecated.cjs.map +2 -2
  83. package/build/query/edit/inspector-controls/index.cjs.map +3 -3
  84. package/build/query/edit/inspector-controls/order-control.cjs.map +3 -3
  85. package/build/query/edit/inspector-controls/sticky-control.cjs.map +3 -3
  86. package/build/query/view.cjs.map +2 -2
  87. package/build/query-title/use-archive-label.cjs.map +2 -2
  88. package/build/quote/deprecated.cjs.map +2 -2
  89. package/build/quote/transforms.cjs.map +2 -2
  90. package/build/search/edit.cjs.map +3 -3
  91. package/build/separator/edit.cjs.map +3 -3
  92. package/build/social-links/edit.cjs.map +3 -3
  93. package/build/table/state.cjs.map +2 -2
  94. package/build/table-of-contents/edit.cjs.map +3 -3
  95. package/build/table-of-contents/utils.cjs.map +2 -2
  96. package/build/tabs/use-tab-actions.cjs.map +2 -2
  97. package/build/tag-cloud/edit.cjs.map +3 -3
  98. package/build/template-part/edit/advanced-controls.cjs.map +3 -3
  99. package/build/template-part/edit/import-controls.cjs.map +3 -3
  100. package/build/template-part/edit/index.cjs.map +2 -2
  101. package/build/template-part/edit/inner-blocks.cjs.map +2 -2
  102. package/build/template-part/edit/placeholder.cjs.map +2 -2
  103. package/build/term-count/use-term-count.cjs.map +2 -2
  104. package/build/term-description/use-term-description.cjs.map +2 -2
  105. package/build/term-name/use-term-name.cjs.map +2 -2
  106. package/build/terms-query/edit/inspector-controls/index.cjs.map +2 -2
  107. package/build/terms-query/edit/inspector-controls/inherit-control.cjs.map +2 -2
  108. package/build/terms-query/edit/inspector-controls/order-control.cjs.map +3 -3
  109. package/build/terms-query/edit/inspector-controls/taxonomy-control.cjs.map +3 -3
  110. package/build/utils/hooks.cjs.map +2 -2
  111. package/build/utils/media-control.cjs +5 -1
  112. package/build/utils/media-control.cjs.map +2 -2
  113. package/build/utils/poster-image.cjs.map +2 -2
  114. package/build/verse/block.json +1 -0
  115. package/build/video/edit-common-settings.cjs.map +3 -3
  116. package/build/video/tracks-editor.cjs.map +3 -3
  117. package/build-module/archives/edit.mjs +2 -2
  118. package/build-module/archives/edit.mjs.map +2 -2
  119. package/build-module/audio/edit.mjs +2 -2
  120. package/build-module/audio/edit.mjs.map +2 -2
  121. package/build-module/avatar/hooks.mjs.map +2 -2
  122. package/build-module/button/edit.mjs.map +2 -2
  123. package/build-module/categories/edit.mjs +2 -2
  124. package/build-module/categories/edit.mjs.map +2 -2
  125. package/build-module/code/block.json +1 -0
  126. package/build-module/code/save.mjs.map +2 -2
  127. package/build-module/comment-template/hooks.mjs.map +2 -2
  128. package/build-module/cover/edit/index.mjs.map +2 -2
  129. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  130. package/build-module/cover/transforms.mjs.map +2 -2
  131. package/build-module/details/block.json +1 -0
  132. package/build-module/details/index.mjs.map +2 -2
  133. package/build-module/embed/embed-controls.mjs.map +2 -2
  134. package/build-module/file/deprecated.mjs.map +2 -2
  135. package/build-module/file/edit.mjs.map +2 -2
  136. package/build-module/file/inspector.mjs +2 -2
  137. package/build-module/file/inspector.mjs.map +2 -2
  138. package/build-module/file/save.mjs.map +2 -2
  139. package/build-module/footnotes/block.json +1 -0
  140. package/build-module/footnotes/edit.mjs.map +2 -2
  141. package/build-module/gallery/dynamic-gallery.mjs +2 -2
  142. package/build-module/gallery/dynamic-gallery.mjs.map +2 -2
  143. package/build-module/gallery/edit.mjs +67 -40
  144. package/build-module/gallery/edit.mjs.map +2 -2
  145. package/build-module/gallery/{flex-styles.mjs → gallery-styles.mjs} +29 -30
  146. package/build-module/gallery/gallery-styles.mjs.map +7 -0
  147. package/build-module/gallery/responsive-styles.mjs +25 -4
  148. package/build-module/gallery/responsive-styles.mjs.map +2 -2
  149. package/build-module/heading/block.json +2 -0
  150. package/build-module/heading/index.mjs.map +2 -2
  151. package/build-module/html/modal.mjs +3 -6
  152. package/build-module/html/modal.mjs.map +2 -2
  153. package/build-module/image/edit.mjs.map +2 -2
  154. package/build-module/image/image.mjs.map +2 -2
  155. package/build-module/index.mjs.map +2 -2
  156. package/build-module/latest-comments/edit.mjs +2 -2
  157. package/build-module/latest-comments/edit.mjs.map +2 -2
  158. package/build-module/latest-posts/edit.mjs.map +2 -2
  159. package/build-module/list/ordered-list-settings.mjs +2 -2
  160. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  161. package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
  162. package/build-module/math/block.json +2 -0
  163. package/build-module/math/deprecated.mjs +29 -12
  164. package/build-module/math/deprecated.mjs.map +2 -2
  165. package/build-module/math/edit.mjs +68 -47
  166. package/build-module/math/edit.mjs.map +2 -2
  167. package/build-module/math/save.mjs +2 -2
  168. package/build-module/math/save.mjs.map +2 -2
  169. package/build-module/media-text/constants.mjs +2 -0
  170. package/build-module/media-text/constants.mjs.map +2 -2
  171. package/build-module/media-text/deprecated.mjs.map +2 -2
  172. package/build-module/media-text/edit.mjs +42 -1
  173. package/build-module/media-text/edit.mjs.map +2 -2
  174. package/build-module/media-text/image-fill.mjs.map +2 -2
  175. package/build-module/media-text/media-container.mjs +1 -1
  176. package/build-module/media-text/media-container.mjs.map +2 -2
  177. package/build-module/navigation/edit/index.mjs.map +2 -2
  178. package/build-module/navigation/edit/menu-inspector-controls.mjs.map +2 -2
  179. package/build-module/navigation/edit/overlay-template-part-selector.mjs +2 -2
  180. package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +2 -2
  181. package/build-module/navigation/edit/responsive-wrapper.mjs.map +2 -2
  182. package/build-module/navigation/edit/use-generate-default-navigation-title.mjs.map +2 -2
  183. package/build-module/navigation/view.mjs +2 -2
  184. package/build-module/navigation/view.mjs.map +2 -2
  185. package/build-module/navigation-link/edit.mjs.map +2 -2
  186. package/build-module/navigation-link/shared/invalid-draft-display.mjs.map +2 -2
  187. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  188. package/build-module/paragraph/block.json +1 -0
  189. package/build-module/paragraph/edit.mjs.map +2 -2
  190. package/build-module/paragraph/index.mjs +6 -0
  191. package/build-module/paragraph/index.mjs.map +2 -2
  192. package/build-module/playlist/edit.mjs +5 -4
  193. package/build-module/playlist/edit.mjs.map +2 -2
  194. package/build-module/post-author/edit.mjs +2 -2
  195. package/build-module/post-author/edit.mjs.map +2 -2
  196. package/build-module/post-author-name/edit.mjs.map +2 -2
  197. package/build-module/post-content/block.json +1 -0
  198. package/build-module/post-date/edit.mjs.map +2 -2
  199. package/build-module/post-excerpt/block.json +1 -0
  200. package/build-module/post-excerpt/edit.mjs.map +2 -2
  201. package/build-module/post-featured-image/edit.mjs.map +2 -2
  202. package/build-module/post-navigation-link/edit.mjs +2 -2
  203. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  204. package/build-module/post-time-to-read/edit.mjs.map +2 -2
  205. package/build-module/pullquote/deprecated.mjs.map +2 -2
  206. package/build-module/query/deprecated.mjs.map +2 -2
  207. package/build-module/query/edit/inspector-controls/index.mjs +2 -2
  208. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  209. package/build-module/query/edit/inspector-controls/order-control.mjs +2 -2
  210. package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
  211. package/build-module/query/edit/inspector-controls/sticky-control.mjs +2 -2
  212. package/build-module/query/edit/inspector-controls/sticky-control.mjs.map +2 -2
  213. package/build-module/query/view.mjs.map +2 -2
  214. package/build-module/query-title/use-archive-label.mjs.map +2 -2
  215. package/build-module/quote/deprecated.mjs.map +2 -2
  216. package/build-module/quote/transforms.mjs.map +2 -2
  217. package/build-module/search/edit.mjs +3 -3
  218. package/build-module/search/edit.mjs.map +2 -2
  219. package/build-module/separator/edit.mjs +5 -2
  220. package/build-module/separator/edit.mjs.map +2 -2
  221. package/build-module/social-links/edit.mjs +2 -2
  222. package/build-module/social-links/edit.mjs.map +2 -2
  223. package/build-module/table/state.mjs.map +2 -2
  224. package/build-module/table-of-contents/edit.mjs +2 -2
  225. package/build-module/table-of-contents/edit.mjs.map +2 -2
  226. package/build-module/table-of-contents/utils.mjs.map +2 -2
  227. package/build-module/tabs/use-tab-actions.mjs.map +2 -2
  228. package/build-module/tag-cloud/edit.mjs +2 -2
  229. package/build-module/tag-cloud/edit.mjs.map +2 -2
  230. package/build-module/template-part/edit/advanced-controls.mjs +5 -2
  231. package/build-module/template-part/edit/advanced-controls.mjs.map +2 -2
  232. package/build-module/template-part/edit/import-controls.mjs +2 -2
  233. package/build-module/template-part/edit/import-controls.mjs.map +2 -2
  234. package/build-module/template-part/edit/index.mjs.map +2 -2
  235. package/build-module/template-part/edit/inner-blocks.mjs.map +2 -2
  236. package/build-module/template-part/edit/placeholder.mjs.map +2 -2
  237. package/build-module/term-count/use-term-count.mjs.map +2 -2
  238. package/build-module/term-description/use-term-description.mjs.map +2 -2
  239. package/build-module/term-name/use-term-name.mjs.map +2 -2
  240. package/build-module/terms-query/edit/inspector-controls/index.mjs.map +2 -2
  241. package/build-module/terms-query/edit/inspector-controls/inherit-control.mjs.map +2 -2
  242. package/build-module/terms-query/edit/inspector-controls/order-control.mjs +2 -2
  243. package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
  244. package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs +2 -2
  245. package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs.map +2 -2
  246. package/build-module/utils/hooks.mjs.map +2 -2
  247. package/build-module/utils/media-control.mjs +5 -1
  248. package/build-module/utils/media-control.mjs.map +2 -2
  249. package/build-module/utils/poster-image.mjs.map +2 -2
  250. package/build-module/verse/block.json +1 -0
  251. package/build-module/video/edit-common-settings.mjs +2 -2
  252. package/build-module/video/edit-common-settings.mjs.map +2 -2
  253. package/build-module/video/tracks-editor.mjs +2 -2
  254. package/build-module/video/tracks-editor.mjs.map +2 -2
  255. package/build-style/button/style-rtl.css +2 -1
  256. package/build-style/button/style.css +2 -1
  257. package/build-style/columns/style-rtl.css +1 -1
  258. package/build-style/columns/style.css +1 -1
  259. package/build-style/comments/editor-rtl.css +1 -1
  260. package/build-style/comments/editor.css +1 -1
  261. package/build-style/comments/style-rtl.css +1 -1
  262. package/build-style/comments/style.css +1 -1
  263. package/build-style/common-rtl.css +1 -1
  264. package/build-style/common.css +1 -1
  265. package/build-style/cover/style-rtl.css +6 -0
  266. package/build-style/cover/style.css +6 -0
  267. package/build-style/editor-rtl.css +9 -5
  268. package/build-style/editor.css +9 -5
  269. package/build-style/embed/editor-rtl.css +2 -1
  270. package/build-style/embed/editor.css +2 -1
  271. package/build-style/gallery/style-rtl.css +1 -2
  272. package/build-style/gallery/style.css +1 -2
  273. package/build-style/image/style-rtl.css +6 -9
  274. package/build-style/image/style.css +6 -9
  275. package/build-style/math/editor-rtl.css +5 -0
  276. package/build-style/math/editor.css +5 -0
  277. package/build-style/navigation/editor-rtl.css +1 -0
  278. package/build-style/navigation/editor.css +1 -0
  279. package/build-style/navigation/style-rtl.css +1 -1
  280. package/build-style/navigation/style.css +1 -1
  281. package/build-style/post-title/style-rtl.css +2 -2
  282. package/build-style/post-title/style.css +2 -2
  283. package/build-style/query-pagination/editor-rtl.css +0 -3
  284. package/build-style/query-pagination/editor.css +0 -3
  285. package/build-style/search/theme-rtl.css +1 -1
  286. package/build-style/search/theme.css +1 -1
  287. package/build-style/style-rtl.css +23 -19
  288. package/build-style/style.css +23 -19
  289. package/build-style/theme-rtl.css +1 -1
  290. package/build-style/theme.css +1 -1
  291. package/build-style/verse/style-rtl.css +2 -1
  292. package/build-style/verse/style.css +2 -1
  293. package/package.json +40 -40
  294. package/src/archives/edit.jsx +2 -2
  295. package/src/audio/edit.jsx +2 -2
  296. package/src/avatar/hooks.js +2 -2
  297. package/src/button/edit.jsx +1 -1
  298. package/src/button/style.scss +2 -2
  299. package/src/calendar/index.php +1 -1
  300. package/src/categories/edit.jsx +2 -2
  301. package/src/code/README.md +1 -0
  302. package/src/code/block.json +1 -0
  303. package/src/code/save.jsx +1 -1
  304. package/src/columns/style.scss +2 -3
  305. package/src/comment-template/hooks.js +1 -1
  306. package/src/comments/style.scss +1 -1
  307. package/src/common.scss +1 -2
  308. package/src/cover/edit/index.jsx +2 -2
  309. package/src/cover/edit/inspector-controls.jsx +2 -2
  310. package/src/cover/style.scss +10 -0
  311. package/src/cover/test/{edit.jsdom.test.js → edit.browser.test.js} +104 -145
  312. package/src/cover/transforms.js +3 -3
  313. package/src/details/README.md +1 -0
  314. package/src/details/block.json +1 -0
  315. package/src/details/index.js +1 -1
  316. package/src/embed/editor.scss +2 -2
  317. package/src/embed/embed-controls.jsx +2 -2
  318. package/src/file/deprecated.jsx +3 -3
  319. package/src/file/edit.jsx +5 -3
  320. package/src/file/inspector.jsx +3 -3
  321. package/src/file/save.jsx +2 -2
  322. package/src/footnotes/README.md +1 -0
  323. package/src/footnotes/block.json +1 -0
  324. package/src/footnotes/edit.jsx +1 -1
  325. package/src/gallery/dynamic-gallery.jsx +4 -4
  326. package/src/gallery/edit.jsx +121 -68
  327. package/src/gallery/gallery-styles.js +117 -0
  328. package/src/gallery/index.php +181 -67
  329. package/src/gallery/responsive-styles.js +59 -5
  330. package/src/gallery/test/edit.jsdom.test.js +71 -3
  331. package/src/gallery/test/responsive-styles.js +59 -5
  332. package/src/heading/README.md +2 -0
  333. package/src/heading/block.json +2 -0
  334. package/src/heading/index.js +2 -2
  335. package/src/html/modal.jsx +0 -3
  336. package/src/image/edit.jsx +1 -1
  337. package/src/image/image.jsx +7 -7
  338. package/src/image/index.php +10 -4
  339. package/src/image/style.scss +1 -0
  340. package/src/image/test/use-open-image-media-editor-modal.jsdom.test.js +1 -1
  341. package/src/index.jsx +1 -1
  342. package/src/latest-comments/edit.jsx +2 -2
  343. package/src/latest-posts/edit.jsx +1 -1
  344. package/src/list/ordered-list-settings.jsx +2 -2
  345. package/src/list-item/hooks/use-enter.js +1 -1
  346. package/src/math/README.md +2 -2
  347. package/src/math/block.json +2 -0
  348. package/src/math/deprecated.jsx +38 -12
  349. package/src/math/edit.jsx +49 -20
  350. package/src/math/editor.scss +5 -0
  351. package/src/math/save.jsx +20 -4
  352. package/src/media-text/constants.js +1 -0
  353. package/src/media-text/deprecated.jsx +3 -3
  354. package/src/media-text/edit.jsx +48 -3
  355. package/src/media-text/image-fill.js +2 -2
  356. package/src/media-text/media-container.jsx +1 -1
  357. package/src/navigation/edit/index.jsx +1 -1
  358. package/src/navigation/edit/menu-inspector-controls.jsx +2 -2
  359. package/src/navigation/edit/overlay-template-part-selector.jsx +3 -3
  360. package/src/navigation/edit/responsive-wrapper.jsx +1 -1
  361. package/src/navigation/edit/use-generate-default-navigation-title.js +2 -2
  362. package/src/navigation/editor.scss +1 -0
  363. package/src/navigation/index.php +12 -0
  364. package/src/navigation/style.scss +1 -1
  365. package/src/navigation/test/use-navigation-menu.jsdom.test.js +6 -28
  366. package/src/navigation/test/view.jsdom.test.js +23 -0
  367. package/src/navigation/view.js +9 -6
  368. package/src/navigation-link/edit.jsx +1 -1
  369. package/src/navigation-link/shared/invalid-draft-display.jsx +2 -2
  370. package/src/navigation-link/test/__snapshots__/hooks.jsdom.test.js.snap +41 -11
  371. package/src/navigation-submenu/edit.jsx +1 -1
  372. package/src/paragraph/README.md +1 -0
  373. package/src/paragraph/block.json +1 -0
  374. package/src/paragraph/edit.jsx +1 -1
  375. package/src/paragraph/index.js +7 -0
  376. package/src/pattern/index.php +2 -2
  377. package/src/playlist/edit.jsx +6 -4
  378. package/src/playlist-track/test/edit.jsdom.test.jsx +2 -3
  379. package/src/post-author/edit.jsx +2 -2
  380. package/src/post-author-name/edit.jsx +1 -1
  381. package/src/post-content/README.md +1 -0
  382. package/src/post-content/block.json +1 -0
  383. package/src/post-date/edit.jsx +2 -2
  384. package/src/post-excerpt/README.md +1 -0
  385. package/src/post-excerpt/block.json +1 -0
  386. package/src/post-excerpt/edit.jsx +1 -1
  387. package/src/post-featured-image/edit.jsx +2 -2
  388. package/src/post-navigation-link/edit.jsx +4 -4
  389. package/src/post-time-to-read/edit.jsx +2 -2
  390. package/src/post-title/style.scss +2 -3
  391. package/src/pullquote/deprecated.jsx +1 -1
  392. package/src/query/deprecated.jsx +1 -1
  393. package/src/query/edit/inspector-controls/index.jsx +4 -4
  394. package/src/query/edit/inspector-controls/order-control.jsx +2 -2
  395. package/src/query/edit/inspector-controls/sticky-control.jsx +2 -2
  396. package/src/query/view.js +6 -9
  397. package/src/query-pagination/editor.scss +0 -3
  398. package/src/query-title/use-archive-label.js +1 -1
  399. package/src/quote/deprecated.jsx +2 -2
  400. package/src/quote/transforms.js +3 -3
  401. package/src/search/edit.jsx +6 -6
  402. package/src/search/theme.scss +1 -1
  403. package/src/separator/edit.jsx +7 -4
  404. package/src/social-links/edit.jsx +2 -2
  405. package/src/table/state.js +1 -1
  406. package/src/table-of-contents/edit.jsx +6 -6
  407. package/src/table-of-contents/utils.ts +2 -2
  408. package/src/tabs/use-tab-actions.js +1 -1
  409. package/src/tag-cloud/edit.jsx +2 -2
  410. package/src/template-part/edit/advanced-controls.jsx +5 -2
  411. package/src/template-part/edit/import-controls.jsx +2 -2
  412. package/src/template-part/edit/index.jsx +2 -2
  413. package/src/template-part/edit/inner-blocks.jsx +1 -1
  414. package/src/template-part/edit/placeholder.jsx +2 -2
  415. package/src/term-count/use-term-count.js +1 -1
  416. package/src/term-description/use-term-description.js +1 -1
  417. package/src/term-name/use-term-name.js +1 -1
  418. package/src/terms-query/edit/inspector-controls/index.jsx +2 -2
  419. package/src/terms-query/edit/inspector-controls/inherit-control.jsx +1 -1
  420. package/src/terms-query/edit/inspector-controls/order-control.jsx +2 -2
  421. package/src/terms-query/edit/inspector-controls/taxonomy-control.jsx +2 -2
  422. package/src/utils/hooks.js +1 -1
  423. package/src/utils/media-control.jsx +16 -10
  424. package/src/utils/poster-image.jsx +2 -2
  425. package/src/utils/test/waveform-player.jsdom.test.jsx +36 -38
  426. package/src/utils/test/{waveform-utils.jsdom.test.js → waveform-utils.browser.test.js} +64 -44
  427. package/src/verse/README.md +1 -0
  428. package/src/verse/block.json +1 -0
  429. package/src/verse/style.scss +2 -2
  430. package/src/video/edit-common-settings.jsx +3 -3
  431. package/src/video/tracks-editor.jsx +2 -2
  432. package/build/gallery/flex-styles.cjs.map +0 -7
  433. package/build-module/gallery/flex-styles.mjs.map +0 -7
  434. package/src/gallery/flex-styles.js +0 -99
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/template-part/edit/index.jsx"],
4
- "sourcesContent": ["import { serialize } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInspectorControls,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tSpinner,\n\tModal,\n\tMenuItem,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n} from './utils/hooks';\n\nconst SUPPORTED_AREAS = [ 'header', 'footer', 'navigation-overlay' ];\n\nfunction ReplaceButton( {\n\tisEntityAvailable,\n\tarea,\n\ttemplatePartId,\n\tisTemplatePartSelectionOpen,\n\tsetIsTemplatePartSelectionOpen,\n} ) {\n\t// This hook fetches patterns, so don't run it unconditionally in the main\n\t// edit function!\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst hasReplacements = !! templateParts.length;\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\tSUPPORTED_AREAS.includes( area );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\tsetIsTemplatePartSelectionOpen( true );\n\t\t\t} }\n\t\t\taria-expanded={ isTemplatePartSelectionOpen }\n\t\t\taria-haspopup=\"dialog\"\n\t\t>\n\t\t\t{ __( 'Replace' ) }\n\t\t</MenuItem>\n\t);\n}\n\nfunction TemplatesList( { area, clientId, isEntityAvailable, onSelect } ) {\n\t// This hook fetches patterns, so don't run it unconditionally in the main\n\t// edit function!\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\t!! blockPatterns.length &&\n\t\tSUPPORTED_AREAS.includes( area );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Design' ) }>\n\t\t\t<BlockPatternsList\n\t\t\t\tlabel={ __( 'Templates' ) }\n\t\t\t\tblockPatterns={ blockPatterns }\n\t\t\t\tonClickPattern={ onSelect }\n\t\t\t\tshowTitlesAsTooltip\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst currentTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\tconst { slug, theme = currentTheme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\tconst {\n\t\tisResolved,\n\t\thasInnerBlocks,\n\t\tisMissing,\n\t\tarea,\n\t\tonNavigateToEntityRecord,\n\t\ttitle,\n\t\tcanUserEdit,\n\t\tcanUserEditBlock,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlockCount, getSettings, canEditBlock } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\tconst _canUserEdit = hasResolvedEntity\n\t\t\t\t? select( coreStore ).canUser( 'update', {\n\t\t\t\t\t\tkind: 'postType',\n\t\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t\t\tid: templatePartId,\n\t\t\t\t } )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: getBlockCount( clientId ) > 0,\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing:\n\t\t\t\t\thasResolvedEntity &&\n\t\t\t\t\t( ! entityRecord ||\n\t\t\t\t\t\tObject.keys( entityRecord ).length === 0 ),\n\t\t\t\tarea: _area,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\ttitle: entityRecord?.title,\n\t\t\t\tcanUserEdit: !! _canUserEdit,\n\t\t\t\tcanUserEditBlock: canEditBlock( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, attributes.area, clientId ]\n\t);\n\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\tconst onPatternSelect = async ( pattern ) => {\n\t\tawait editEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\ttemplatePartId,\n\t\t\t{\n\t\t\t\tblocks: pattern.blocks,\n\t\t\t\tcontent: serialize( pattern.blocks ),\n\t\t\t}\n\t\t);\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" updated.' ),\n\t\t\t\ttitle || slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t};\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\t! hasInnerBlocks &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t{ isEntityAvailable &&\n\t\t\t\t\tonNavigateToEntityRecord &&\n\t\t\t\t\tcanUserEdit && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\t\t\t\tpostId: templatePartId,\n\t\t\t\t\t\t\t\t\t\tpostType: 'wp_template_part',\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t{ ( { selectedClientIds } ) => {\n\t\t\t\t\t\t// Only enable for single selection that matches the current block.\n\t\t\t\t\t\t// Ensures menu item doesn't render multiple times.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! canUserEditBlock ||\n\t\t\t\t\t\t\t! (\n\t\t\t\t\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t\t\t\t\tclientId === selectedClientIds[ 0 ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ReplaceButton\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\tisEntityAvailable,\n\t\t\t\t\t\t\t\t\tarea,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\ttemplatePartId,\n\t\t\t\t\t\t\t\t\tisTemplatePartSelectionOpen,\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t</BlockSettingsMenuControls>\n\n\t\t\t\t<InspectorControls group=\"settings\">\n\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\tonSelect={ ( pattern ) => onPatternSelect( pattern ) }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { serialize } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInspectorControls,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tSpinner,\n\tModal,\n\tMenuItem,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n} from './utils/hooks';\n\nconst SUPPORTED_AREAS = [ 'header', 'footer', 'navigation-overlay' ];\n\nfunction ReplaceButton( {\n\tisEntityAvailable,\n\tarea,\n\ttemplatePartId,\n\tisTemplatePartSelectionOpen,\n\tsetIsTemplatePartSelectionOpen,\n} ) {\n\t// This hook fetches patterns, so don't run it unconditionally in the main\n\t// edit function!\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst hasReplacements = !! templateParts.length;\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\tSUPPORTED_AREAS.includes( area );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\tsetIsTemplatePartSelectionOpen( true );\n\t\t\t} }\n\t\t\taria-expanded={ isTemplatePartSelectionOpen }\n\t\t\taria-haspopup=\"dialog\"\n\t\t>\n\t\t\t{ __( 'Replace' ) }\n\t\t</MenuItem>\n\t);\n}\n\nfunction TemplatesList( { area, clientId, isEntityAvailable, onSelect } ) {\n\t// This hook fetches patterns, so don't run it unconditionally in the main\n\t// edit function!\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\t!! blockPatterns.length &&\n\t\tSUPPORTED_AREAS.includes( area );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Design' ) }>\n\t\t\t<BlockPatternsList\n\t\t\t\tlabel={ __( 'Templates' ) }\n\t\t\t\tblockPatterns={ blockPatterns }\n\t\t\t\tonClickPattern={ onSelect }\n\t\t\t\tshowTitlesAsTooltip\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst currentTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\tconst { slug, theme = currentTheme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\tconst {\n\t\tisResolved,\n\t\thasInnerBlocks,\n\t\tisMissing,\n\t\tarea,\n\t\tonNavigateToEntityRecord,\n\t\ttitle,\n\t\tcanUserEdit,\n\t\tcanUserEditBlock,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlockCount, getSettings, canEditBlock } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t\t)\n\t\t\t\t: false;\n\n\t\t\tconst _canUserEdit = hasResolvedEntity\n\t\t\t\t? select( coreStore ).canUser( 'update', {\n\t\t\t\t\t\tkind: 'postType',\n\t\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t\t\tid: templatePartId,\n\t\t\t\t\t} )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: getBlockCount( clientId ) > 0,\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing:\n\t\t\t\t\thasResolvedEntity &&\n\t\t\t\t\t( ! entityRecord ||\n\t\t\t\t\t\tObject.keys( entityRecord ).length === 0 ),\n\t\t\t\tarea: _area,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\ttitle: entityRecord?.title,\n\t\t\t\tcanUserEdit: !! _canUserEdit,\n\t\t\t\tcanUserEditBlock: canEditBlock( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, attributes.area, clientId ]\n\t);\n\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\tconst onPatternSelect = async ( pattern ) => {\n\t\tawait editEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\ttemplatePartId,\n\t\t\t{\n\t\t\t\tblocks: pattern.blocks,\n\t\t\t\tcontent: serialize( pattern.blocks ),\n\t\t\t}\n\t\t);\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" updated.' ),\n\t\t\t\ttitle || slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t};\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\t! hasInnerBlocks &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t{ isEntityAvailable &&\n\t\t\t\t\tonNavigateToEntityRecord &&\n\t\t\t\t\tcanUserEdit && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\t\t\t\tpostId: templatePartId,\n\t\t\t\t\t\t\t\t\t\tpostType: 'wp_template_part',\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t{ ( { selectedClientIds } ) => {\n\t\t\t\t\t\t// Only enable for single selection that matches the current block.\n\t\t\t\t\t\t// Ensures menu item doesn't render multiple times.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! canUserEditBlock ||\n\t\t\t\t\t\t\t! (\n\t\t\t\t\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t\t\t\t\tclientId === selectedClientIds[ 0 ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ReplaceButton\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\tisEntityAvailable,\n\t\t\t\t\t\t\t\t\tarea,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\ttemplatePartId,\n\t\t\t\t\t\t\t\t\tisTemplatePartSelectionOpen,\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t</BlockSettingsMenuControls>\n\n\t\t\t\t<InspectorControls group=\"settings\">\n\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\tonSelect={ ( pattern ) => onPatternSelect( pattern ) }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/template-part/edit/inner-blocks.jsx"],
4
- "sourcesContent": ["import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\nimport {\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tuseSettings,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { parse } from '@wordpress/blocks';\n\nfunction useRenderAppender( hasInnerBlocks ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\t// Disable appending when the editing mode is 'contentOnly'. This is so that the user can't\n\t// append into a template part when editing a page in the site editor. See\n\t// DisableNonPageContentBlocks. Ideally instead of (mis)using editing mode there would be a\n\t// block editor API for achieving this.\n\tif ( blockEditingMode === 'contentOnly' ) {\n\t\treturn false;\n\t}\n\tif ( ! hasInnerBlocks ) {\n\t\treturn InnerBlocks.ButtonBlockAppender;\n\t}\n}\n\nfunction useLayout( layout ) {\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings()?.supportsLayout;\n\t}, [] );\n\tconst [ defaultLayout ] = useSettings( 'layout' );\n\tif ( themeSupportsLayout ) {\n\t\treturn layout?.inherit ? defaultLayout || {} : layout;\n\t}\n}\n\nfunction NonEditableTemplatePartPreview( {\n\tpostId: id,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tuseBlockEditingMode( 'disabled' );\n\n\tconst { content, editedBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! id ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\tconst editedRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tid,\n\t\t\t\t{ context: 'view' }\n\t\t\t);\n\t\t\treturn {\n\t\t\t\teditedBlocks: editedRecord.blocks,\n\t\t\t\tcontent: editedRecord.content,\n\t\t\t};\n\t\t},\n\t\t[ id ]\n\t);\n\n\tconst blocks = useMemo( () => {\n\t\tif ( ! id ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif ( editedBlocks ) {\n\t\t\treturn editedBlocks;\n\t\t}\n\n\t\tif ( ! content || typeof content !== 'string' ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn parse( content );\n\t}, [ id, editedBlocks, content ] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput: () => {},\n\t\tonChange: () => {},\n\t\trenderAppender: false,\n\t\tlayout: useLayout( layout ),\n\t} );\n\n\treturn <TagName { ...innerBlocksProps } />;\n}\n\nfunction EditableTemplatePartInnerBlocks( {\n\tpostId: id,\n\thasInnerBlocks,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tconst onNavigateToEntityRecord = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().onNavigateToEntityRecord,\n\t\t[]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_template_part',\n\t\t{ id }\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput,\n\t\tonChange,\n\t\trenderAppender: useRenderAppender( hasInnerBlocks ),\n\t\tlayout: useLayout( layout ),\n\t} );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst customProps =\n\t\tblockEditingMode === 'contentOnly' && onNavigateToEntityRecord\n\t\t\t? {\n\t\t\t\t\tonDoubleClick: () =>\n\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\tpostId: id,\n\t\t\t\t\t\t\tpostType: 'wp_template_part',\n\t\t\t\t\t\t} ),\n\t\t\t }\n\t\t\t: {};\n\n\treturn <TagName { ...innerBlocksProps } { ...customProps } />;\n}\n\nexport default function TemplatePartInnerBlocks( {\n\tpostId: id,\n\thasInnerBlocks,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tconst { canViewTemplatePart, canEditTemplatePart } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tcanViewTemplatePart: !! select( coreStore ).canUser( 'read', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t\tid,\n\t\t\t\t} ),\n\t\t\t\tcanEditTemplatePart: !! select( coreStore ).canUser( 'update', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t\tid,\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ id ]\n\t);\n\n\tif ( ! canViewTemplatePart ) {\n\t\treturn null;\n\t}\n\n\tconst TemplatePartInnerBlocksComponent = canEditTemplatePart\n\t\t? EditableTemplatePartInnerBlocks\n\t\t: NonEditableTemplatePartPreview;\n\n\treturn (\n\t\t<TemplatePartInnerBlocksComponent\n\t\t\tpostId={ id }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tlayout={ layout }\n\t\t\ttagName={ TagName }\n\t\t\tblockProps={ blockProps }\n\t\t/>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\nimport {\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tuseSettings,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { parse } from '@wordpress/blocks';\n\nfunction useRenderAppender( hasInnerBlocks ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\t// Disable appending when the editing mode is 'contentOnly'. This is so that the user can't\n\t// append into a template part when editing a page in the site editor. See\n\t// DisableNonPageContentBlocks. Ideally instead of (mis)using editing mode there would be a\n\t// block editor API for achieving this.\n\tif ( blockEditingMode === 'contentOnly' ) {\n\t\treturn false;\n\t}\n\tif ( ! hasInnerBlocks ) {\n\t\treturn InnerBlocks.ButtonBlockAppender;\n\t}\n}\n\nfunction useLayout( layout ) {\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings()?.supportsLayout;\n\t}, [] );\n\tconst [ defaultLayout ] = useSettings( 'layout' );\n\tif ( themeSupportsLayout ) {\n\t\treturn layout?.inherit ? defaultLayout || {} : layout;\n\t}\n}\n\nfunction NonEditableTemplatePartPreview( {\n\tpostId: id,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tuseBlockEditingMode( 'disabled' );\n\n\tconst { content, editedBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! id ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\tconst editedRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tid,\n\t\t\t\t{ context: 'view' }\n\t\t\t);\n\t\t\treturn {\n\t\t\t\teditedBlocks: editedRecord.blocks,\n\t\t\t\tcontent: editedRecord.content,\n\t\t\t};\n\t\t},\n\t\t[ id ]\n\t);\n\n\tconst blocks = useMemo( () => {\n\t\tif ( ! id ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif ( editedBlocks ) {\n\t\t\treturn editedBlocks;\n\t\t}\n\n\t\tif ( ! content || typeof content !== 'string' ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn parse( content );\n\t}, [ id, editedBlocks, content ] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput: () => {},\n\t\tonChange: () => {},\n\t\trenderAppender: false,\n\t\tlayout: useLayout( layout ),\n\t} );\n\n\treturn <TagName { ...innerBlocksProps } />;\n}\n\nfunction EditableTemplatePartInnerBlocks( {\n\tpostId: id,\n\thasInnerBlocks,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tconst onNavigateToEntityRecord = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().onNavigateToEntityRecord,\n\t\t[]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_template_part',\n\t\t{ id }\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput,\n\t\tonChange,\n\t\trenderAppender: useRenderAppender( hasInnerBlocks ),\n\t\tlayout: useLayout( layout ),\n\t} );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst customProps =\n\t\tblockEditingMode === 'contentOnly' && onNavigateToEntityRecord\n\t\t\t? {\n\t\t\t\t\tonDoubleClick: () =>\n\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\tpostId: id,\n\t\t\t\t\t\t\tpostType: 'wp_template_part',\n\t\t\t\t\t\t} ),\n\t\t\t\t}\n\t\t\t: {};\n\n\treturn <TagName { ...innerBlocksProps } { ...customProps } />;\n}\n\nexport default function TemplatePartInnerBlocks( {\n\tpostId: id,\n\thasInnerBlocks,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tconst { canViewTemplatePart, canEditTemplatePart } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tcanViewTemplatePart: !! select( coreStore ).canUser( 'read', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t\tid,\n\t\t\t\t} ),\n\t\t\t\tcanEditTemplatePart: !! select( coreStore ).canUser( 'update', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t\tid,\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ id ]\n\t);\n\n\tif ( ! canViewTemplatePart ) {\n\t\treturn null;\n\t}\n\n\tconst TemplatePartInnerBlocksComponent = canEditTemplatePart\n\t\t? EditableTemplatePartInnerBlocks\n\t\t: NonEditableTemplatePartPreview;\n\n\treturn (\n\t\t<TemplatePartInnerBlocksComponent\n\t\t\tpostId={ id }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tlayout={ layout }\n\t\t\ttagName={ TagName }\n\t\t\tblockProps={ blockProps }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/template-part/edit/placeholder.jsx"],
4
- "sourcesContent": ["import { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseCreateTemplatePartFromBlocks,\n\tuseTemplatePartArea,\n} from './utils/hooks';\nimport TitleModal from './title-modal';\nimport { getTemplatePartIcon } from './utils/get-template-part-icon';\n\nexport default function TemplatePartPlaceholder( {\n\tarea,\n\tclientId,\n\ttemplatePartId,\n\tonOpenSelectionModal,\n\tsetAttributes,\n} ) {\n\tconst { templateParts, isResolving } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\n\tconst { isBlockBasedTheme, canCreateTemplatePart } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentTheme, canUser } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst [ showTitleModal, setShowTitleModal ] = useState( false );\n\tconst areaObject = useTemplatePartArea( area );\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\treturn (\n\t\t<Placeholder\n\t\t\ticon={ getTemplatePartIcon( areaObject.icon ) }\n\t\t\tlabel={ areaObject.label }\n\t\t\tinstructions={\n\t\t\t\tisBlockBasedTheme\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s or create a new one.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t )\n\t\t\t}\n\t\t>\n\t\t\t{ isResolving && <Spinner /> }\n\n\t\t\t{ ! isResolving &&\n\t\t\t\t!! ( templateParts.length || blockPatterns.length ) && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onOpenSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t{ ! isResolving && isBlockBasedTheme && canCreateTemplatePart && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowTitleModal( true );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ showTitleModal && (\n\t\t\t\t<TitleModal\n\t\t\t\t\tareaLabel={ areaObject.label }\n\t\t\t\t\tonClose={ () => setShowTitleModal( false ) }\n\t\t\t\t\tonSubmit={ ( title ) => {\n\t\t\t\t\t\tcreateFromBlocks( [], title );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Placeholder>\n\t);\n}\n"],
5
- "mappings": ";AAAA,SAAS,IAAI,eAAe;AAC5B,SAAS,aAAa,QAAQ,eAAe;AAC7C,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAC1B,SAAS,SAAS,iBAAiB;AACnC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,OAAO,gBAAgB;AACvB,SAAS,2BAA2B;AAqClC,SAiBkB,KAjBlB;AAnCa,SAAR,wBAA0C;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,eAAe,YAAY,IAAI;AAAA,IACtC;AAAA,IACA;AAAA,EACD;AACA,QAAM,gBAAgB,4BAA6B,MAAM,QAAS;AAElE,QAAM,EAAE,mBAAmB,sBAAsB,IAAI;AAAA,IACpD,CAAE,WAAY;AACb,YAAM,EAAE,iBAAiB,QAAQ,IAAI,OAAQ,SAAU;AACvD,aAAO;AAAA,QACN,mBAAmB,gBAAgB,GAAG;AAAA,QACtC,uBAAuB,QAAS,UAAU;AAAA,UACzC,MAAM;AAAA,UACN,MAAM;AAAA,QACP,CAAE;AAAA,MACH;AAAA,IACD;AAAA,IACA,CAAC;AAAA,EACF;AAEA,QAAM,CAAE,gBAAgB,iBAAkB,IAAI,SAAU,KAAM;AAC9D,QAAM,aAAa,oBAAqB,IAAK;AAC7C,QAAM,mBAAmB;AAAA,IACxB;AAAA,IACA;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAO,oBAAqB,WAAW,IAAK;AAAA,MAC5C,OAAQ,WAAW;AAAA,MACnB,cACC,oBACG;AAAA;AAAA,QAEA,GAAI,4CAA6C;AAAA,QACjD,WAAW,MAAM,YAAY;AAAA,MAC7B,IACA;AAAA;AAAA,QAEA,GAAI,wBAAyB;AAAA,QAC7B,WAAW,MAAM,YAAY;AAAA,MAC7B;AAAA,MAGF;AAAA,uBAAe,oBAAC,WAAQ;AAAA,QAExB,CAAE,eACH,CAAC,EAAI,cAAc,UAAU,cAAc,WAC1C;AAAA,UAAC;AAAA;AAAA,YACA,uBAAqB;AAAA,YACrB,SAAQ;AAAA,YACR,SAAU;AAAA,YAER,aAAI,QAAS;AAAA;AAAA,QAChB;AAAA,QAGA,CAAE,eAAe,qBAAqB,yBACvC;AAAA,UAAC;AAAA;AAAA,YACA,uBAAqB;AAAA,YACrB,SAAQ;AAAA,YACR,SAAU,MAAM;AACf,gCAAmB,IAAK;AAAA,YACzB;AAAA,YAEE,aAAI,aAAc;AAAA;AAAA,QACrB;AAAA,QAEC,kBACD;AAAA,UAAC;AAAA;AAAA,YACA,WAAY,WAAW;AAAA,YACvB,SAAU,MAAM,kBAAmB,KAAM;AAAA,YACzC,UAAW,CAAE,UAAW;AACvB,+BAAkB,CAAC,GAAG,KAAM;AAAA,YAC7B;AAAA;AAAA,QACD;AAAA;AAAA;AAAA,EAEF;AAEF;",
4
+ "sourcesContent": ["import { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseCreateTemplatePartFromBlocks,\n\tuseTemplatePartArea,\n} from './utils/hooks';\nimport TitleModal from './title-modal';\nimport { getTemplatePartIcon } from './utils/get-template-part-icon';\n\nexport default function TemplatePartPlaceholder( {\n\tarea,\n\tclientId,\n\ttemplatePartId,\n\tonOpenSelectionModal,\n\tsetAttributes,\n} ) {\n\tconst { templateParts, isResolving } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\n\tconst { isBlockBasedTheme, canCreateTemplatePart } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentTheme, canUser } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst [ showTitleModal, setShowTitleModal ] = useState( false );\n\tconst areaObject = useTemplatePartArea( area );\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\treturn (\n\t\t<Placeholder\n\t\t\ticon={ getTemplatePartIcon( areaObject.icon ) }\n\t\t\tlabel={ areaObject.label }\n\t\t\tinstructions={\n\t\t\t\tisBlockBasedTheme\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s or create a new one.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t\t)\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ isResolving && <Spinner /> }\n\n\t\t\t{ ! isResolving &&\n\t\t\t\t!! ( templateParts.length || blockPatterns.length ) && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onOpenSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t{ ! isResolving && isBlockBasedTheme && canCreateTemplatePart && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowTitleModal( true );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ showTitleModal && (\n\t\t\t\t<TitleModal\n\t\t\t\t\tareaLabel={ areaObject.label }\n\t\t\t\t\tonClose={ () => setShowTitleModal( false ) }\n\t\t\t\t\tonSubmit={ ( title ) => {\n\t\t\t\t\t\tcreateFromBlocks( [], title );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Placeholder>\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,IAAI,eAAe;AAC5B,SAAS,aAAa,QAAQ,eAAe;AAC7C,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAC1B,SAAS,SAAS,iBAAiB;AACnC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,OAAO,gBAAgB;AACvB,SAAS,2BAA2B;AAqClC,SAiBkB,KAjBlB;AAnCa,SAAR,wBAA0C;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,eAAe,YAAY,IAAI;AAAA,IACtC;AAAA,IACA;AAAA,EACD;AACA,QAAM,gBAAgB,4BAA6B,MAAM,QAAS;AAElE,QAAM,EAAE,mBAAmB,sBAAsB,IAAI;AAAA,IACpD,CAAE,WAAY;AACb,YAAM,EAAE,iBAAiB,QAAQ,IAAI,OAAQ,SAAU;AACvD,aAAO;AAAA,QACN,mBAAmB,gBAAgB,GAAG;AAAA,QACtC,uBAAuB,QAAS,UAAU;AAAA,UACzC,MAAM;AAAA,UACN,MAAM;AAAA,QACP,CAAE;AAAA,MACH;AAAA,IACD;AAAA,IACA,CAAC;AAAA,EACF;AAEA,QAAM,CAAE,gBAAgB,iBAAkB,IAAI,SAAU,KAAM;AAC9D,QAAM,aAAa,oBAAqB,IAAK;AAC7C,QAAM,mBAAmB;AAAA,IACxB;AAAA,IACA;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAO,oBAAqB,WAAW,IAAK;AAAA,MAC5C,OAAQ,WAAW;AAAA,MACnB,cACC,oBACG;AAAA;AAAA,QAEA,GAAI,4CAA6C;AAAA,QACjD,WAAW,MAAM,YAAY;AAAA,MAC9B,IACC;AAAA;AAAA,QAEA,GAAI,wBAAyB;AAAA,QAC7B,WAAW,MAAM,YAAY;AAAA,MAC9B;AAAA,MAGD;AAAA,uBAAe,oBAAC,WAAQ;AAAA,QAExB,CAAE,eACH,CAAC,EAAI,cAAc,UAAU,cAAc,WAC1C;AAAA,UAAC;AAAA;AAAA,YACA,uBAAqB;AAAA,YACrB,SAAQ;AAAA,YACR,SAAU;AAAA,YAER,aAAI,QAAS;AAAA;AAAA,QAChB;AAAA,QAGA,CAAE,eAAe,qBAAqB,yBACvC;AAAA,UAAC;AAAA;AAAA,YACA,uBAAqB;AAAA,YACrB,SAAQ;AAAA,YACR,SAAU,MAAM;AACf,gCAAmB,IAAK;AAAA,YACzB;AAAA,YAEE,aAAI,aAAc;AAAA;AAAA,QACrB;AAAA,QAEC,kBACD;AAAA,UAAC;AAAA;AAAA,YACA,WAAY,WAAW;AAAA,YACvB,SAAU,MAAM,kBAAmB,KAAM;AAAA,YACzC,UAAW,CAAE,UAAW;AACvB,+BAAkB,CAAC,GAAG,KAAM;AAAA,YAC7B;AAAA;AAAA,QACD;AAAA;AAAA;AAAA,EAEF;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/term-count/use-term-count.js"],
4
- "sourcesContent": ["import { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term count based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermCount( termId, taxonomy ) {\n\tconst [ count ] = useEntityProp( 'taxonomy', taxonomy, 'count', termId );\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedData = useTemplateBasedTermData();\n\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\ttermCount: hasContext ? count || '' : templateBasedData,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context (backward compatibility).\n * This maintains the same logic as the original implementation for cases where\n * no termId/taxonomy context is provided.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t )?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for all taxonomies of a type (e.g., category, tag).\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ].count || '';\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n"],
5
- "mappings": ";AAAA,SAAS,SAAS,WAAW,qBAAqB;AAClD,SAAS,iBAAiB;AAWnB,SAAS,aAAc,QAAQ,UAAW;AAChD,QAAM,CAAE,KAAM,IAAI,cAAe,YAAY,UAAU,SAAS,MAAO;AAGvE,QAAM,oBAAoB,yBAAyB;AAEnD,QAAM,aAAa,QAAS,UAAU,QAAS;AAE/C,SAAO;AAAA,IACN;AAAA,IACA,WAAW,aAAa,SAAS,KAAK;AAAA,EACvC;AACD;AAOA,SAAS,2BAA2B;AACnC,QAAM,eAAe,UAAW,CAAE,WAAY;AAG7C,UAAM,EAAE,kBAAkB,oBAAoB,qBAAqB,IAClE,OAAQ,aAAc;AACvB,UAAM,kBAAkB,mBAAmB;AAC3C,UAAM,aACL,qBAAqB,MACnB,oBAAoB,gBAAgB,iBAAiB,IAAI;AAE5D,WAAO,aACJ,OAAQ,SAAU,EAAE;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACA,GAAG,OACH;AAAA,EACJ,GAAG,CAAC,CAAE;AAEN,QAAM,kBAAkB,cAAc;AAAA,IACrC;AAAA,EACD;AAEA,MAAI;AACJ,MAAI;AAEJ,MAAK,iBAAkB;AAEtB,QAAK,gBAAiB,CAAE,GAAI;AAC3B,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AAAA,IACvB,WAEU,gBAAiB,CAAE,GAAI;AAChC,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AACtB,iBAAW,gBAAiB,CAAE;AAAA,IAC/B;AAEA,eAAW,aAAa,QAAQ,aAAa;AAAA,EAC9C;AAEA,SAAO;AAAA,IACN,CAAE,WAAY;AACb,UAAK,CAAE,YAAY,CAAE,UAAW;AAC/B,eAAO;AAAA,MACR;AAEA,YAAM,EAAE,iBAAiB,IAAI,OAAQ,SAAU;AAE/C,YAAM,cAAc,iBAAkB,YAAY,UAAU;AAAA,QAC3D,MAAM;AAAA,QACN,UAAU;AAAA,MACX,CAAE;AAEF,UAAK,eAAe,YAAa,CAAE,GAAI;AACtC,eAAO,YAAa,CAAE,EAAE,SAAS;AAAA,MAClC;AAEA,aAAO;AAAA,IACR;AAAA,IACA,CAAE,UAAU,QAAS;AAAA,EACtB;AACD;",
4
+ "sourcesContent": ["import { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term count based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermCount( termId, taxonomy ) {\n\tconst [ count ] = useEntityProp( 'taxonomy', taxonomy, 'count', termId );\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedData = useTemplateBasedTermData();\n\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\ttermCount: hasContext ? count || '' : templateBasedData,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context (backward compatibility).\n * This maintains the same logic as the original implementation for cases where\n * no termId/taxonomy context is provided.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t\t)?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for all taxonomies of a type (e.g., category, tag).\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ].count || '';\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,SAAS,WAAW,qBAAqB;AAClD,SAAS,iBAAiB;AAWnB,SAAS,aAAc,QAAQ,UAAW;AAChD,QAAM,CAAE,KAAM,IAAI,cAAe,YAAY,UAAU,SAAS,MAAO;AAGvE,QAAM,oBAAoB,yBAAyB;AAEnD,QAAM,aAAa,QAAS,UAAU,QAAS;AAE/C,SAAO;AAAA,IACN;AAAA,IACA,WAAW,aAAa,SAAS,KAAK;AAAA,EACvC;AACD;AAOA,SAAS,2BAA2B;AACnC,QAAM,eAAe,UAAW,CAAE,WAAY;AAG7C,UAAM,EAAE,kBAAkB,oBAAoB,qBAAqB,IAClE,OAAQ,aAAc;AACvB,UAAM,kBAAkB,mBAAmB;AAC3C,UAAM,aACL,qBAAqB,MACnB,oBAAoB,gBAAgB,iBAAiB,IAAI;AAE5D,WAAO,aACJ,OAAQ,SAAU,EAAE;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACD,GAAG,OACF;AAAA,EACJ,GAAG,CAAC,CAAE;AAEN,QAAM,kBAAkB,cAAc;AAAA,IACrC;AAAA,EACD;AAEA,MAAI;AACJ,MAAI;AAEJ,MAAK,iBAAkB;AAEtB,QAAK,gBAAiB,CAAE,GAAI;AAC3B,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AAAA,IACvB,WAEU,gBAAiB,CAAE,GAAI;AAChC,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AACtB,iBAAW,gBAAiB,CAAE;AAAA,IAC/B;AAEA,eAAW,aAAa,QAAQ,aAAa;AAAA,EAC9C;AAEA,SAAO;AAAA,IACN,CAAE,WAAY;AACb,UAAK,CAAE,YAAY,CAAE,UAAW;AAC/B,eAAO;AAAA,MACR;AAEA,YAAM,EAAE,iBAAiB,IAAI,OAAQ,SAAU;AAE/C,YAAM,cAAc,iBAAkB,YAAY,UAAU;AAAA,QAC3D,MAAM;AAAA,QACN,UAAU;AAAA,MACX,CAAE;AAEF,UAAK,eAAe,YAAa,CAAE,GAAI;AACtC,eAAO,YAAa,CAAE,EAAE,SAAS;AAAA,MAClC;AAEA,aAAO;AAAA,IACR;AAAA,IACA,CAAE,UAAU,QAAS;AAAA,EACtB;AACD;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/term-description/use-term-description.js"],
4
- "sourcesContent": ["import { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term description based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermDescription( termId, taxonomy ) {\n\tconst [ description, setDescription, fullDescription ] = useEntityProp(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\t'description',\n\t\ttermId\n\t);\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedData = useTemplateBasedTermData();\n\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\tsetDescription,\n\t\ttermDescription: hasContext\n\t\t\t? fullDescription?.rendered || description || ''\n\t\t\t: templateBasedData,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context (backward compatibility).\n * This maintains the same logic as the original implementation for cases where\n * no termId/taxonomy context is provided.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t )?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for all taxonomies of a type (e.g., category, tag).\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ].description || '';\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n"],
5
- "mappings": ";AAAA,SAAS,SAAS,WAAW,qBAAqB;AAClD,SAAS,iBAAiB;AAWnB,SAAS,mBAAoB,QAAQ,UAAW;AACtD,QAAM,CAAE,aAAa,gBAAgB,eAAgB,IAAI;AAAA,IACxD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAGA,QAAM,oBAAoB,yBAAyB;AAEnD,QAAM,aAAa,QAAS,UAAU,QAAS;AAE/C,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,iBAAiB,aACd,iBAAiB,YAAY,eAAe,KAC5C;AAAA,EACJ;AACD;AAOA,SAAS,2BAA2B;AACnC,QAAM,eAAe,UAAW,CAAE,WAAY;AAG7C,UAAM,EAAE,kBAAkB,oBAAoB,qBAAqB,IAClE,OAAQ,aAAc;AACvB,UAAM,kBAAkB,mBAAmB;AAC3C,UAAM,aACL,qBAAqB,MACnB,oBAAoB,gBAAgB,iBAAiB,IAAI;AAE5D,WAAO,aACJ,OAAQ,SAAU,EAAE;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACA,GAAG,OACH;AAAA,EACJ,GAAG,CAAC,CAAE;AAEN,QAAM,kBAAkB,cAAc;AAAA,IACrC;AAAA,EACD;AAEA,MAAI;AACJ,MAAI;AAEJ,MAAK,iBAAkB;AAEtB,QAAK,gBAAiB,CAAE,GAAI;AAC3B,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AAAA,IACvB,WAEU,gBAAiB,CAAE,GAAI;AAChC,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AACtB,iBAAW,gBAAiB,CAAE;AAAA,IAC/B;AAEA,eAAW,aAAa,QAAQ,aAAa;AAAA,EAC9C;AAEA,SAAO;AAAA,IACN,CAAE,WAAY;AACb,UAAK,CAAE,YAAY,CAAE,UAAW;AAC/B,eAAO;AAAA,MACR;AAEA,YAAM,EAAE,iBAAiB,IAAI,OAAQ,SAAU;AAE/C,YAAM,cAAc,iBAAkB,YAAY,UAAU;AAAA,QAC3D,MAAM;AAAA,QACN,UAAU;AAAA,MACX,CAAE;AAEF,UAAK,eAAe,YAAa,CAAE,GAAI;AACtC,eAAO,YAAa,CAAE,EAAE,eAAe;AAAA,MACxC;AAEA,aAAO;AAAA,IACR;AAAA,IACA,CAAE,UAAU,QAAS;AAAA,EACtB;AACD;",
4
+ "sourcesContent": ["import { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term description based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermDescription( termId, taxonomy ) {\n\tconst [ description, setDescription, fullDescription ] = useEntityProp(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\t'description',\n\t\ttermId\n\t);\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedData = useTemplateBasedTermData();\n\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\tsetDescription,\n\t\ttermDescription: hasContext\n\t\t\t? fullDescription?.rendered || description || ''\n\t\t\t: templateBasedData,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context (backward compatibility).\n * This maintains the same logic as the original implementation for cases where\n * no termId/taxonomy context is provided.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t\t)?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for all taxonomies of a type (e.g., category, tag).\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ].description || '';\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,SAAS,WAAW,qBAAqB;AAClD,SAAS,iBAAiB;AAWnB,SAAS,mBAAoB,QAAQ,UAAW;AACtD,QAAM,CAAE,aAAa,gBAAgB,eAAgB,IAAI;AAAA,IACxD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAGA,QAAM,oBAAoB,yBAAyB;AAEnD,QAAM,aAAa,QAAS,UAAU,QAAS;AAE/C,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,iBAAiB,aACd,iBAAiB,YAAY,eAAe,KAC5C;AAAA,EACJ;AACD;AAOA,SAAS,2BAA2B;AACnC,QAAM,eAAe,UAAW,CAAE,WAAY;AAG7C,UAAM,EAAE,kBAAkB,oBAAoB,qBAAqB,IAClE,OAAQ,aAAc;AACvB,UAAM,kBAAkB,mBAAmB;AAC3C,UAAM,aACL,qBAAqB,MACnB,oBAAoB,gBAAgB,iBAAiB,IAAI;AAE5D,WAAO,aACJ,OAAQ,SAAU,EAAE;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACD,GAAG,OACF;AAAA,EACJ,GAAG,CAAC,CAAE;AAEN,QAAM,kBAAkB,cAAc;AAAA,IACrC;AAAA,EACD;AAEA,MAAI;AACJ,MAAI;AAEJ,MAAK,iBAAkB;AAEtB,QAAK,gBAAiB,CAAE,GAAI;AAC3B,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AAAA,IACvB,WAEU,gBAAiB,CAAE,GAAI;AAChC,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AACtB,iBAAW,gBAAiB,CAAE;AAAA,IAC/B;AAEA,eAAW,aAAa,QAAQ,aAAa;AAAA,EAC9C;AAEA,SAAO;AAAA,IACN,CAAE,WAAY;AACb,UAAK,CAAE,YAAY,CAAE,UAAW;AAC/B,eAAO;AAAA,MACR;AAEA,YAAM,EAAE,iBAAiB,IAAI,OAAQ,SAAU;AAE/C,YAAM,cAAc,iBAAkB,YAAY,UAAU;AAAA,QAC3D,MAAM;AAAA,QACN,UAAU;AAAA,MACX,CAAE;AAEF,UAAK,eAAe,YAAa,CAAE,GAAI;AACtC,eAAO,YAAa,CAAE,EAAE,eAAe;AAAA,MACxC;AAEA,aAAO;AAAA,IACR;AAAA,IACA,CAAE,UAAU,QAAS;AAAA,EACtB;AACD;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/term-name/use-term-name.js"],
4
- "sourcesContent": ["import { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term name based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermName( termId, taxonomy ) {\n\t// Get term from context if available.\n\tconst contextBasedTerm = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! termId || ! taxonomy ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId\n\t\t\t);\n\t\t},\n\t\t[ termId, taxonomy ]\n\t);\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedTerm = useTemplateBasedTermData();\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\tterm: hasContext ? contextBasedTerm : templateBasedTerm,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context.\n * Parses the template slug to determine if we're on a specific term archive.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t )?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\tif ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ];\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n"],
5
- "mappings": ";AAAA,SAAS,SAAS,iBAAiB;AACnC,SAAS,iBAAiB;AAWnB,SAAS,YAAa,QAAQ,UAAW;AAE/C,QAAM,mBAAmB;AAAA,IACxB,CAAE,WAAY;AACb,UAAK,CAAE,UAAU,CAAE,UAAW;AAC7B,eAAO;AAAA,MACR;AACA,aAAO,OAAQ,SAAU,EAAE;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,QAAQ,QAAS;AAAA,EACpB;AAGA,QAAM,oBAAoB,yBAAyB;AACnD,QAAM,aAAa,QAAS,UAAU,QAAS;AAE/C,SAAO;AAAA,IACN;AAAA,IACA,MAAM,aAAa,mBAAmB;AAAA,EACvC;AACD;AAMA,SAAS,2BAA2B;AACnC,QAAM,eAAe,UAAW,CAAE,WAAY;AAG7C,UAAM,EAAE,kBAAkB,oBAAoB,qBAAqB,IAClE,OAAQ,aAAc;AACvB,UAAM,kBAAkB,mBAAmB;AAC3C,UAAM,aACL,qBAAqB,MACnB,oBAAoB,gBAAgB,iBAAiB,IAAI;AAE5D,WAAO,aACJ,OAAQ,SAAU,EAAE;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACA,GAAG,OACH;AAAA,EACJ,GAAG,CAAC,CAAE;AAEN,QAAM,kBAAkB,cAAc;AAAA,IACrC;AAAA,EACD;AAEA,MAAI;AACJ,MAAI;AAEJ,MAAK,iBAAkB;AAEtB,QAAK,gBAAiB,CAAE,GAAI;AAC3B,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AACtB,iBAAW,gBAAiB,CAAE;AAAA,IAC/B;AAEA,eAAW,aAAa,QAAQ,aAAa;AAAA,EAC9C;AAEA,SAAO;AAAA,IACN,CAAE,WAAY;AACb,UAAK,CAAE,YAAY,CAAE,UAAW;AAC/B,eAAO;AAAA,MACR;AAEA,YAAM,EAAE,iBAAiB,IAAI,OAAQ,SAAU;AAE/C,YAAM,cAAc,iBAAkB,YAAY,UAAU;AAAA,QAC3D,MAAM;AAAA,QACN,UAAU;AAAA,MACX,CAAE;AAEF,UAAK,eAAe,YAAa,CAAE,GAAI;AACtC,eAAO,YAAa,CAAE;AAAA,MACvB;AAEA,aAAO;AAAA,IACR;AAAA,IACA,CAAE,UAAU,QAAS;AAAA,EACtB;AACD;",
4
+ "sourcesContent": ["import { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term name based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermName( termId, taxonomy ) {\n\t// Get term from context if available.\n\tconst contextBasedTerm = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! termId || ! taxonomy ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId\n\t\t\t);\n\t\t},\n\t\t[ termId, taxonomy ]\n\t);\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedTerm = useTemplateBasedTermData();\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\tterm: hasContext ? contextBasedTerm : templateBasedTerm,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context.\n * Parses the template slug to determine if we're on a specific term archive.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t\t)?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\tif ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ];\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,SAAS,iBAAiB;AACnC,SAAS,iBAAiB;AAWnB,SAAS,YAAa,QAAQ,UAAW;AAE/C,QAAM,mBAAmB;AAAA,IACxB,CAAE,WAAY;AACb,UAAK,CAAE,UAAU,CAAE,UAAW;AAC7B,eAAO;AAAA,MACR;AACA,aAAO,OAAQ,SAAU,EAAE;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,QAAQ,QAAS;AAAA,EACpB;AAGA,QAAM,oBAAoB,yBAAyB;AACnD,QAAM,aAAa,QAAS,UAAU,QAAS;AAE/C,SAAO;AAAA,IACN;AAAA,IACA,MAAM,aAAa,mBAAmB;AAAA,EACvC;AACD;AAMA,SAAS,2BAA2B;AACnC,QAAM,eAAe,UAAW,CAAE,WAAY;AAG7C,UAAM,EAAE,kBAAkB,oBAAoB,qBAAqB,IAClE,OAAQ,aAAc;AACvB,UAAM,kBAAkB,mBAAmB;AAC3C,UAAM,aACL,qBAAqB,MACnB,oBAAoB,gBAAgB,iBAAiB,IAAI;AAE5D,WAAO,aACJ,OAAQ,SAAU,EAAE;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACD,GAAG,OACF;AAAA,EACJ,GAAG,CAAC,CAAE;AAEN,QAAM,kBAAkB,cAAc;AAAA,IACrC;AAAA,EACD;AAEA,MAAI;AACJ,MAAI;AAEJ,MAAK,iBAAkB;AAEtB,QAAK,gBAAiB,CAAE,GAAI;AAC3B,iBAAW,gBAAiB,CAAE,IAC3B,gBAAiB,CAAE,IACnB,gBAAiB,CAAE;AACtB,iBAAW,gBAAiB,CAAE;AAAA,IAC/B;AAEA,eAAW,aAAa,QAAQ,aAAa;AAAA,EAC9C;AAEA,SAAO;AAAA,IACN,CAAE,WAAY;AACb,UAAK,CAAE,YAAY,CAAE,UAAW;AAC/B,eAAO;AAAA,MACR;AAEA,YAAM,EAAE,iBAAiB,IAAI,OAAQ,SAAU;AAE/C,YAAM,cAAc,iBAAkB,YAAY,UAAU;AAAA,QAC3D,MAAM;AAAA,QACN,UAAU;AAAA,MACX,CAAE;AAEF,UAAK,eAAe,YAAa,CAAE,GAAI;AACtC,eAAO,YAAa,CAAE;AAAA,MACvB;AAEA,aAAO;AAAA,IACR;AAAA,IACA,CAAE,UAAU,QAAS;AAAA,EACtB;AACD;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/terms-query/edit/inspector-controls/index.jsx"],
4
- "sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\nimport { usePublicTaxonomies } from '../../utils';\nimport TaxonomyControl from './taxonomy-control';\nimport OrderControl from './order-control';\nimport EmptyTermsControl from './empty-terms-control';\nimport NestedTermsControl from './nested-terms-control';\nimport InheritControl from './inherit-control';\nimport MaxTermsControl from './max-terms-control';\nimport AdvancedControls from './advanced-controls';\nimport IncludeControl from './include-control';\n\nexport default function TermsQueryInspectorControls( {\n\tattributes,\n\tsetQuery,\n\tsetAttributes,\n\tclientId,\n\ttemplateSlug,\n} ) {\n\tconst { termQuery, tagName: TagName } = attributes;\n\tconst {\n\t\ttaxonomy,\n\t\torderBy,\n\t\torder,\n\t\thideEmpty,\n\t\tinherit,\n\t\tshowNested,\n\t\tperPage,\n\t\tinclude,\n\t} = termQuery;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst taxonomies = usePublicTaxonomies();\n\n\tconst isTaxonomyHierarchical = taxonomies.find(\n\t\t( _taxonomy ) => _taxonomy.slug === taxonomy\n\t)?.hierarchical;\n\tconst inheritQuery = !! inherit;\n\t// Display the inherit control when we're in a taxonomy-related\n\t// template (category, tag, or custom taxonomy).\n\tconst displayInheritControl =\n\t\t[ 'taxonomy', 'category', 'tag', 'archive' ].includes( templateSlug ) ||\n\t\ttemplateSlug?.startsWith( 'taxonomy-' ) ||\n\t\ttemplateSlug?.startsWith( 'category-' ) ||\n\t\ttemplateSlug?.startsWith( 'tag-' );\n\t// Display the showNested control if the taxonomy is hierarchical.\n\tconst displayShowNestedControl = isTaxonomyHierarchical;\n\tconst hasIncludeFilter = !! include?.length;\n\n\t// Labels shared between ToolsPanelItem and its child control.\n\tconst queryTypeControlLabel = __( 'Query type' );\n\tconst taxonomyControlLabel = __( 'Taxonomy' );\n\tconst orderByControlLabel = __( 'Order by' );\n\tconst emptyTermsControlLabel = __( 'Show empty terms' );\n\tconst nestedTermsControlLabel = __( 'Show nested terms' );\n\tconst maxTermsControlLabel = __( 'Max terms' );\n\tconst includeControlLabel = __( 'Selected terms' );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttermQuery: {\n\t\t\t\t\t\t\t\ttaxonomy: 'category',\n\t\t\t\t\t\t\t\torder: 'asc',\n\t\t\t\t\t\t\t\torderBy: 'name',\n\t\t\t\t\t\t\t\tinclude: [],\n\t\t\t\t\t\t\t\thideEmpty: true,\n\t\t\t\t\t\t\t\tshowNested: false,\n\t\t\t\t\t\t\t\tinherit: false,\n\t\t\t\t\t\t\t\tperPage: 10,\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\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ displayInheritControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => inherit !== false }\n\t\t\t\t\t\t\tlabel={ queryTypeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { inherit: false } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<InheritControl\n\t\t\t\t\t\t\t\tlabel={ queryTypeControlLabel }\n\t\t\t\t\t\t\t\tvalue={ inherit }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\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{ ! inheritQuery && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => taxonomy !== 'category' }\n\t\t\t\t\t\t\tlabel={ taxonomyControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetQuery( { 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<TaxonomyControl\n\t\t\t\t\t\t\t\tlabel={ taxonomyControlLabel }\n\t\t\t\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t// We also need to reset the include filter when changing taxonomy.\n\t\t\t\t\t\t\t\t\tsetQuery( { taxonomy: value, include: [] } )\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={ () => orderBy !== 'name' || order !== 'asc' }\n\t\t\t\t\t\tlabel={ orderByControlLabel }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetQuery( { orderBy: 'name', order: 'asc' } )\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<OrderControl\n\t\t\t\t\t\t\tlabel={ orderByControlLabel }\n\t\t\t\t\t\t\t{ ...{ orderBy, order } }\n\t\t\t\t\t\t\tonChange={ ( newOrderBy, newOrder ) => {\n\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\torderBy: newOrderBy,\n\t\t\t\t\t\t\t\t\torder: newOrder,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisabled={ hasIncludeFilter }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\thasIncludeFilter\n\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t'When specific terms are selected, the order is based on their selection order.'\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ ! inheritQuery && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! include?.length }\n\t\t\t\t\t\t\tlabel={ includeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\tinclude: [],\n\t\t\t\t\t\t\t\t\torderBy: 'name',\n\t\t\t\t\t\t\t\t\torder: 'asc',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<IncludeControl\n\t\t\t\t\t\t\t\tlabel={ includeControlLabel }\n\t\t\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\t\t\tvalue={ include }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { include: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => hideEmpty !== true }\n\t\t\t\t\t\tlabel={ emptyTermsControlLabel }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { hideEmpty: true } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<EmptyTermsControl\n\t\t\t\t\t\t\tlabel={ emptyTermsControlLabel }\n\t\t\t\t\t\t\tvalue={ hideEmpty }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { hideEmpty: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ displayShowNestedControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => showNested !== false }\n\t\t\t\t\t\t\tlabel={ nestedTermsControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { showNested: 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<NestedTermsControl\n\t\t\t\t\t\t\t\tlabel={ nestedTermsControlLabel }\n\t\t\t\t\t\t\t\tvalue={ showNested }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { showNested: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={ hasIncludeFilter }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\thasIncludeFilter\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'When specific terms are selected, only those are displayed.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\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={ () => perPage !== 10 }\n\t\t\t\t\t\tlabel={ maxTermsControlLabel }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { perPage: 10 } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<MaxTermsControl\n\t\t\t\t\t\t\tlabel={ maxTermsControlLabel }\n\t\t\t\t\t\t\tvalue={ perPage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { perPage: value } )\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<AdvancedControls\n\t\t\t\tTagName={ TagName }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\nimport { usePublicTaxonomies } from '../../utils';\nimport TaxonomyControl from './taxonomy-control';\nimport OrderControl from './order-control';\nimport EmptyTermsControl from './empty-terms-control';\nimport NestedTermsControl from './nested-terms-control';\nimport InheritControl from './inherit-control';\nimport MaxTermsControl from './max-terms-control';\nimport AdvancedControls from './advanced-controls';\nimport IncludeControl from './include-control';\n\nexport default function TermsQueryInspectorControls( {\n\tattributes,\n\tsetQuery,\n\tsetAttributes,\n\tclientId,\n\ttemplateSlug,\n} ) {\n\tconst { termQuery, tagName: TagName } = attributes;\n\tconst {\n\t\ttaxonomy,\n\t\torderBy,\n\t\torder,\n\t\thideEmpty,\n\t\tinherit,\n\t\tshowNested,\n\t\tperPage,\n\t\tinclude,\n\t} = termQuery;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst taxonomies = usePublicTaxonomies();\n\n\tconst isTaxonomyHierarchical = taxonomies.find(\n\t\t( _taxonomy ) => _taxonomy.slug === taxonomy\n\t)?.hierarchical;\n\tconst inheritQuery = !! inherit;\n\t// Display the inherit control when we're in a taxonomy-related\n\t// template (category, tag, or custom taxonomy).\n\tconst displayInheritControl =\n\t\t[ 'taxonomy', 'category', 'tag', 'archive' ].includes( templateSlug ) ||\n\t\ttemplateSlug?.startsWith( 'taxonomy-' ) ||\n\t\ttemplateSlug?.startsWith( 'category-' ) ||\n\t\ttemplateSlug?.startsWith( 'tag-' );\n\t// Display the showNested control if the taxonomy is hierarchical.\n\tconst displayShowNestedControl = isTaxonomyHierarchical;\n\tconst hasIncludeFilter = !! include?.length;\n\n\t// Labels shared between ToolsPanelItem and its child control.\n\tconst queryTypeControlLabel = __( 'Query type' );\n\tconst taxonomyControlLabel = __( 'Taxonomy' );\n\tconst orderByControlLabel = __( 'Order by' );\n\tconst emptyTermsControlLabel = __( 'Show empty terms' );\n\tconst nestedTermsControlLabel = __( 'Show nested terms' );\n\tconst maxTermsControlLabel = __( 'Max terms' );\n\tconst includeControlLabel = __( 'Selected terms' );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttermQuery: {\n\t\t\t\t\t\t\t\ttaxonomy: 'category',\n\t\t\t\t\t\t\t\torder: 'asc',\n\t\t\t\t\t\t\t\torderBy: 'name',\n\t\t\t\t\t\t\t\tinclude: [],\n\t\t\t\t\t\t\t\thideEmpty: true,\n\t\t\t\t\t\t\t\tshowNested: false,\n\t\t\t\t\t\t\t\tinherit: false,\n\t\t\t\t\t\t\t\tperPage: 10,\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\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ displayInheritControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => inherit !== false }\n\t\t\t\t\t\t\tlabel={ queryTypeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { inherit: false } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<InheritControl\n\t\t\t\t\t\t\t\tlabel={ queryTypeControlLabel }\n\t\t\t\t\t\t\t\tvalue={ inherit }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\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{ ! inheritQuery && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => taxonomy !== 'category' }\n\t\t\t\t\t\t\tlabel={ taxonomyControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetQuery( { 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<TaxonomyControl\n\t\t\t\t\t\t\t\tlabel={ taxonomyControlLabel }\n\t\t\t\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t// We also need to reset the include filter when changing taxonomy.\n\t\t\t\t\t\t\t\t\tsetQuery( { taxonomy: value, include: [] } )\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={ () => orderBy !== 'name' || order !== 'asc' }\n\t\t\t\t\t\tlabel={ orderByControlLabel }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetQuery( { orderBy: 'name', order: 'asc' } )\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<OrderControl\n\t\t\t\t\t\t\tlabel={ orderByControlLabel }\n\t\t\t\t\t\t\t{ ...{ orderBy, order } }\n\t\t\t\t\t\t\tonChange={ ( newOrderBy, newOrder ) => {\n\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\torderBy: newOrderBy,\n\t\t\t\t\t\t\t\t\torder: newOrder,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisabled={ hasIncludeFilter }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\thasIncludeFilter\n\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t'When specific terms are selected, the order is based on their selection order.'\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ ! inheritQuery && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! include?.length }\n\t\t\t\t\t\t\tlabel={ includeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\tinclude: [],\n\t\t\t\t\t\t\t\t\torderBy: 'name',\n\t\t\t\t\t\t\t\t\torder: 'asc',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<IncludeControl\n\t\t\t\t\t\t\t\tlabel={ includeControlLabel }\n\t\t\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\t\t\tvalue={ include }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { include: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => hideEmpty !== true }\n\t\t\t\t\t\tlabel={ emptyTermsControlLabel }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { hideEmpty: true } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<EmptyTermsControl\n\t\t\t\t\t\t\tlabel={ emptyTermsControlLabel }\n\t\t\t\t\t\t\tvalue={ hideEmpty }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { hideEmpty: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ displayShowNestedControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => showNested !== false }\n\t\t\t\t\t\t\tlabel={ nestedTermsControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { showNested: 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<NestedTermsControl\n\t\t\t\t\t\t\t\tlabel={ nestedTermsControlLabel }\n\t\t\t\t\t\t\t\tvalue={ showNested }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { showNested: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={ hasIncludeFilter }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\thasIncludeFilter\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'When specific terms are selected, only those are displayed.'\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\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={ () => perPage !== 10 }\n\t\t\t\t\t\tlabel={ maxTermsControlLabel }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { perPage: 10 } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<MaxTermsControl\n\t\t\t\t\t\t\tlabel={ maxTermsControlLabel }\n\t\t\t\t\t\t\tvalue={ perPage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { perPage: value } )\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<AdvancedControls\n\t\t\t\tTagName={ TagName }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/terms-query/edit/inspector-controls/inherit-control.jsx"],
4
- "sourcesContent": ["import {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function InheritControl( { value, onChange, label } ) {\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tlabel={ label }\n\t\t\tisBlock\n\t\t\tonChange={ ( newValue ) => {\n\t\t\t\tonChange( {\n\t\t\t\t\tinherit: newValue === 'default',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\thelp={\n\t\t\t\tvalue\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'Display terms based on the current taxonomy archive. For hierarchical taxonomies, shows children of the current term. For non-hierarchical taxonomies, shows all terms.'\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Display terms based on specific criteria.' )\n\t\t\t}\n\t\t\tvalue={ value ? 'default' : 'custom' }\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tvalue=\"default\"\n\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption value=\"custom\" label={ __( 'Custom' ) } />\n\t\t</ToggleGroupControl>\n\t);\n}\n"],
5
- "mappings": ";AAAA;AAAA,EACC,oCAAoC;AAAA,EACpC,0CAA0C;AAAA,OACpC;AACP,SAAS,UAAU;AAIjB,SAiBC,KAjBD;AAFa,SAAR,eAAiC,EAAE,OAAO,UAAU,MAAM,GAAI;AACpE,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,SAAO;AAAA,MACP,UAAW,CAAE,aAAc;AAC1B,iBAAU;AAAA,UACT,SAAS,aAAa;AAAA,QACvB,CAAE;AAAA,MACH;AAAA,MACA,MACC,QACG;AAAA,QACA;AAAA,MACA,IACA,GAAI,2CAA4C;AAAA,MAEpD,OAAQ,QAAQ,YAAY;AAAA,MAE5B;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,OAAM;AAAA,YACN,OAAQ,GAAI,SAAU;AAAA;AAAA,QACvB;AAAA,QACA,oBAAC,4BAAyB,OAAM,UAAS,OAAQ,GAAI,QAAS,GAAI;AAAA;AAAA;AAAA,EACnE;AAEF;",
4
+ "sourcesContent": ["import {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function InheritControl( { value, onChange, label } ) {\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tlabel={ label }\n\t\t\tisBlock\n\t\t\tonChange={ ( newValue ) => {\n\t\t\t\tonChange( {\n\t\t\t\t\tinherit: newValue === 'default',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\thelp={\n\t\t\t\tvalue\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'Display terms based on the current taxonomy archive. For hierarchical taxonomies, shows children of the current term. For non-hierarchical taxonomies, shows all terms.'\n\t\t\t\t\t\t)\n\t\t\t\t\t: __( 'Display terms based on specific criteria.' )\n\t\t\t}\n\t\t\tvalue={ value ? 'default' : 'custom' }\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tvalue=\"default\"\n\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption value=\"custom\" label={ __( 'Custom' ) } />\n\t\t</ToggleGroupControl>\n\t);\n}\n"],
5
+ "mappings": ";AAAA;AAAA,EACC,oCAAoC;AAAA,EACpC,0CAA0C;AAAA,OACpC;AACP,SAAS,UAAU;AAIjB,SAiBC,KAjBD;AAFa,SAAR,eAAiC,EAAE,OAAO,UAAU,MAAM,GAAI;AACpE,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,SAAO;AAAA,MACP,UAAW,CAAE,aAAc;AAC1B,iBAAU;AAAA,UACT,SAAS,aAAa;AAAA,QACvB,CAAE;AAAA,MACH;AAAA,MACA,MACC,QACG;AAAA,QACA;AAAA,MACD,IACC,GAAI,2CAA4C;AAAA,MAEpD,OAAQ,QAAQ,YAAY;AAAA,MAE5B;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,OAAM;AAAA,YACN,OAAQ,GAAI,SAAU;AAAA;AAAA,QACvB;AAAA,QACA,oBAAC,4BAAyB,OAAM,UAAS,OAAQ,GAAI,QAAS,GAAI;AAAA;AAAA;AAAA,EACnE;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,10 +1,10 @@
1
1
  // packages/block-library/src/terms-query/edit/inspector-controls/order-control.jsx
2
2
  import { __ } from "@wordpress/i18n";
3
- import { SelectControl } from "@wordpress/components";
3
+ import { SelectControl as WCSelectControl } from "@wordpress/components";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  function OrderControl({ orderBy, order, onChange, ...props }) {
6
6
  return /* @__PURE__ */ jsx(
7
- SelectControl,
7
+ WCSelectControl,
8
8
  {
9
9
  options: [
10
10
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/terms-query/edit/inspector-controls/order-control.jsx"],
4
- "sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\n\nexport default function OrderControl( { orderBy, order, onChange, ...props } ) {\n\treturn (\n\t\t<SelectControl\n\t\t\toptions={ [\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Name: A → Z' ),\n\t\t\t\t\tvalue: 'name/asc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Name: Z → A' ),\n\t\t\t\t\tvalue: 'name/desc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Count, high to low' ),\n\t\t\t\t\tvalue: 'count/desc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Count, low to high' ),\n\t\t\t\t\tvalue: 'count/asc',\n\t\t\t\t},\n\t\t\t] }\n\t\t\tvalue={ orderBy + '/' + order }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tconst [ newOrderBy, newOrder ] = value.split( '/' );\n\t\t\t\tonChange( newOrderBy, newOrder );\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],
5
- "mappings": ";AAAA,SAAS,UAAU;AACnB,SAAS,qBAAqB;AAI5B;AAFa,SAAR,aAA+B,EAAE,SAAS,OAAO,UAAU,GAAG,MAAM,GAAI;AAC9E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,SAAU;AAAA,QACT;AAAA,UACC,OAAO,GAAI,aAAc;AAAA,UACzB,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO,GAAI,aAAc;AAAA,UACzB,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO,GAAI,oBAAqB;AAAA,UAChC,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO,GAAI,oBAAqB;AAAA,UAChC,OAAO;AAAA,QACR;AAAA,MACD;AAAA,MACA,OAAQ,UAAU,MAAM;AAAA,MACxB,UAAW,CAAE,UAAW;AACvB,cAAM,CAAE,YAAY,QAAS,IAAI,MAAM,MAAO,GAAI;AAClD,iBAAU,YAAY,QAAS;AAAA,MAChC;AAAA,MACE,GAAG;AAAA;AAAA,EACN;AAEF;",
4
+ "sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport { SelectControl as WCSelectControl } from '@wordpress/components';\n\nexport default function OrderControl( { orderBy, order, onChange, ...props } ) {\n\treturn (\n\t\t<WCSelectControl\n\t\t\toptions={ [\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Name: A → Z' ),\n\t\t\t\t\tvalue: 'name/asc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Name: Z → A' ),\n\t\t\t\t\tvalue: 'name/desc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Count, high to low' ),\n\t\t\t\t\tvalue: 'count/desc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Count, low to high' ),\n\t\t\t\t\tvalue: 'count/asc',\n\t\t\t\t},\n\t\t\t] }\n\t\t\tvalue={ orderBy + '/' + order }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tconst [ newOrderBy, newOrder ] = value.split( '/' );\n\t\t\t\tonChange( newOrderBy, newOrder );\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,UAAU;AACnB,SAAS,iBAAiB,uBAAuB;AAI/C;AAFa,SAAR,aAA+B,EAAE,SAAS,OAAO,UAAU,GAAG,MAAM,GAAI;AAC9E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,SAAU;AAAA,QACT;AAAA,UACC,OAAO,GAAI,aAAc;AAAA,UACzB,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO,GAAI,aAAc;AAAA,UACzB,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO,GAAI,oBAAqB;AAAA,UAChC,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO,GAAI,oBAAqB;AAAA,UAChC,OAAO;AAAA,QACR;AAAA,MACD;AAAA,MACA,OAAQ,UAAU,MAAM;AAAA,MACxB,UAAW,CAAE,UAAW;AACvB,cAAM,CAAE,YAAY,QAAS,IAAI,MAAM,MAAO,GAAI;AAClD,iBAAU,YAAY,QAAS;AAAA,MAChC;AAAA,MACE,GAAG;AAAA;AAAA,EACN;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  // packages/block-library/src/terms-query/edit/inspector-controls/taxonomy-control.jsx
2
- import { SelectControl } from "@wordpress/components";
2
+ import { SelectControl as WCSelectControl } from "@wordpress/components";
3
3
  import { usePublicTaxonomies } from "../../utils.mjs";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  function TaxonomyControl({ value, onChange, ...props }) {
@@ -9,7 +9,7 @@ function TaxonomyControl({ value, onChange, ...props }) {
9
9
  value: taxonomy.slug
10
10
  }));
11
11
  return /* @__PURE__ */ jsx(
12
- SelectControl,
12
+ WCSelectControl,
13
13
  {
14
14
  options: taxonomyOptions,
15
15
  value,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/terms-query/edit/inspector-controls/taxonomy-control.jsx"],
4
- "sourcesContent": ["import { SelectControl } from '@wordpress/components';\nimport { usePublicTaxonomies } from '../../utils';\n\nexport default function TaxonomyControl( { value, onChange, ...props } ) {\n\tconst taxonomies = usePublicTaxonomies();\n\tconst taxonomyOptions = taxonomies.map( ( taxonomy ) => ( {\n\t\tlabel: taxonomy.name,\n\t\tvalue: taxonomy.slug,\n\t} ) );\n\n\treturn (\n\t\t<SelectControl\n\t\t\toptions={ taxonomyOptions }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],
5
- "mappings": ";AAAA,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AAUlC;AARa,SAAR,gBAAkC,EAAE,OAAO,UAAU,GAAG,MAAM,GAAI;AACxE,QAAM,aAAa,oBAAoB;AACvC,QAAM,kBAAkB,WAAW,IAAK,CAAE,cAAgB;AAAA,IACzD,OAAO,SAAS;AAAA,IAChB,OAAO,SAAS;AAAA,EACjB,EAAI;AAEJ,SACC;AAAA,IAAC;AAAA;AAAA,MACA,SAAU;AAAA,MACV;AAAA,MACA;AAAA,MACE,GAAG;AAAA;AAAA,EACN;AAEF;",
4
+ "sourcesContent": ["import { SelectControl as WCSelectControl } from '@wordpress/components';\nimport { usePublicTaxonomies } from '../../utils';\n\nexport default function TaxonomyControl( { value, onChange, ...props } ) {\n\tconst taxonomies = usePublicTaxonomies();\n\tconst taxonomyOptions = taxonomies.map( ( taxonomy ) => ( {\n\t\tlabel: taxonomy.name,\n\t\tvalue: taxonomy.slug,\n\t} ) );\n\n\treturn (\n\t\t<WCSelectControl\n\t\t\toptions={ taxonomyOptions }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,iBAAiB,uBAAuB;AACjD,SAAS,2BAA2B;AAUlC;AARa,SAAR,gBAAkC,EAAE,OAAO,UAAU,GAAG,MAAM,GAAI;AACxE,QAAM,aAAa,oBAAoB;AACvC,QAAM,kBAAkB,WAAW,IAAK,CAAE,cAAgB;AAAA,IACzD,OAAO,SAAS;AAAA,IAChB,OAAO,SAAS;AAAA,EACjB,EAAI;AAEJ,SACC;AAAA,IAAC;AAAA;AAAA,MACA,SAAU;AAAA,MACV;AAAA,MACA;AAAA,MACE,GAAG;AAAA;AAAA,EACN;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/hooks.js"],
4
- "sourcesContent": ["import { useSelect } from '@wordpress/data';\nimport { useLayoutEffect, useEffect, useRef } from '@wordpress/element';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Returns whether the current user can edit the given entity.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport function useCanEditEntity( kind, name, recordId ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'update', {\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\tid: recordId,\n\t\t\t} ),\n\t\t[ kind, name, recordId ]\n\t);\n}\n\n/**\n * Handles uploading a media file from a blob URL on mount.\n *\n * @param {Object} args Upload media arguments.\n * @param {string} args.url Blob URL.\n * @param {?Array} args.allowedTypes Array of allowed media types.\n * @param {Function} args.onChange Function called when the media is uploaded.\n * @param {Function} args.onError Function called when an error happens.\n */\nexport function useUploadMediaFromBlobURL( args = {} ) {\n\tconst latestArgsRef = useRef( args );\n\tconst hasUploadStartedRef = useRef( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseLayoutEffect( () => {\n\t\tlatestArgsRef.current = args;\n\t} );\n\n\tuseEffect( () => {\n\t\t// Uploading is a special effect that can't be canceled via the cleanup method.\n\t\t// The extra check avoids duplicate uploads in development mode (React.StrictMode).\n\t\tif ( hasUploadStartedRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\t! latestArgsRef.current.url ||\n\t\t\t! isBlobURL( latestArgsRef.current.url )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( latestArgsRef.current.url );\n\t\tif ( ! file ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { url, allowedTypes, onChange, onError } = latestArgsRef.current;\n\t\tconst { mediaUpload } = getSettings();\n\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\n\t\thasUploadStartedRef.current = true;\n\n\t\tmediaUpload( {\n\t\t\tfilesList: [ file ],\n\t\t\tallowedTypes,\n\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\tif ( isBlobURL( media?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trevokeBlobURL( url );\n\t\t\t\tonChange( media );\n\t\t\t\thasUploadStartedRef.current = false;\n\t\t\t},\n\t\t\tonError: ( message ) => {\n\t\t\t\trevokeBlobURL( url );\n\t\t\t\tonError( message );\n\t\t\t\thasUploadStartedRef.current = false;\n\t\t\t},\n\t\t} );\n\t}, [ getSettings ] );\n}\n\nexport function useDefaultAvatar() {\n\tconst avatarURL = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings?.avatarURL ?? '';\n\t}, [] );\n\treturn avatarURL;\n}\n\nexport function useToolsPanelDropdownMenuProps() {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn ! isMobile\n\t\t? {\n\t\t\t\tpopoverProps: {\n\t\t\t\t\tplacement: 'left-start',\n\t\t\t\t\t// For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)\n\t\t\t\t\toffset: 259,\n\t\t\t\t},\n\t\t }\n\t\t: {};\n}\n"],
5
- "mappings": ";AAAA,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB,WAAW,cAAc;AACnD,SAAS,cAAc,WAAW,qBAAqB;AACvD,SAAS,SAAS,wBAAwB;AAC1C,SAAS,SAAS,iBAAiB;AACnC,SAAS,wBAAwB;AAS1B,SAAS,iBAAkB,MAAM,MAAM,UAAW;AACxD,SAAO;AAAA,IACN,CAAE,WACD,OAAQ,SAAU,EAAE,QAAS,UAAU;AAAA,MACtC;AAAA,MACA;AAAA,MACA,IAAI;AAAA,IACL,CAAE;AAAA,IACH,CAAE,MAAM,MAAM,QAAS;AAAA,EACxB;AACD;AAWO,SAAS,0BAA2B,OAAO,CAAC,GAAI;AACtD,QAAM,gBAAgB,OAAQ,IAAK;AACnC,QAAM,sBAAsB,OAAQ,KAAM;AAC1C,QAAM,EAAE,YAAY,IAAI,UAAW,gBAAiB;AAEpD,kBAAiB,MAAM;AACtB,kBAAc,UAAU;AAAA,EACzB,CAAE;AAEF,YAAW,MAAM;AAGhB,QAAK,oBAAoB,SAAU;AAClC;AAAA,IACD;AACA,QACC,CAAE,cAAc,QAAQ,OACxB,CAAE,UAAW,cAAc,QAAQ,GAAI,GACtC;AACD;AAAA,IACD;AAEA,UAAM,OAAO,aAAc,cAAc,QAAQ,GAAI;AACrD,QAAK,CAAE,MAAO;AACb;AAAA,IACD;AAEA,UAAM,EAAE,KAAK,cAAc,UAAU,QAAQ,IAAI,cAAc;AAC/D,UAAM,EAAE,YAAY,IAAI,YAAY;AAEpC,QAAK,CAAE,aAAc;AACpB;AAAA,IACD;AAEA,wBAAoB,UAAU;AAE9B,gBAAa;AAAA,MACZ,WAAW,CAAE,IAAK;AAAA,MAClB;AAAA,MACA,cAAc,CAAE,CAAE,KAAM,MAAO;AAC9B,YAAK,UAAW,OAAO,GAAI,GAAI;AAC9B;AAAA,QACD;AAEA,sBAAe,GAAI;AACnB,iBAAU,KAAM;AAChB,4BAAoB,UAAU;AAAA,MAC/B;AAAA,MACA,SAAS,CAAE,YAAa;AACvB,sBAAe,GAAI;AACnB,gBAAS,OAAQ;AACjB,4BAAoB,UAAU;AAAA,MAC/B;AAAA,IACD,CAAE;AAAA,EACH,GAAG,CAAE,WAAY,CAAE;AACpB;AAEO,SAAS,mBAAmB;AAClC,QAAM,YAAY,UAAW,CAAE,WAAY;AAC1C,UAAM,EAAE,YAAY,IAAI,OAAQ,gBAAiB;AACjD,UAAM,EAAE,iCAAiC,IAAI,YAAY;AACzD,WAAO,kCAAkC,aAAa;AAAA,EACvD,GAAG,CAAC,CAAE;AACN,SAAO;AACR;AAEO,SAAS,iCAAiC;AAChD,QAAM,WAAW,iBAAkB,UAAU,GAAI;AACjD,SAAO,CAAE,WACN;AAAA,IACA,cAAc;AAAA,MACb,WAAW;AAAA;AAAA,MAEX,QAAQ;AAAA,IACT;AAAA,EACA,IACA,CAAC;AACL;",
4
+ "sourcesContent": ["import { useSelect } from '@wordpress/data';\nimport { useLayoutEffect, useEffect, useRef } from '@wordpress/element';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Returns whether the current user can edit the given entity.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport function useCanEditEntity( kind, name, recordId ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'update', {\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\tid: recordId,\n\t\t\t} ),\n\t\t[ kind, name, recordId ]\n\t);\n}\n\n/**\n * Handles uploading a media file from a blob URL on mount.\n *\n * @param {Object} args Upload media arguments.\n * @param {string} args.url Blob URL.\n * @param {?Array} args.allowedTypes Array of allowed media types.\n * @param {Function} args.onChange Function called when the media is uploaded.\n * @param {Function} args.onError Function called when an error happens.\n */\nexport function useUploadMediaFromBlobURL( args = {} ) {\n\tconst latestArgsRef = useRef( args );\n\tconst hasUploadStartedRef = useRef( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseLayoutEffect( () => {\n\t\tlatestArgsRef.current = args;\n\t} );\n\n\tuseEffect( () => {\n\t\t// Uploading is a special effect that can't be canceled via the cleanup method.\n\t\t// The extra check avoids duplicate uploads in development mode (React.StrictMode).\n\t\tif ( hasUploadStartedRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\t! latestArgsRef.current.url ||\n\t\t\t! isBlobURL( latestArgsRef.current.url )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( latestArgsRef.current.url );\n\t\tif ( ! file ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { url, allowedTypes, onChange, onError } = latestArgsRef.current;\n\t\tconst { mediaUpload } = getSettings();\n\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\n\t\thasUploadStartedRef.current = true;\n\n\t\tmediaUpload( {\n\t\t\tfilesList: [ file ],\n\t\t\tallowedTypes,\n\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\tif ( isBlobURL( media?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trevokeBlobURL( url );\n\t\t\t\tonChange( media );\n\t\t\t\thasUploadStartedRef.current = false;\n\t\t\t},\n\t\t\tonError: ( message ) => {\n\t\t\t\trevokeBlobURL( url );\n\t\t\t\tonError( message );\n\t\t\t\thasUploadStartedRef.current = false;\n\t\t\t},\n\t\t} );\n\t}, [ getSettings ] );\n}\n\nexport function useDefaultAvatar() {\n\tconst avatarURL = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings?.avatarURL ?? '';\n\t}, [] );\n\treturn avatarURL;\n}\n\nexport function useToolsPanelDropdownMenuProps() {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn ! isMobile\n\t\t? {\n\t\t\t\tpopoverProps: {\n\t\t\t\t\tplacement: 'left-start',\n\t\t\t\t\t// For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)\n\t\t\t\t\toffset: 259,\n\t\t\t\t},\n\t\t\t}\n\t\t: {};\n}\n"],
5
+ "mappings": ";AAAA,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB,WAAW,cAAc;AACnD,SAAS,cAAc,WAAW,qBAAqB;AACvD,SAAS,SAAS,wBAAwB;AAC1C,SAAS,SAAS,iBAAiB;AACnC,SAAS,wBAAwB;AAS1B,SAAS,iBAAkB,MAAM,MAAM,UAAW;AACxD,SAAO;AAAA,IACN,CAAE,WACD,OAAQ,SAAU,EAAE,QAAS,UAAU;AAAA,MACtC;AAAA,MACA;AAAA,MACA,IAAI;AAAA,IACL,CAAE;AAAA,IACH,CAAE,MAAM,MAAM,QAAS;AAAA,EACxB;AACD;AAWO,SAAS,0BAA2B,OAAO,CAAC,GAAI;AACtD,QAAM,gBAAgB,OAAQ,IAAK;AACnC,QAAM,sBAAsB,OAAQ,KAAM;AAC1C,QAAM,EAAE,YAAY,IAAI,UAAW,gBAAiB;AAEpD,kBAAiB,MAAM;AACtB,kBAAc,UAAU;AAAA,EACzB,CAAE;AAEF,YAAW,MAAM;AAGhB,QAAK,oBAAoB,SAAU;AAClC;AAAA,IACD;AACA,QACC,CAAE,cAAc,QAAQ,OACxB,CAAE,UAAW,cAAc,QAAQ,GAAI,GACtC;AACD;AAAA,IACD;AAEA,UAAM,OAAO,aAAc,cAAc,QAAQ,GAAI;AACrD,QAAK,CAAE,MAAO;AACb;AAAA,IACD;AAEA,UAAM,EAAE,KAAK,cAAc,UAAU,QAAQ,IAAI,cAAc;AAC/D,UAAM,EAAE,YAAY,IAAI,YAAY;AAEpC,QAAK,CAAE,aAAc;AACpB;AAAA,IACD;AAEA,wBAAoB,UAAU;AAE9B,gBAAa;AAAA,MACZ,WAAW,CAAE,IAAK;AAAA,MAClB;AAAA,MACA,cAAc,CAAE,CAAE,KAAM,MAAO;AAC9B,YAAK,UAAW,OAAO,GAAI,GAAI;AAC9B;AAAA,QACD;AAEA,sBAAe,GAAI;AACnB,iBAAU,KAAM;AAChB,4BAAoB,UAAU;AAAA,MAC/B;AAAA,MACA,SAAS,CAAE,YAAa;AACvB,sBAAe,GAAI;AACnB,gBAAS,OAAQ;AACjB,4BAAoB,UAAU;AAAA,MAC/B;AAAA,IACD,CAAE;AAAA,EACH,GAAG,CAAE,WAAY,CAAE;AACpB;AAEO,SAAS,mBAAmB;AAClC,QAAM,YAAY,UAAW,CAAE,WAAY;AAC1C,UAAM,EAAE,YAAY,IAAI,OAAQ,gBAAiB;AACjD,UAAM,EAAE,iCAAiC,IAAI,YAAY;AACzD,WAAO,kCAAkC,aAAa;AAAA,EACvD,GAAG,CAAC,CAAE;AACN,SAAO;AACR;AAEO,SAAS,iCAAiC;AAChD,QAAM,WAAW,iBAAkB,UAAU,GAAI;AACjD,SAAO,CAAE,WACN;AAAA,IACA,cAAc;AAAA,MACb,WAAW;AAAA;AAAA,MAEX,QAAQ;AAAA,IACT;AAAA,EACD,IACC,CAAC;AACL;",
6
6
  "names": []
7
7
  }
@@ -58,7 +58,9 @@ function MediaControl({
58
58
  onError,
59
59
  onReset,
60
60
  isUploading = false,
61
- emptyLabel = __("Media")
61
+ emptyLabel = __("Media"),
62
+ useFeaturedImage,
63
+ onToggleFeaturedImage
62
64
  }) {
63
65
  const { getSettings } = useSelect(blockEditorStore);
64
66
  const onFilesDrop = (filesList) => {
@@ -93,6 +95,8 @@ function MediaControl({
93
95
  onSelect,
94
96
  onSelectURL,
95
97
  onError,
98
+ useFeaturedImage,
99
+ onToggleFeaturedImage,
96
100
  name: /* @__PURE__ */ jsx(
97
101
  MediaControlPreview,
98
102
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/media-control.jsx"],
4
- "sourcesContent": ["import {\n\tButton,\n\tDropZone,\n\tFlexBlock,\n\tSpinner,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport {\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { focus } from '@wordpress/dom';\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { reset as resetIcon } from '@wordpress/icons';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Focuses the toggle button.\n *\n * @param {Object} containerRef - ref object containing current element\n */\nconst focusToggleButton = ( containerRef ) => {\n\t// Use requestAnimationFrame to ensure DOM updates are complete.\n\twindow.requestAnimationFrame( () => {\n\t\tconst [ toggleButton ] = focus.tabbable.find( containerRef?.current );\n\t\tif ( ! toggleButton ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttoggleButton.focus();\n\t} );\n};\n\n/**\n * MediaControlPreview - Preview component showing media thumbnail and filename\n *\n * @param {Object} props\n * @param {string} props.url Media URL for thumbnail\n * @param {string} props.filename Filename to display\n * @param {Object} props.itemGroupProps Optional props to pass to ItemGroup\n * @param {string} props.className Optional className for Truncate\n * @param {string} props.label Optional label for accessibility\n * @return {Element} Preview component\n */\nexport function MediaControlPreview( {\n\turl,\n\tfilename,\n\titemGroupProps,\n\tclassName,\n\tlabel,\n} ) {\n\treturn (\n\t\t<ItemGroup { ...itemGroupProps } as=\"span\">\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"block-library-utils__media-control__inspector-image-indicator\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tbackgroundImage: url ? `url(${ url })` : undefined,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<FlexBlock>\n\t\t\t\t\t<Truncate numberOfLines={ 1 } className={ className }>\n\t\t\t\t\t\t{ filename ?? label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</FlexBlock>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\n/**\n * MediaControl - Complete media selection control for inspector panels\n *\n * @param {Object} props\n * @param {number} props.mediaId Media attachment ID\n * @param {string} props.mediaUrl Media URL\n * @param {string} props.filename Filename to display\n * @param {Array} props.allowedTypes Allowed media types\n * @param {Function} props.onSelect Callback when media selected\n * @param {Function} props.onSelectURL Callback when URL entered\n * @param {Function} props.onError Error callback\n * @param {Function} props.onReset Reset/remove callback\n * @param {boolean} props.isUploading Whether upload in progress\n * @param {string} props.emptyLabel Label when no media (default: 'Add media')\n * @return {Element} Media control component\n */\nexport function MediaControl( {\n\tmediaId,\n\tmediaUrl,\n\tfilename,\n\tallowedTypes,\n\tonSelect,\n\tonSelectURL,\n\tonError,\n\tonReset,\n\tisUploading = false,\n\temptyLabel = __( 'Media' ),\n} ) {\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst onFilesDrop = ( filesList ) => {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ media ] ) {\n\t\t\t\tonSelect( media );\n\t\t\t},\n\t\t\tonError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\tconst containerRef = useRef();\n\n\treturn (\n\t\t<div\n\t\t\tref={ containerRef }\n\t\t\tclassName=\"block-library-utils__media-control\"\n\t\t>\n\t\t\t<MediaReplaceFlow\n\t\t\t\tclassName=\"block-library-utils__media-control__replace-flow\"\n\t\t\t\tmediaId={ mediaId }\n\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onError }\n\t\t\t\tname={\n\t\t\t\t\t<MediaControlPreview\n\t\t\t\t\t\turl={ mediaUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tclassName=\"block-library-utils__media-control__inspector-media-replace-title\"\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tmediaUrl\n\t\t\t\t\t\t\t\t? getFilename( filename ) || emptyLabel\n\t\t\t\t\t\t\t\t: emptyLabel\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize>\n\t\t\t\t\t\t{ isUploading ? <Spinner /> : props.children }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\tonReset={ onReset }\n\t\t\t/>\n\t\t\t{ mediaUrl && onReset && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={ __( 'Reset' ) }\n\t\t\t\t\tclassName=\"block-library-utils__media-control__reset\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonReset();\n\t\t\t\t\t\tfocusToggleButton( containerRef );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\n\t\t</div>\n\t);\n}\n"],
5
- "mappings": ";AAAA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,2BAA2B;AAAA,EAC3B,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,OACpB;AACP;AAAA,EACC;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,aAAa;AACtB,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,iBAAiB;AAC1B,SAAS,SAAS,iBAAiB;AACnC,SAAS,mBAAmB;AAuCzB,SACC,KADD;AAhCH,IAAM,oBAAoB,CAAE,iBAAkB;AAE7C,SAAO,sBAAuB,MAAM;AACnC,UAAM,CAAE,YAAa,IAAI,MAAM,SAAS,KAAM,cAAc,OAAQ;AACpE,QAAK,CAAE,cAAe;AACrB;AAAA,IACD;AAEA,iBAAa,MAAM;AAAA,EACpB,CAAE;AACH;AAaO,SAAS,oBAAqB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,SACC,oBAAC,aAAY,GAAG,gBAAiB,IAAG,QACnC,+BAAC,UAAO,SAAQ,cACf;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,OAAQ;AAAA,UACP,iBAAiB,MAAM,OAAQ,GAAI,MAAM;AAAA,QAC1C;AAAA;AAAA,IACD;AAAA,IACA,oBAAC,aACA,8BAAC,YAAS,eAAgB,GAAI,WAC3B,sBAAY,OACf,GACD;AAAA,KACD,GACD;AAEF;AAkBO,SAAS,aAAc;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,aAAa,GAAI,OAAQ;AAC1B,GAAI;AACH,QAAM,EAAE,YAAY,IAAI,UAAW,gBAAiB;AACpD,QAAM,cAAc,CAAE,cAAe;AACpC,UAAM,EAAE,YAAY,IAAI,YAAY;AACpC,QAAK,CAAE,aAAc;AACpB;AAAA,IACD;AACA,gBAAa;AAAA,MACZ;AAAA,MACA;AAAA,MACA,aAAc,CAAE,KAAM,GAAI;AACzB,iBAAU,KAAM;AAAA,MACjB;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACX,CAAE;AAAA,EACH;AACA,QAAM,eAAe,OAAO;AAE5B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,KAAM;AAAA,MACN,WAAU;AAAA,MAEV;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV;AAAA,YACA,UAAW;AAAA,YACX;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,MACC;AAAA,cAAC;AAAA;AAAA,gBACA,KAAM;AAAA,gBACN;AAAA,gBACA,WAAU;AAAA,gBACV,OACC,WACG,YAAa,QAAS,KAAK,aAC3B;AAAA;AAAA,YAEL;AAAA,YAED,cAAe,CAAE,UAChB,oBAAC,UAAS,GAAG,OAAQ,uBAAqB,MACvC,wBAAc,oBAAC,WAAQ,IAAK,MAAM,UACrC;AAAA,YAED;AAAA;AAAA,QACD;AAAA,QACE,YAAY,WACb;AAAA,UAAC;AAAA;AAAA,YACA,OAAQ,GAAI,OAAQ;AAAA,YACpB,WAAU;AAAA,YACV,MAAK;AAAA,YACL,MAAO;AAAA,YACP,SAAU,MAAM;AACf,sBAAQ;AACR,gCAAmB,YAAa;AAAA,YACjC;AAAA;AAAA,QACD;AAAA,QAED,oBAAC,YAAS,aAA4B;AAAA;AAAA;AAAA,EACvC;AAEF;",
4
+ "sourcesContent": ["import {\n\tButton,\n\tDropZone,\n\tFlexBlock,\n\tSpinner,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport {\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { focus } from '@wordpress/dom';\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { reset as resetIcon } from '@wordpress/icons';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Focuses the toggle button.\n *\n * @param {Object} containerRef - ref object containing current element\n */\nconst focusToggleButton = ( containerRef ) => {\n\t// Use requestAnimationFrame to ensure DOM updates are complete.\n\twindow.requestAnimationFrame( () => {\n\t\tconst [ toggleButton ] = focus.tabbable.find( containerRef?.current );\n\t\tif ( ! toggleButton ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttoggleButton.focus();\n\t} );\n};\n\n/**\n * MediaControlPreview - Preview component showing media thumbnail and filename\n *\n * @param {Object} props\n * @param {string} props.url Media URL for thumbnail\n * @param {string} props.filename Filename to display\n * @param {Object} props.itemGroupProps Optional props to pass to ItemGroup\n * @param {string} props.className Optional className for Truncate\n * @param {string} props.label Optional label for accessibility\n * @return {Element} Preview component\n */\nexport function MediaControlPreview( {\n\turl,\n\tfilename,\n\titemGroupProps,\n\tclassName,\n\tlabel,\n} ) {\n\treturn (\n\t\t<ItemGroup { ...itemGroupProps } as=\"span\">\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"block-library-utils__media-control__inspector-image-indicator\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tbackgroundImage: url ? `url(${ url })` : undefined,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<FlexBlock>\n\t\t\t\t\t<Truncate numberOfLines={ 1 } className={ className }>\n\t\t\t\t\t\t{ filename ?? label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</FlexBlock>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\n/**\n * MediaControl - Complete media selection control for inspector panels\n *\n * @param {Object} props\n * @param {number} props.mediaId Media attachment ID\n * @param {string} props.mediaUrl Media URL\n * @param {string} props.filename Filename to display\n * @param {Array} props.allowedTypes Allowed media types\n * @param {Function} props.onSelect Callback when media selected\n * @param {Function} props.onSelectURL Callback when URL entered\n * @param {Function} props.onError Error callback\n * @param {Function} props.onReset Reset/remove callback\n * @param {boolean} props.isUploading Whether upload in progress\n * @param {string} props.emptyLabel Label when no media (default: 'Add media')\n * @param {boolean} props.useFeaturedImage Whether the featured image is in use\n * @param {Function} props.onToggleFeaturedImage Callback toggling the featured image\n * @return {Element} Media control component\n */\nexport function MediaControl( {\n\tmediaId,\n\tmediaUrl,\n\tfilename,\n\tallowedTypes,\n\tonSelect,\n\tonSelectURL,\n\tonError,\n\tonReset,\n\tisUploading = false,\n\temptyLabel = __( 'Media' ),\n\tuseFeaturedImage,\n\tonToggleFeaturedImage,\n} ) {\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst onFilesDrop = ( filesList ) => {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ media ] ) {\n\t\t\t\tonSelect( media );\n\t\t\t},\n\t\t\tonError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\tconst containerRef = useRef();\n\n\treturn (\n\t\t<div\n\t\t\tref={ containerRef }\n\t\t\tclassName=\"block-library-utils__media-control\"\n\t\t>\n\t\t\t<MediaReplaceFlow\n\t\t\t\tclassName=\"block-library-utils__media-control__replace-flow\"\n\t\t\t\tmediaId={ mediaId }\n\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onError }\n\t\t\t\tuseFeaturedImage={ useFeaturedImage }\n\t\t\t\tonToggleFeaturedImage={ onToggleFeaturedImage }\n\t\t\t\tname={\n\t\t\t\t\t<MediaControlPreview\n\t\t\t\t\t\turl={ mediaUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tclassName=\"block-library-utils__media-control__inspector-media-replace-title\"\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tmediaUrl\n\t\t\t\t\t\t\t\t? getFilename( filename ) || emptyLabel\n\t\t\t\t\t\t\t\t: emptyLabel\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize>\n\t\t\t\t\t\t{ isUploading ? <Spinner /> : props.children }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\tonReset={ onReset }\n\t\t\t/>\n\t\t\t{ mediaUrl && onReset && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={ __( 'Reset' ) }\n\t\t\t\t\tclassName=\"block-library-utils__media-control__reset\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonReset();\n\t\t\t\t\t\tfocusToggleButton( containerRef );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\n\t\t</div>\n\t);\n}\n"],
5
+ "mappings": ";AAAA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,2BAA2B;AAAA,EAC3B,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,OACpB;AACP;AAAA,EACC;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,aAAa;AACtB,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,iBAAiB;AAC1B,SAAS,SAAS,iBAAiB;AACnC,SAAS,mBAAmB;AAuCzB,SACC,KADD;AAhCH,IAAM,oBAAoB,CAAE,iBAAkB;AAE7C,SAAO,sBAAuB,MAAM;AACnC,UAAM,CAAE,YAAa,IAAI,MAAM,SAAS,KAAM,cAAc,OAAQ;AACpE,QAAK,CAAE,cAAe;AACrB;AAAA,IACD;AAEA,iBAAa,MAAM;AAAA,EACpB,CAAE;AACH;AAaO,SAAS,oBAAqB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,SACC,oBAAC,aAAY,GAAG,gBAAiB,IAAG,QACnC,+BAAC,UAAO,SAAQ,cACf;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,OAAQ;AAAA,UACP,iBAAiB,MAAM,OAAQ,GAAI,MAAM;AAAA,QAC1C;AAAA;AAAA,IACD;AAAA,IACA,oBAAC,aACA,8BAAC,YAAS,eAAgB,GAAI,WAC3B,sBAAY,OACf,GACD;AAAA,KACD,GACD;AAEF;AAoBO,SAAS,aAAc;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,aAAa,GAAI,OAAQ;AAAA,EACzB;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,YAAY,IAAI,UAAW,gBAAiB;AACpD,QAAM,cAAc,CAAE,cAAe;AACpC,UAAM,EAAE,YAAY,IAAI,YAAY;AACpC,QAAK,CAAE,aAAc;AACpB;AAAA,IACD;AACA,gBAAa;AAAA,MACZ;AAAA,MACA;AAAA,MACA,aAAc,CAAE,KAAM,GAAI;AACzB,iBAAU,KAAM;AAAA,MACjB;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACX,CAAE;AAAA,EACH;AACA,QAAM,eAAe,OAAO;AAE5B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,KAAM;AAAA,MACN,WAAU;AAAA,MAEV;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV;AAAA,YACA,UAAW;AAAA,YACX;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,MACC;AAAA,cAAC;AAAA;AAAA,gBACA,KAAM;AAAA,gBACN;AAAA,gBACA,WAAU;AAAA,gBACV,OACC,WACG,YAAa,QAAS,KAAK,aAC3B;AAAA;AAAA,YAEL;AAAA,YAED,cAAe,CAAE,UAChB,oBAAC,UAAS,GAAG,OAAQ,uBAAqB,MACvC,wBAAc,oBAAC,WAAQ,IAAK,MAAM,UACrC;AAAA,YAED;AAAA;AAAA,QACD;AAAA,QACE,YAAY,WACb;AAAA,UAAC;AAAA;AAAA,YACA,OAAQ,GAAI,OAAQ;AAAA,YACpB,WAAU;AAAA,YACV,MAAK;AAAA,YACL,MAAO;AAAA,YACP,SAAU,MAAM;AACf,sBAAQ;AACR,gCAAmB,YAAa;AAAA,YACjC;AAAA;AAAA,QACD;AAAA,QAED,oBAAC,YAAS,aAA4B;AAAA;AAAA;AAAA,EACvC;AAEF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/poster-image.jsx"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tButton,\n\tBaseControl,\n\tDropZone,\n\tSpinner,\n\t__experimentalHStack as HStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst POSTER_IMAGE_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction PosterImage( { poster, onChange } ) {\n\tconst posterButtonRef = useRef();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst descriptionId = useInstanceId(\n\t\tPosterImage,\n\t\t'block-library-poster-image-description'\n\t);\n\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst onDropFiles = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: POSTER_IMAGE_ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange: ( [ image ] ) => {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( image ) {\n\t\t\t\t\tonChange( image );\n\t\t\t\t}\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError: ( message ) => {\n\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\tid: 'poster-image-upload-notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst getPosterButtonContent = () => {\n\t\tif ( ! poster && isLoading ) {\n\t\t\treturn <Spinner />;\n\t\t}\n\n\t\treturn ! poster ? __( 'Set poster image' ) : __( 'Replace' );\n\t};\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Poster image' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! poster }\n\t\t\t\tonDeselect={ () => onChange( undefined ) }\n\t\t\t>\n\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t<MediaUpload\n\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\tonSelect={ onChange }\n\t\t\t\t\tallowedTypes={ POSTER_IMAGE_ALLOWED_MEDIA_TYPES }\n\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t<div className=\"block-library-poster-image__container\">\n\t\t\t\t\t\t\t{ poster && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t'Edit or replace the poster image.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__preview\"\n\t\t\t\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\tsrc={ poster }\n\t\t\t\t\t\t\t\t\t\talt={ __( 'Poster image preview' ) }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__preview-image\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-library-poster-image__actions',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'block-library-poster-image__actions-select':\n\t\t\t\t\t\t\t\t\t\t\t! poster,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\tref={ posterButtonRef }\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__action\"\n\t\t\t\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t! poster ? 'secondary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ getPosterButtonContent() }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<p id={ descriptionId } hidden>\n\t\t\t\t\t\t\t\t\t{ poster\n\t\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: poster image URL. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'The current poster image url is %s.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tposter\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t'There is no poster image currently selected.'\n\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t{ !! poster && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChange( undefined );\n\n\t\t\t\t\t\t\t\t\t\t\t// Move focus back to the Media Upload button.\n\t\t\t\t\t\t\t\t\t\t\tposterButtonRef.current.focus();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__action\"\n\t\t\t\t\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</MediaUploadCheck>\n\t);\n}\n\nexport default PosterImage;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tButton,\n\tBaseControl,\n\tDropZone,\n\tSpinner,\n\t__experimentalHStack as HStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst POSTER_IMAGE_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction PosterImage( { poster, onChange } ) {\n\tconst posterButtonRef = useRef();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst descriptionId = useInstanceId(\n\t\tPosterImage,\n\t\t'block-library-poster-image-description'\n\t);\n\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst onDropFiles = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: POSTER_IMAGE_ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange: ( [ image ] ) => {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( image ) {\n\t\t\t\t\tonChange( image );\n\t\t\t\t}\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError: ( message ) => {\n\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\tid: 'poster-image-upload-notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst getPosterButtonContent = () => {\n\t\tif ( ! poster && isLoading ) {\n\t\t\treturn <Spinner />;\n\t\t}\n\n\t\treturn ! poster ? __( 'Set poster image' ) : __( 'Replace' );\n\t};\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Poster image' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! poster }\n\t\t\t\tonDeselect={ () => onChange( undefined ) }\n\t\t\t>\n\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t<MediaUpload\n\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\tonSelect={ onChange }\n\t\t\t\t\tallowedTypes={ POSTER_IMAGE_ALLOWED_MEDIA_TYPES }\n\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t<div className=\"block-library-poster-image__container\">\n\t\t\t\t\t\t\t{ poster && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t'Edit or replace the poster image.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__preview\"\n\t\t\t\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\tsrc={ poster }\n\t\t\t\t\t\t\t\t\t\talt={ __( 'Poster image preview' ) }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__preview-image\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-library-poster-image__actions',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'block-library-poster-image__actions-select':\n\t\t\t\t\t\t\t\t\t\t\t! poster,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\tref={ posterButtonRef }\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__action\"\n\t\t\t\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t! poster ? 'secondary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ getPosterButtonContent() }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<p id={ descriptionId } hidden>\n\t\t\t\t\t\t\t\t\t{ poster\n\t\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: poster image URL. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'The current poster image url is %s.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tposter\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t'There is no poster image currently selected.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t{ !! poster && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChange( undefined );\n\n\t\t\t\t\t\t\t\t\t\t\t// Move focus back to the Media Upload button.\n\t\t\t\t\t\t\t\t\t\t\tposterButtonRef.current.focus();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__action\"\n\t\t\t\t\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</MediaUploadCheck>\n\t);\n}\n\nexport default PosterImage;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -56,6 +56,7 @@
56
56
  "fontSize": true
57
57
  }
58
58
  },
59
+ "shadow": true,
59
60
  "spacing": {
60
61
  "margin": true,
61
62
  "padding": true,
@@ -2,7 +2,7 @@
2
2
  import { __, _x } from "@wordpress/i18n";
3
3
  import {
4
4
  ToggleControl,
5
- SelectControl,
5
+ SelectControl as WCSelectControl,
6
6
  __experimentalToolsPanelItem as ToolsPanelItem
7
7
  } from "@wordpress/components";
8
8
  import { useMemo, useCallback } from "@wordpress/element";
@@ -158,7 +158,7 @@ var VideoSettings = ({ setAttributes, attributes }) => {
158
158
  setAttributes({ preload: "metadata" });
159
159
  },
160
160
  children: /* @__PURE__ */ jsx(
161
- SelectControl,
161
+ WCSelectControl,
162
162
  {
163
163
  label: __("Preload"),
164
164
  value: preload,