@wordpress/block-library 10.5.2-next.v.202608281122.0 → 11.0.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 (588) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/build/audio/edit.cjs +5 -5
  3. package/build/audio/edit.cjs.map +2 -2
  4. package/build/audio/index.cjs +0 -37
  5. package/build/audio/index.cjs.map +3 -3
  6. package/build/button/index.cjs +0 -34
  7. package/build/button/index.cjs.map +3 -3
  8. package/build/code/index.cjs +0 -17
  9. package/build/code/index.cjs.map +3 -3
  10. package/build/comment-template/edit.cjs.map +1 -1
  11. package/build/cover/index.cjs +0 -38
  12. package/build/cover/index.cjs.map +3 -3
  13. package/build/details/index.cjs +0 -17
  14. package/build/details/index.cjs.map +3 -3
  15. package/build/file/index.cjs +0 -43
  16. package/build/file/index.cjs.map +3 -3
  17. package/build/footnotes/format.cjs +1 -1
  18. package/build/footnotes/format.cjs.map +2 -2
  19. package/build/gallery/dynamic-gallery.cjs +22 -12
  20. package/build/gallery/dynamic-gallery.cjs.map +2 -2
  21. package/build/heading/index.cjs +0 -16
  22. package/build/heading/index.cjs.map +3 -3
  23. package/build/image/image.cjs +7 -5
  24. package/build/image/image.cjs.map +2 -2
  25. package/build/image/index.cjs +0 -81
  26. package/build/image/index.cjs.map +3 -3
  27. package/build/image/use-open-image-media-editor-modal.cjs +81 -14
  28. package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
  29. package/build/index.cjs +0 -10
  30. package/build/index.cjs.map +2 -2
  31. package/build/latest-posts/edit.cjs.map +1 -1
  32. package/build/list-item/edit.cjs +14 -11
  33. package/build/list-item/edit.cjs.map +2 -2
  34. package/build/list-item/hooks/index.cjs +6 -9
  35. package/build/list-item/hooks/index.cjs.map +2 -2
  36. package/build/list-item/hooks/use-enter.cjs +62 -67
  37. package/build/list-item/hooks/use-enter.cjs.map +3 -3
  38. package/build/list-item/hooks/use-merge.cjs +26 -44
  39. package/build/list-item/hooks/use-merge.cjs.map +3 -3
  40. package/build/list-item/hooks/use-multi-select-tab.cjs +80 -0
  41. package/build/list-item/hooks/use-multi-select-tab.cjs.map +7 -0
  42. package/build/list-item/hooks/use-tab.cjs +65 -0
  43. package/build/list-item/hooks/use-tab.cjs.map +7 -0
  44. package/build/list-item/index.cjs +0 -17
  45. package/build/list-item/index.cjs.map +3 -3
  46. package/build/list-item/utils.cjs +169 -0
  47. package/build/list-item/utils.cjs.map +7 -0
  48. package/build/math/block.json +3 -0
  49. package/build/media-text/index.cjs +0 -50
  50. package/build/media-text/index.cjs.map +3 -3
  51. package/build/media-text/media-container.cjs +16 -11
  52. package/build/media-text/media-container.cjs.map +2 -2
  53. package/build/more/index.cjs +0 -18
  54. package/build/more/index.cjs.map +3 -3
  55. package/build/navigation/constants.cjs +1 -1
  56. package/build/navigation/constants.cjs.map +1 -1
  57. package/build/navigation-link/block.json +1 -1
  58. package/build/navigation-link/deprecated.cjs +69 -0
  59. package/build/navigation-link/deprecated.cjs.map +7 -0
  60. package/build/navigation-link/index.cjs +6 -74
  61. package/build/navigation-link/index.cjs.map +4 -4
  62. package/build/{form-submit-button/init.cjs → navigation-link/variations.cjs} +23 -8
  63. package/build/navigation-link/variations.cjs.map +7 -0
  64. package/build/navigation-submenu/index.cjs +0 -32
  65. package/build/navigation-submenu/index.cjs.map +3 -3
  66. package/build/paragraph/index.cjs +0 -17
  67. package/build/paragraph/index.cjs.map +3 -3
  68. package/build/paragraph/use-enter.cjs +8 -4
  69. package/build/paragraph/use-enter.cjs.map +2 -2
  70. package/build/post-template/edit.cjs +3 -1
  71. package/build/post-template/edit.cjs.map +2 -2
  72. package/build/preformatted/index.cjs +0 -17
  73. package/build/preformatted/index.cjs.map +3 -3
  74. package/build/pullquote/index.cjs +0 -24
  75. package/build/pullquote/index.cjs.map +3 -3
  76. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs +13 -5
  77. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs.map +2 -2
  78. package/build/query/edit/inspector-controls/index.cjs +9 -4
  79. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  80. package/build/query/edit/query-content.cjs +30 -9
  81. package/build/query/edit/query-content.cjs.map +3 -3
  82. package/build/query/utils.cjs +11 -4
  83. package/build/query/utils.cjs.map +2 -2
  84. package/build/search/edit.cjs +3 -1
  85. package/build/search/edit.cjs.map +2 -2
  86. package/build/search/index.cjs +0 -31
  87. package/build/search/index.cjs.map +3 -3
  88. package/build/site-tagline/edit.cjs +11 -17
  89. package/build/site-tagline/edit.cjs.map +2 -2
  90. package/build/site-title/edit.cjs +12 -18
  91. package/build/site-title/edit.cjs.map +2 -2
  92. package/build/social-link/index.cjs +0 -31
  93. package/build/social-link/index.cjs.map +3 -3
  94. package/build/verse/index.cjs +0 -17
  95. package/build/verse/index.cjs.map +3 -3
  96. package/build/video/index.cjs +0 -40
  97. package/build/video/index.cjs.map +3 -3
  98. package/build/video/tracks-editor.cjs +2 -3
  99. package/build/video/tracks-editor.cjs.map +3 -3
  100. package/build-module/audio/edit.mjs +5 -5
  101. package/build-module/audio/edit.mjs.map +2 -2
  102. package/build-module/audio/index.mjs +0 -37
  103. package/build-module/audio/index.mjs.map +2 -2
  104. package/build-module/button/index.mjs +0 -34
  105. package/build-module/button/index.mjs.map +2 -2
  106. package/build-module/code/index.mjs +0 -17
  107. package/build-module/code/index.mjs.map +2 -2
  108. package/build-module/comment-template/edit.mjs.map +1 -1
  109. package/build-module/cover/index.mjs +0 -38
  110. package/build-module/cover/index.mjs.map +2 -2
  111. package/build-module/details/index.mjs +0 -17
  112. package/build-module/details/index.mjs.map +2 -2
  113. package/build-module/file/index.mjs +1 -44
  114. package/build-module/file/index.mjs.map +2 -2
  115. package/build-module/footnotes/format.mjs +1 -1
  116. package/build-module/footnotes/format.mjs.map +2 -2
  117. package/build-module/gallery/dynamic-gallery.mjs +23 -13
  118. package/build-module/gallery/dynamic-gallery.mjs.map +2 -2
  119. package/build-module/heading/index.mjs +1 -21
  120. package/build-module/heading/index.mjs.map +2 -2
  121. package/build-module/image/image.mjs +7 -5
  122. package/build-module/image/image.mjs.map +2 -2
  123. package/build-module/image/index.mjs +0 -81
  124. package/build-module/image/index.mjs.map +2 -2
  125. package/build-module/image/use-open-image-media-editor-modal.mjs +84 -14
  126. package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
  127. package/build-module/index.mjs +0 -10
  128. package/build-module/index.mjs.map +2 -2
  129. package/build-module/latest-posts/edit.mjs.map +1 -1
  130. package/build-module/list-item/edit.mjs +20 -18
  131. package/build-module/list-item/edit.mjs.map +2 -2
  132. package/build-module/list-item/hooks/index.mjs +8 -10
  133. package/build-module/list-item/hooks/index.mjs.map +2 -2
  134. package/build-module/list-item/hooks/use-enter.mjs +63 -58
  135. package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
  136. package/build-module/list-item/hooks/use-merge.mjs +27 -35
  137. package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
  138. package/build-module/list-item/hooks/use-multi-select-tab.mjs +59 -0
  139. package/build-module/list-item/hooks/use-multi-select-tab.mjs.map +7 -0
  140. package/build-module/list-item/hooks/use-tab.mjs +44 -0
  141. package/build-module/list-item/hooks/use-tab.mjs.map +7 -0
  142. package/build-module/list-item/index.mjs +0 -17
  143. package/build-module/list-item/index.mjs.map +2 -2
  144. package/build-module/list-item/utils.mjs +140 -0
  145. package/build-module/list-item/utils.mjs.map +7 -0
  146. package/build-module/math/block.json +3 -0
  147. package/build-module/media-text/index.mjs +0 -50
  148. package/build-module/media-text/index.mjs.map +2 -2
  149. package/build-module/media-text/media-container.mjs +17 -12
  150. package/build-module/media-text/media-container.mjs.map +2 -2
  151. package/build-module/more/index.mjs +0 -18
  152. package/build-module/more/index.mjs.map +2 -2
  153. package/build-module/navigation/constants.mjs +1 -1
  154. package/build-module/navigation/constants.mjs.map +1 -1
  155. package/build-module/navigation-link/block.json +1 -1
  156. package/build-module/navigation-link/deprecated.mjs +48 -0
  157. package/build-module/navigation-link/deprecated.mjs.map +7 -0
  158. package/build-module/navigation-link/index.mjs +7 -75
  159. package/build-module/navigation-link/index.mjs.map +3 -3
  160. package/build-module/navigation-link/variations.mjs +22 -0
  161. package/build-module/navigation-link/variations.mjs.map +7 -0
  162. package/build-module/navigation-submenu/index.mjs +1 -33
  163. package/build-module/navigation-submenu/index.mjs.map +2 -2
  164. package/build-module/paragraph/index.mjs +0 -17
  165. package/build-module/paragraph/index.mjs.map +2 -2
  166. package/build-module/paragraph/use-enter.mjs +8 -4
  167. package/build-module/paragraph/use-enter.mjs.map +2 -2
  168. package/build-module/post-template/edit.mjs +3 -1
  169. package/build-module/post-template/edit.mjs.map +2 -2
  170. package/build-module/preformatted/index.mjs +0 -17
  171. package/build-module/preformatted/index.mjs.map +2 -2
  172. package/build-module/pullquote/index.mjs +0 -24
  173. package/build-module/pullquote/index.mjs.map +2 -2
  174. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs +14 -6
  175. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs.map +2 -2
  176. package/build-module/query/edit/inspector-controls/index.mjs +9 -4
  177. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  178. package/build-module/query/edit/query-content.mjs +32 -11
  179. package/build-module/query/edit/query-content.mjs.map +2 -2
  180. package/build-module/query/utils.mjs +10 -7
  181. package/build-module/query/utils.mjs.map +2 -2
  182. package/build-module/search/edit.mjs +4 -2
  183. package/build-module/search/edit.mjs.map +2 -2
  184. package/build-module/search/index.mjs +0 -31
  185. package/build-module/search/index.mjs.map +2 -2
  186. package/build-module/site-tagline/edit.mjs +13 -19
  187. package/build-module/site-tagline/edit.mjs.map +2 -2
  188. package/build-module/site-title/edit.mjs +14 -20
  189. package/build-module/site-title/edit.mjs.map +2 -2
  190. package/build-module/social-link/index.mjs +0 -31
  191. package/build-module/social-link/index.mjs.map +2 -2
  192. package/build-module/verse/index.mjs +0 -17
  193. package/build-module/verse/index.mjs.map +2 -2
  194. package/build-module/video/index.mjs +0 -40
  195. package/build-module/video/index.mjs.map +2 -2
  196. package/build-module/video/tracks-editor.mjs +3 -5
  197. package/build-module/video/tracks-editor.mjs.map +2 -2
  198. package/build-style/columns/style-rtl.css +1 -1
  199. package/build-style/columns/style.css +1 -1
  200. package/build-style/comment-template/style-rtl.css +0 -1
  201. package/build-style/comment-template/style.css +0 -1
  202. package/build-style/cover/style-rtl.css +1 -2
  203. package/build-style/cover/style.css +1 -2
  204. package/build-style/editor-rtl.css +20 -81
  205. package/build-style/editor.css +20 -81
  206. package/build-style/gallery/style-rtl.css +2 -4
  207. package/build-style/gallery/style.css +2 -4
  208. package/build-style/group/theme-rtl.css +1 -1
  209. package/build-style/group/theme.css +1 -1
  210. package/build-style/heading/style-rtl.css +1 -1
  211. package/build-style/heading/style.css +1 -1
  212. package/build-style/icon/style-rtl.css +3 -0
  213. package/build-style/icon/style.css +3 -0
  214. package/build-style/image/editor-rtl.css +0 -1
  215. package/build-style/image/editor.css +0 -1
  216. package/build-style/list/style-rtl.css +1 -1
  217. package/build-style/list/style.css +1 -1
  218. package/build-style/media-text/style-rtl.css +2 -3
  219. package/build-style/media-text/style.css +2 -3
  220. package/build-style/navigation/editor-rtl.css +8 -0
  221. package/build-style/navigation/editor.css +8 -0
  222. package/build-style/paragraph/style-rtl.css +1 -1
  223. package/build-style/paragraph/style.css +1 -1
  224. package/build-style/playlist/style-rtl.css +1 -2
  225. package/build-style/playlist/style.css +1 -2
  226. package/build-style/playlist-track/style-rtl.css +1 -2
  227. package/build-style/playlist-track/style.css +1 -2
  228. package/build-style/preformatted/style-rtl.css +1 -1
  229. package/build-style/preformatted/style.css +1 -1
  230. package/build-style/query/editor-rtl.css +5 -15
  231. package/build-style/query/editor.css +5 -15
  232. package/build-style/read-more/style-rtl.css +0 -1
  233. package/build-style/read-more/style.css +0 -1
  234. package/build-style/reset-rtl.css +1 -3
  235. package/build-style/reset.css +1 -3
  236. package/build-style/search/style-rtl.css +1 -3
  237. package/build-style/search/style.css +1 -3
  238. package/build-style/site-logo/editor-rtl.css +1 -2
  239. package/build-style/site-logo/editor.css +1 -2
  240. package/build-style/style-rtl.css +18 -77
  241. package/build-style/style.css +18 -77
  242. package/build-style/tab-list/style-rtl.css +1 -3
  243. package/build-style/tab-list/style.css +1 -3
  244. package/build-style/template-part/editor-rtl.css +4 -8
  245. package/build-style/template-part/editor.css +4 -8
  246. package/build-style/template-part/theme-rtl.css +1 -1
  247. package/build-style/template-part/theme.css +1 -1
  248. package/build-style/theme-rtl.css +2 -2
  249. package/build-style/theme.css +2 -2
  250. package/build-style/video/style-rtl.css +1 -2
  251. package/build-style/video/style.css +1 -2
  252. package/build-types/navigation-link/deprecated.d.ts +48 -0
  253. package/build-types/navigation-link/deprecated.d.ts.map +1 -0
  254. package/package.json +43 -43
  255. package/src/accordion/index.php +2 -2
  256. package/src/accordion-item/index.php +1 -1
  257. package/src/audio/edit.jsx +6 -7
  258. package/src/audio/index.js +0 -37
  259. package/src/breadcrumbs/index.php +4 -4
  260. package/src/button/index.js +0 -34
  261. package/src/button/style.scss +16 -15
  262. package/src/button/test/{get-experimental-label.js → get-experimental-label.jsdom.test.js} +1 -0
  263. package/src/button/test/get-updated-link-attributes.js +1 -0
  264. package/src/button/test/utils.js +1 -0
  265. package/src/categories/index.php +4 -0
  266. package/src/code/index.js +0 -18
  267. package/src/code/test/utils.js +1 -0
  268. package/src/columns/style.scss +2 -1
  269. package/src/columns/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  270. package/src/columns/test/utils.js +1 -0
  271. package/src/comment-template/edit.jsx +1 -1
  272. package/src/comment-template/index.php +2 -2
  273. package/src/comment-template/test/index.js +1 -0
  274. package/src/common.scss +51 -50
  275. package/src/cover/README.md +37 -0
  276. package/src/cover/index.js +0 -39
  277. package/src/cover/style.scss +3 -3
  278. package/src/cover/test/{edit.js → edit.jsdom.test.js} +18 -17
  279. package/src/cover/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  280. package/src/details/index.js +0 -18
  281. package/src/editor.scss +0 -2
  282. package/src/embed/editor.scss +1 -0
  283. package/src/embed/test/{index.js → index.jsdom.test.js} +5 -1
  284. package/src/file/index.js +1 -43
  285. package/src/footnotes/format.jsx +5 -1
  286. package/src/gallery/dynamic-gallery.jsx +31 -4
  287. package/src/gallery/test/dynamic-source.js +1 -0
  288. package/src/gallery/test/{edit.js → edit.jsdom.test.js} +4 -0
  289. package/src/gallery/test/responsive-styles.js +1 -0
  290. package/src/gallery/test/shared.js +1 -0
  291. package/src/gallery/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  292. package/src/gallery/test/{use-get-new-images.jsx → use-get-new-images.jsdom.test.jsx} +1 -0
  293. package/src/gallery/test/variations.js +1 -0
  294. package/src/group/test/{placeholder.jsx → placeholder.jsdom.test.jsx} +1 -0
  295. package/src/group/theme.scss +1 -1
  296. package/src/heading/index.js +1 -22
  297. package/src/heading/index.php +1 -1
  298. package/src/heading/style.scss +1 -1
  299. package/src/heading/test/shared.js +1 -0
  300. package/src/home-link/index.php +2 -2
  301. package/src/html/test/{index.js → index.jsdom.test.js} +9 -0
  302. package/src/html/test/{utils.js → utils.jsdom.test.js} +1 -0
  303. package/src/icon/index.php +18 -6
  304. package/src/icon/style.scss +7 -0
  305. package/src/image/image.jsx +18 -11
  306. package/src/image/index.js +0 -80
  307. package/src/image/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  308. package/src/image/test/{use-open-image-media-editor-modal.js → use-open-image-media-editor-modal.jsdom.test.js} +343 -28
  309. package/src/image/use-open-image-media-editor-modal.js +184 -21
  310. package/src/index.jsx +0 -11
  311. package/src/latest-posts/edit.jsx +1 -1
  312. package/src/latest-posts/test/{deprecated.js → deprecated.jsdom.test.js} +1 -0
  313. package/src/list/index.php +1 -1
  314. package/src/list/style.scss +1 -1
  315. package/src/list-item/edit.jsx +20 -20
  316. package/src/list-item/hooks/index.js +2 -3
  317. package/src/list-item/hooks/use-enter.js +82 -70
  318. package/src/list-item/hooks/use-merge.js +28 -36
  319. package/src/list-item/hooks/use-multi-select-tab.js +83 -0
  320. package/src/list-item/hooks/use-tab.js +62 -0
  321. package/src/list-item/index.js +0 -18
  322. package/src/list-item/utils.js +236 -0
  323. package/src/math/README.md +2 -0
  324. package/src/math/block.json +3 -0
  325. package/src/media-text/index.js +0 -50
  326. package/src/media-text/media-container.jsx +22 -12
  327. package/src/media-text/style.scss +2 -1
  328. package/src/media-text/test/image-fill.js +1 -0
  329. package/src/more/index.js +0 -19
  330. package/src/navigation/constants.js +1 -1
  331. package/src/navigation/edit/test/are-blocks-dirty.js +1 -0
  332. package/src/navigation/edit/test/{layout-custom-properties.js → layout-custom-properties.jsdom.test.js} +8 -7
  333. package/src/navigation/edit/test/{navigation-menu-selector.jsx → navigation-menu-selector.jsdom.test.jsx} +23 -14
  334. package/src/navigation/edit/test/{overlay-template-part-selector.jsx → overlay-template-part-selector.jsdom.test.jsx} +22 -20
  335. package/src/navigation/edit/test/{responsive-wrapper.jsx → responsive-wrapper.jsdom.test.jsx} +14 -13
  336. package/src/navigation/edit/test/{use-create-overlay.js → use-create-overlay.jsdom.test.js} +19 -24
  337. package/src/navigation/edit/test/utils.js +1 -0
  338. package/src/navigation/editor.scss +13 -0
  339. package/src/navigation/index.php +14 -14
  340. package/src/navigation/test/{menu-items-to-blocks.js → menu-items-to-blocks.jsdom.test.js} +3 -2
  341. package/src/navigation/test/{use-navigation-menu.js → use-navigation-menu.jsdom.test.js} +7 -4
  342. package/src/navigation/test/{view.js → view.jsdom.test.js} +4 -2
  343. package/src/navigation-link/block.json +1 -1
  344. package/src/navigation-link/deprecated.tsx +58 -0
  345. package/src/navigation-link/{index.jsx → index.js} +5 -77
  346. package/src/navigation-link/index.php +5 -5
  347. package/src/navigation-link/shared/test/{controls.jsx → controls.jsdom.test.jsx} +18 -18
  348. package/src/navigation-link/shared/test/update-attributes.test.js +52 -51
  349. package/src/navigation-link/shared/test/{use-enable-link-status-validation.test.js → use-enable-link-status-validation.jsdom.test.js} +8 -6
  350. package/src/navigation-link/shared/test/{use-entity-binding.js → use-entity-binding.jsdom.test.js} +12 -11
  351. package/src/navigation-link/shared/test/{use-handle-link-change.test.js → use-handle-link-change.jsdom.test.js} +23 -20
  352. package/src/navigation-link/shared/test/{use-link-preview.test.js → use-link-preview.jsdom.test.js} +17 -14
  353. package/src/navigation-link/test/__snapshots__/{hooks.js.snap → hooks.jsdom.test.js.snap} +23 -6
  354. package/src/navigation-link/test/block-labelling.js +1 -0
  355. package/src/navigation-link/test/{hooks.js → hooks.jsdom.test.js} +1 -0
  356. package/src/navigation-link/variations.js +19 -0
  357. package/src/navigation-submenu/index.js +1 -33
  358. package/src/page-list/index.php +10 -10
  359. package/src/page-list/test/{convert-to-navigation-links.js → convert-to-navigation-links.jsdom.test.js} +3 -2
  360. package/src/paragraph/index.js +0 -18
  361. package/src/paragraph/style.scss +1 -1
  362. package/src/paragraph/use-enter.js +13 -6
  363. package/src/pattern/test/index.js +1 -0
  364. package/src/playlist/test/{edit-component.jsx → edit-component.jsdom.test.jsx} +31 -30
  365. package/src/playlist/test/{edit.js → edit.jsdom.test.js} +1 -0
  366. package/src/playlist/test/{transforms.js → transforms.jsdom.test.js} +1 -0
  367. package/src/playlist-track/test/{edit.jsx → edit.jsdom.test.jsx} +20 -19
  368. package/src/post-author/index.php +3 -3
  369. package/src/post-author-biography/index.php +3 -3
  370. package/src/post-author-name/index.php +3 -3
  371. package/src/post-comments-link/index.php +4 -4
  372. package/src/post-date/test/{edit.js → edit.jsdom.test.js} +1 -0
  373. package/src/post-template/edit.jsx +3 -1
  374. package/src/post-time-to-read/index.php +3 -3
  375. package/src/post-title/style.scss +1 -0
  376. package/src/preformatted/index.js +0 -18
  377. package/src/preformatted/style.scss +1 -1
  378. package/src/pullquote/index.js +0 -24
  379. package/src/query/edit/inspector-controls/enhanced-pagination-control.jsx +13 -6
  380. package/src/query/edit/inspector-controls/index.jsx +9 -4
  381. package/src/query/edit/query-content.jsx +31 -8
  382. package/src/query/editor.scss +1 -7
  383. package/src/query/index.php +2 -2
  384. package/src/query/test/{utils.js → utils.jsdom.test.js} +1 -0
  385. package/src/query/utils.js +15 -11
  386. package/src/quote/test/{migrate.js → migrate.jsdom.test.js} +1 -0
  387. package/src/read-more/index.php +1 -1
  388. package/src/search/edit.jsx +12 -2
  389. package/src/search/index.js +0 -30
  390. package/src/search/index.php +1 -1
  391. package/src/separator/test/{edit.jsx → edit.jsdom.test.jsx} +5 -4
  392. package/src/site-logo/index.php +1 -1
  393. package/src/site-tagline/edit.jsx +18 -27
  394. package/src/site-title/edit.jsx +20 -27
  395. package/src/social-link/index.js +0 -32
  396. package/src/social-link/index.php +0 -1
  397. package/src/style.scss +0 -1
  398. package/src/table/editor.scss +1 -0
  399. package/src/table/style.scss +2 -0
  400. package/src/table/test/state.js +1 -0
  401. package/src/table/test/utils.js +1 -0
  402. package/src/table-of-contents/index.php +3 -3
  403. package/src/template-part/theme.scss +1 -1
  404. package/src/utils/test/search-patterns.js +1 -0
  405. package/src/utils/test/{style-state.js → style-state.jsdom.test.js} +1 -0
  406. package/src/utils/test/{waveform-player-dependency.js → waveform-player-dependency.jsdom.test.js} +15 -21
  407. package/src/verse/index.js +0 -18
  408. package/src/verse/style.scss +1 -0
  409. package/src/video/index.js +0 -40
  410. package/src/video/test/variations.js +1 -0
  411. package/src/video/tracks-editor.jsx +4 -5
  412. package/build/form/block.json +0 -65
  413. package/build/form/deprecated.cjs +0 -111
  414. package/build/form/deprecated.cjs.map +0 -7
  415. package/build/form/edit.cjs +0 -180
  416. package/build/form/edit.cjs.map +0 -7
  417. package/build/form/icons.cjs +0 -33
  418. package/build/form/icons.cjs.map +0 -7
  419. package/build/form/index.cjs +0 -118
  420. package/build/form/index.cjs.map +0 -7
  421. package/build/form/init.cjs +0 -28
  422. package/build/form/init.cjs.map +0 -7
  423. package/build/form/save.cjs +0 -40
  424. package/build/form/save.cjs.map +0 -7
  425. package/build/form/utils.cjs +0 -61
  426. package/build/form/utils.cjs.map +0 -7
  427. package/build/form/variations.cjs +0 -152
  428. package/build/form/variations.cjs.map +0 -7
  429. package/build/form/view.cjs +0 -48
  430. package/build/form/view.cjs.map +0 -7
  431. package/build/form-input/block.json +0 -72
  432. package/build/form-input/deprecated.cjs +0 -252
  433. package/build/form-input/deprecated.cjs.map +0 -7
  434. package/build/form-input/edit.cjs +0 -206
  435. package/build/form-input/edit.cjs.map +0 -7
  436. package/build/form-input/icons.cjs +0 -33
  437. package/build/form-input/icons.cjs.map +0 -7
  438. package/build/form-input/index.cjs +0 -63
  439. package/build/form-input/index.cjs.map +0 -7
  440. package/build/form-input/init.cjs +0 -28
  441. package/build/form-input/init.cjs.map +0 -7
  442. package/build/form-input/save.cjs +0 -88
  443. package/build/form-input/save.cjs.map +0 -7
  444. package/build/form-input/variations.cjs +0 -105
  445. package/build/form-input/variations.cjs.map +0 -7
  446. package/build/form-submission-notification/block.json +0 -19
  447. package/build/form-submission-notification/edit.cjs +0 -71
  448. package/build/form-submission-notification/edit.cjs.map +0 -7
  449. package/build/form-submission-notification/index.cjs +0 -73
  450. package/build/form-submission-notification/index.cjs.map +0 -7
  451. package/build/form-submission-notification/init.cjs +0 -28
  452. package/build/form-submission-notification/init.cjs.map +0 -7
  453. package/build/form-submission-notification/save.cjs +0 -54
  454. package/build/form-submission-notification/save.cjs.map +0 -7
  455. package/build/form-submission-notification/variations.cjs +0 -78
  456. package/build/form-submission-notification/variations.cjs.map +0 -7
  457. package/build/form-submit-button/block.json +0 -15
  458. package/build/form-submit-button/edit.cjs +0 -36
  459. package/build/form-submit-button/edit.cjs.map +0 -7
  460. package/build/form-submit-button/index.cjs +0 -75
  461. package/build/form-submit-button/index.cjs.map +0 -7
  462. package/build/form-submit-button/init.cjs.map +0 -7
  463. package/build/form-submit-button/save.cjs +0 -32
  464. package/build/form-submit-button/save.cjs.map +0 -7
  465. package/build/list-item/hooks/use-indent-list-item.cjs +0 -79
  466. package/build/list-item/hooks/use-indent-list-item.cjs.map +0 -7
  467. package/build/list-item/hooks/use-outdent-list-item.cjs +0 -106
  468. package/build/list-item/hooks/use-outdent-list-item.cjs.map +0 -7
  469. package/build/list-item/hooks/use-space.cjs +0 -83
  470. package/build/list-item/hooks/use-space.cjs.map +0 -7
  471. package/build/query/edit/enhanced-pagination-modal.cjs +0 -89
  472. package/build/query/edit/enhanced-pagination-modal.cjs.map +0 -7
  473. package/build-module/form/block.json +0 -65
  474. package/build-module/form/deprecated.mjs +0 -96
  475. package/build-module/form/deprecated.mjs.map +0 -7
  476. package/build-module/form/edit.mjs +0 -170
  477. package/build-module/form/edit.mjs.map +0 -7
  478. package/build-module/form/icons.mjs +0 -8
  479. package/build-module/form/icons.mjs.map +0 -7
  480. package/build-module/form/index.mjs +0 -83
  481. package/build-module/form/index.mjs.map +0 -7
  482. package/build-module/form/init.mjs +0 -7
  483. package/build-module/form/init.mjs.map +0 -7
  484. package/build-module/form/save.mjs +0 -19
  485. package/build-module/form/save.mjs.map +0 -7
  486. package/build-module/form/utils.mjs +0 -35
  487. package/build-module/form/utils.mjs.map +0 -7
  488. package/build-module/form/variations.mjs +0 -134
  489. package/build-module/form/variations.mjs.map +0 -7
  490. package/build-module/form/view.mjs +0 -46
  491. package/build-module/form/view.mjs.map +0 -7
  492. package/build-module/form-input/block.json +0 -72
  493. package/build-module/form-input/deprecated.mjs +0 -226
  494. package/build-module/form-input/deprecated.mjs.map +0 -7
  495. package/build-module/form-input/edit.mjs +0 -186
  496. package/build-module/form-input/edit.mjs.map +0 -7
  497. package/build-module/form-input/icons.mjs +0 -8
  498. package/build-module/form-input/icons.mjs.map +0 -7
  499. package/build-module/form-input/index.mjs +0 -25
  500. package/build-module/form-input/index.mjs.map +0 -7
  501. package/build-module/form-input/init.mjs +0 -7
  502. package/build-module/form-input/init.mjs.map +0 -7
  503. package/build-module/form-input/save.mjs +0 -62
  504. package/build-module/form-input/save.mjs.map +0 -7
  505. package/build-module/form-input/variations.mjs +0 -84
  506. package/build-module/form-input/variations.mjs.map +0 -7
  507. package/build-module/form-submission-notification/block.json +0 -19
  508. package/build-module/form-submission-notification/edit.mjs +0 -45
  509. package/build-module/form-submission-notification/edit.mjs.map +0 -7
  510. package/build-module/form-submission-notification/index.mjs +0 -35
  511. package/build-module/form-submission-notification/index.mjs.map +0 -7
  512. package/build-module/form-submission-notification/init.mjs +0 -7
  513. package/build-module/form-submission-notification/init.mjs.map +0 -7
  514. package/build-module/form-submission-notification/save.mjs +0 -23
  515. package/build-module/form-submission-notification/save.mjs.map +0 -7
  516. package/build-module/form-submission-notification/variations.mjs +0 -57
  517. package/build-module/form-submission-notification/variations.mjs.map +0 -7
  518. package/build-module/form-submit-button/block.json +0 -15
  519. package/build-module/form-submit-button/edit.mjs +0 -15
  520. package/build-module/form-submit-button/edit.mjs.map +0 -7
  521. package/build-module/form-submit-button/index.mjs +0 -37
  522. package/build-module/form-submit-button/index.mjs.map +0 -7
  523. package/build-module/form-submit-button/init.mjs +0 -7
  524. package/build-module/form-submit-button/init.mjs.map +0 -7
  525. package/build-module/form-submit-button/save.mjs +0 -11
  526. package/build-module/form-submit-button/save.mjs.map +0 -7
  527. package/build-module/list-item/hooks/use-indent-list-item.mjs +0 -58
  528. package/build-module/list-item/hooks/use-indent-list-item.mjs.map +0 -7
  529. package/build-module/list-item/hooks/use-outdent-list-item.mjs +0 -85
  530. package/build-module/list-item/hooks/use-outdent-list-item.mjs.map +0 -7
  531. package/build-module/list-item/hooks/use-space.mjs +0 -52
  532. package/build-module/list-item/hooks/use-space.mjs.map +0 -7
  533. package/build-module/query/edit/enhanced-pagination-modal.mjs +0 -72
  534. package/build-module/query/edit/enhanced-pagination-modal.mjs.map +0 -7
  535. package/build-style/form-input/editor-rtl.css +0 -19
  536. package/build-style/form-input/editor.css +0 -19
  537. package/build-style/form-input/style-rtl.css +0 -48
  538. package/build-style/form-input/style.css +0 -48
  539. package/build-style/form-submission-notification/editor-rtl.css +0 -30
  540. package/build-style/form-submission-notification/editor.css +0 -30
  541. package/build-style/form-submit-button/style-rtl.css +0 -3
  542. package/build-style/form-submit-button/style.css +0 -3
  543. package/src/form/README.md +0 -90
  544. package/src/form/block.json +0 -65
  545. package/src/form/deprecated.jsx +0 -93
  546. package/src/form/edit.jsx +0 -169
  547. package/src/form/icons.jsx +0 -7
  548. package/src/form/index.js +0 -91
  549. package/src/form/index.php +0 -197
  550. package/src/form/init.js +0 -3
  551. package/src/form/save.jsx +0 -15
  552. package/src/form/utils.js +0 -36
  553. package/src/form/variations.js +0 -133
  554. package/src/form/view.js +0 -54
  555. package/src/form-input/README.md +0 -74
  556. package/src/form-input/block.json +0 -72
  557. package/src/form-input/deprecated.jsx +0 -248
  558. package/src/form-input/edit.jsx +0 -187
  559. package/src/form-input/editor.scss +0 -24
  560. package/src/form-input/icons.jsx +0 -7
  561. package/src/form-input/index.js +0 -22
  562. package/src/form-input/index.php +0 -47
  563. package/src/form-input/init.js +0 -3
  564. package/src/form-input/save.jsx +0 -89
  565. package/src/form-input/style.scss +0 -64
  566. package/src/form-input/variations.js +0 -82
  567. package/src/form-submission-notification/README.md +0 -50
  568. package/src/form-submission-notification/block.json +0 -19
  569. package/src/form-submission-notification/edit.jsx +0 -44
  570. package/src/form-submission-notification/editor.scss +0 -45
  571. package/src/form-submission-notification/index.js +0 -33
  572. package/src/form-submission-notification/index.php +0 -48
  573. package/src/form-submission-notification/init.js +0 -3
  574. package/src/form-submission-notification/save.jsx +0 -18
  575. package/src/form-submission-notification/variations.js +0 -56
  576. package/src/form-submit-button/README.md +0 -54
  577. package/src/form-submit-button/block.json +0 -15
  578. package/src/form-submit-button/edit.jsx +0 -12
  579. package/src/form-submit-button/index.js +0 -35
  580. package/src/form-submit-button/init.js +0 -3
  581. package/src/form-submit-button/save.jsx +0 -10
  582. package/src/form-submit-button/style.scss +0 -3
  583. package/src/list-item/hooks/use-indent-list-item.js +0 -73
  584. package/src/list-item/hooks/use-outdent-list-item.js +0 -100
  585. package/src/list-item/hooks/use-space.js +0 -66
  586. package/src/query/edit/enhanced-pagination-modal.jsx +0 -77
  587. /package/src/utils/test/{waveform-player.jsx → waveform-player.jsdom.test.jsx} +0 -0
  588. /package/src/utils/test/{waveform-utils.js → waveform-utils.jsdom.test.js} +0 -0
@@ -32,13 +32,21 @@ function EnhancedPaginationControl({
32
32
  setAttributes,
33
33
  clientId
34
34
  }) {
35
- const hasUnsupportedBlocks = (0, import_utils.useUnsupportedBlocks)(clientId);
35
+ const unsupportedBlocks = (0, import_utils.useUnsupportedBlocks)(clientId);
36
36
  let help = (0, import_i18n.__)(
37
37
  "Reload the full page—instead of just the posts list—when visitors navigate between pages."
38
38
  );
39
- if (hasUnsupportedBlocks) {
40
- help = (0, import_i18n.__)(
41
- "Enhancement disabled because there are non-compatible blocks inside the Query block."
39
+ if (unsupportedBlocks.length) {
40
+ help = (0, import_i18n.sprintf)(
41
+ /* translators: %s: A list of block titles. */
42
+ (0, import_i18n.__)(
43
+ `Some blocks aren't supported: %s. Remove them to change this setting.`
44
+ ),
45
+ unsupportedBlocks.join(
46
+ /* translators: Used between list items, there is a space after the comma. */
47
+ (0, import_i18n.__)(", ")
48
+ // eslint-disable-line @wordpress/i18n-no-flanking-whitespace
49
+ )
42
50
  );
43
51
  }
44
52
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -47,7 +55,7 @@ function EnhancedPaginationControl({
47
55
  label: (0, import_i18n.__)("Reload full page"),
48
56
  help,
49
57
  checked: !enhancedPagination,
50
- disabled: hasUnsupportedBlocks,
58
+ disabled: !!unsupportedBlocks.length,
51
59
  onChange: (value) => {
52
60
  setAttributes({
53
61
  enhancedPagination: !value
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/query/edit/inspector-controls/enhanced-pagination-control.jsx"],
4
- "sourcesContent": ["import { ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useUnsupportedBlocks } from '../../utils';\n\nexport default function EnhancedPaginationControl( {\n\tenhancedPagination,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst hasUnsupportedBlocks = useUnsupportedBlocks( clientId );\n\n\tlet help = __(\n\t\t'Reload the full page—instead of just the posts list—when visitors navigate between pages.'\n\t);\n\tif ( hasUnsupportedBlocks ) {\n\t\thelp = __(\n\t\t\t'Enhancement disabled because there are non-compatible blocks inside the Query block.'\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Reload full page' ) }\n\t\t\t\thelp={ help }\n\t\t\t\tchecked={ ! enhancedPagination }\n\t\t\t\tdisabled={ hasUnsupportedBlocks }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tenhancedPagination: ! value,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA8B;AAC9B,kBAAmB;AACnB,mBAAqC;AAmBnC;AAjBa,SAAR,0BAA4C;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,2BAAuB,mCAAsB,QAAS;AAE5D,MAAI,WAAO;AAAA,IACV;AAAA,EACD;AACA,MAAK,sBAAuB;AAC3B,eAAO;AAAA,MACN;AAAA,IACD;AAAA,EACD;AAEA,SACC,2EACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAQ,gBAAI,kBAAmB;AAAA,MAC/B;AAAA,MACA,SAAU,CAAE;AAAA,MACZ,UAAW;AAAA,MACX,UAAW,CAAE,UAAW;AACvB,sBAAe;AAAA,UACd,oBAAoB,CAAE;AAAA,QACvB,CAAE;AAAA,MACH;AAAA;AAAA,EACD,GACD;AAEF;",
4
+ "sourcesContent": ["import { ToggleControl } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useUnsupportedBlocks } from '../../utils';\n\nexport default function EnhancedPaginationControl( {\n\tenhancedPagination,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst unsupportedBlocks = useUnsupportedBlocks( clientId );\n\n\tlet help = __(\n\t\t'Reload the full page—instead of just the posts list—when visitors navigate between pages.'\n\t);\n\tif ( unsupportedBlocks.length ) {\n\t\thelp = sprintf(\n\t\t\t/* translators: %s: A list of block titles. */\n\t\t\t__(\n\t\t\t\t`Some blocks aren't supported: %s. Remove them to change this setting.`\n\t\t\t),\n\t\t\tunsupportedBlocks.join(\n\t\t\t\t/* translators: Used between list items, there is a space after the comma. */\n\t\t\t\t__( ', ' ) // eslint-disable-line @wordpress/i18n-no-flanking-whitespace\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Reload full page' ) }\n\t\t\t\thelp={ help }\n\t\t\t\tchecked={ ! enhancedPagination }\n\t\t\t\tdisabled={ !! unsupportedBlocks.length }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tenhancedPagination: ! value,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA8B;AAC9B,kBAA4B;AAC5B,mBAAqC;AA0BnC;AAxBa,SAAR,0BAA4C;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,wBAAoB,mCAAsB,QAAS;AAEzD,MAAI,WAAO;AAAA,IACV;AAAA,EACD;AACA,MAAK,kBAAkB,QAAS;AAC/B,eAAO;AAAA;AAAA,UAEN;AAAA,QACC;AAAA,MACD;AAAA,MACA,kBAAkB;AAAA;AAAA,YAEjB,gBAAI,IAAK;AAAA;AAAA,MACV;AAAA,IACD;AAAA,EACD;AAEA,SACC,2EACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAQ,gBAAI,kBAAmB;AAAA,MAC/B;AAAA,MACA,SAAU,CAAE;AAAA,MACZ,UAAW,CAAC,CAAE,kBAAkB;AAAA,MAChC,UAAW,CAAE,UAAW;AACvB,sBAAe;AAAA,UACd,oBAAoB,CAAE;AAAA,QACvB,CAAE;AAAA,MACH;AAAA;AAAA,EACD,GACD;AAEF;",
6
6
  "names": []
7
7
  }
@@ -59,7 +59,9 @@ function QueryInspectorControls(props) {
59
59
  orderBy,
60
60
  author: authorIds,
61
61
  pages,
62
- postType,
62
+ // Match `build_query_vars_from_query_block()`, which queries posts when
63
+ // `query` has no post type.
64
+ postType = "post",
63
65
  perPage,
64
66
  offset,
65
67
  sticky,
@@ -147,7 +149,7 @@ function QueryInspectorControls(props) {
147
149
  );
148
150
  const showExcludeCurrentControl = shouldExcludeCurrentPost && (0, import_utils.isControlAllowed)(allowedControls, "excludeCurrent");
149
151
  const postTypeSingularName = (0, import_data.useSelect)(
150
- (select) => select(import_core_data.store).getPostType(postType)?.labels.singular_name,
152
+ (select) => select(import_core_data.store).getPostType(postType)?.labels?.singular_name,
151
153
  [postType]
152
154
  );
153
155
  const showFiltersPanel = showTaxControl || showAuthorControl || showSearchControl || showParentControl || showFormatControl || showExcludeCurrentControl;
@@ -418,7 +420,7 @@ function QueryInspectorControls(props) {
418
420
  import_components.__experimentalToolsPanelItem,
419
421
  {
420
422
  hasValue: () => !!querySearch,
421
- label: (0, import_i18n.__)("Keyword"),
423
+ label: (0, import_i18n.__)("Search terms"),
422
424
  onDeselect: () => {
423
425
  setQuery({ search: "" });
424
426
  setQuerySearch("");
@@ -426,7 +428,10 @@ function QueryInspectorControls(props) {
426
428
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
427
429
  import_components.TextControl,
428
430
  {
429
- label: (0, import_i18n.__)("Keyword"),
431
+ label: (0, import_i18n.__)("Search terms"),
432
+ help: (0, import_i18n.__)(
433
+ "Filter the query by keywords that appear in the content, title, or excerpt."
434
+ ),
430
435
  value: querySearch,
431
436
  onChange: (newQuerySearch) => {
432
437
  debouncedQuerySearch(newQuerySearch);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/query/edit/inspector-controls/index.jsx"],
4
- "sourcesContent": ["import {\n\tTextControl,\n\tSelectControl,\n\tNotice,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\nimport OrderControl from './order-control';\nimport AuthorControl from './author-control';\nimport ParentControl from './parent-control';\nimport { TaxonomyControls } from './taxonomy-controls';\nimport FormatControls from './format-controls';\nimport StickyControl from './sticky-control';\nimport PerPageControl from './per-page-control';\nimport OffsetControl from './offset-controls';\nimport PagesControl from './pages-control';\nimport {\n\tusePostTypes,\n\tuseIsPostTypeHierarchical,\n\tuseAllowedControls,\n\tisControlAllowed,\n\tuseTaxonomies,\n\tuseOrderByOptions,\n} from '../../utils';\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\n\nexport default function QueryInspectorControls( props ) {\n\tconst { attributes, setQuery, isSingular, shouldExcludeCurrentPost } =\n\t\tprops;\n\tconst { query } = attributes;\n\tconst {\n\t\torder,\n\t\torderBy,\n\t\tauthor: authorIds,\n\t\tpages,\n\t\tpostType,\n\t\tperPage,\n\t\toffset,\n\t\tsticky,\n\t\tinherit,\n\t\ttaxQuery,\n\t\tparents,\n\t\tformat,\n\t\texcludeCurrent,\n\t} = query;\n\tconst allowedControls = useAllowedControls( attributes );\n\tconst showSticky = postType === 'post';\n\tconst {\n\t\tpostTypesTaxonomiesMap,\n\t\tpostTypesSelectOptions,\n\t\tpostTypeFormatSupportMap,\n\t} = usePostTypes();\n\tconst taxonomies = useTaxonomies( postType );\n\tconst isPostTypeHierarchical = useIsPostTypeHierarchical( postType );\n\tconst onPostTypeChange = ( newValue ) => {\n\t\tconst updateQuery = { postType: newValue };\n\t\t// We need to dynamically update the `taxQuery` property,\n\t\t// by removing any not supported taxonomy from the query.\n\t\tconst supportedTaxonomies = postTypesTaxonomiesMap[ newValue ];\n\t\tif ( !! supportedTaxonomies?.length && !! taxQuery ) {\n\t\t\t// Shared utility to build taxQuery based on supported taxonomies.\n\t\t\tconst buildTaxQuery = ( _taxQuery ) => {\n\t\t\t\treturn Object.entries( _taxQuery || {} ).reduce(\n\t\t\t\t\t( accumulator, [ taxonomy, terms ] ) => {\n\t\t\t\t\t\tif ( supportedTaxonomies.includes( taxonomy ) ) {\n\t\t\t\t\t\t\taccumulator[ taxonomy ] = terms;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\t\t\t};\n\t\t\tconst updatedTaxQuery = {};\n\t\t\tconst builtIncludeTaxQuery = buildTaxQuery( taxQuery.include );\n\t\t\tif ( !! Object.keys( builtIncludeTaxQuery ).length ) {\n\t\t\t\tupdatedTaxQuery.include = builtIncludeTaxQuery;\n\t\t\t}\n\t\t\tconst builtExcludeTaxQuery = buildTaxQuery( taxQuery.exclude );\n\t\t\tif ( !! Object.keys( builtExcludeTaxQuery ).length ) {\n\t\t\t\tupdatedTaxQuery.exclude = builtExcludeTaxQuery;\n\t\t\t}\n\t\t\tupdateQuery.taxQuery = !! Object.keys( updatedTaxQuery ).length\n\t\t\t\t? updatedTaxQuery\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tif ( newValue !== 'post' ) {\n\t\t\tupdateQuery.sticky = '';\n\t\t}\n\t\t// We need to reset `parents` because they are tied to each post type.\n\t\tupdateQuery.parents = [];\n\t\t// Post types can register post format support with `add_post_type_support`.\n\t\t// But we need to reset the `format` property when switching to post types\n\t\t// that do not support post formats.\n\t\tconst hasFormatSupport = postTypeFormatSupportMap[ newValue ];\n\t\tif ( ! hasFormatSupport ) {\n\t\t\tupdateQuery.format = [];\n\t\t}\n\n\t\tsetQuery( updateQuery );\n\t};\n\tconst [ querySearch, setQuerySearch ] = useState( query.search );\n\tconst debouncedQuerySearch = useMemo( () => {\n\t\treturn debounce( ( newQuerySearch ) => {\n\t\t\tsetQuery( { search: newQuerySearch } );\n\t\t}, 250 );\n\t}, [ setQuery ] );\n\n\tconst orderByOptions = useOrderByOptions( postType );\n\tconst showInheritControl = isControlAllowed( allowedControls, 'inherit' );\n\tconst showPostTypeControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'postType' );\n\tconst postTypeControlLabel = __( 'Post type' );\n\tconst postTypeControlHelp = __(\n\t\t'Select the type of content to display: posts, pages, or custom post types.'\n\t);\n\tconst showOrderControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'order' );\n\tconst showStickyControl =\n\t\t! inherit &&\n\t\tshowSticky &&\n\t\tisControlAllowed( allowedControls, 'sticky' );\n\tconst showSettingsPanel =\n\t\tshowInheritControl ||\n\t\tshowPostTypeControl ||\n\t\tshowOrderControl ||\n\t\tshowStickyControl;\n\tconst showTaxControl =\n\t\t!! taxonomies?.length &&\n\t\tisControlAllowed( allowedControls, 'taxQuery' );\n\tconst showAuthorControl = isControlAllowed( allowedControls, 'author' );\n\tconst showSearchControl = isControlAllowed( allowedControls, 'search' );\n\tconst showParentControl =\n\t\tisControlAllowed( allowedControls, 'parents' ) &&\n\t\tisPostTypeHierarchical;\n\n\tconst postTypeHasFormatSupport = postTypeFormatSupportMap[ postType ];\n\tconst showFormatControl = useSelect(\n\t\t( select ) => {\n\t\t\t// Check if the post type supports post formats and if the control is allowed.\n\t\t\tif (\n\t\t\t\t! postTypeHasFormatSupport ||\n\t\t\t\t! isControlAllowed( allowedControls, 'format' )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst themeSupports = select( coreStore ).getThemeSupports();\n\n\t\t\t// If there are no supported formats, getThemeSupports still includes the default 'standard' format,\n\t\t\t// and in this case the control should not be shown since the user has no other formats to choose from.\n\t\t\treturn (\n\t\t\t\tthemeSupports.formats &&\n\t\t\t\tthemeSupports.formats.length > 0 &&\n\t\t\t\tthemeSupports.formats.some( ( type ) => type !== 'standard' )\n\t\t\t);\n\t\t},\n\t\t[ allowedControls, postTypeHasFormatSupport ]\n\t);\n\n\tconst showExcludeCurrentControl =\n\t\tshouldExcludeCurrentPost &&\n\t\tisControlAllowed( allowedControls, 'excludeCurrent' );\n\tconst postTypeSingularName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getPostType( postType )?.labels.singular_name,\n\t\t[ postType ]\n\t);\n\n\tconst showFiltersPanel =\n\t\tshowTaxControl ||\n\t\tshowAuthorControl ||\n\t\tshowSearchControl ||\n\t\tshowParentControl ||\n\t\tshowFormatControl ||\n\t\tshowExcludeCurrentControl;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst showPostCountControl = isControlAllowed(\n\t\tallowedControls,\n\t\t'postCount'\n\t);\n\tconst showOffSetControl = isControlAllowed( allowedControls, 'offset' );\n\tconst showPagesControl = isControlAllowed( allowedControls, 'pages' );\n\n\tconst showDisplayPanel =\n\t\tshowPostCountControl || showOffSetControl || showPagesControl;\n\n\t// The block cannot inherit a default WordPress query in singular content (e.g., post, page, 404, blank).\n\t// Warn users but still permit this type of query for exceptional cases in Classic and Hybrid themes.\n\tconst hasInheritanceWarning = isSingular && inherit;\n\n\treturn (\n\t\t<>\n\t\t\t{ showSettingsPanel && (\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\tsetQuery( {\n\t\t\t\t\t\t\tpostType: 'post',\n\t\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\t\tsticky: '',\n\t\t\t\t\t\t\tinherit: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showInheritControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! inherit }\n\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { inherit: true } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\t\t\tinherit: value === 'default',\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\tinherit\n\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'Display a list of posts or custom post types based on the current template.'\n\t\t\t\t\t\t\t\t\t\t\t )\n\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'Display a list of posts or custom post types based on specific criteria.'\n\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue={ !! inherit ? 'default' : 'custom' }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tvalue=\"default\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tvalue=\"custom\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t\t{ hasInheritanceWarning && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\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'Cannot inherit the current template query when placed inside the singular content (e.g., post, page, 404, blank).'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showPostTypeControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => postType !== 'post' }\n\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => onPostTypeChange( 'post' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postTypesSelectOptions.length > 2 ? (\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\toptions={ postTypesSelectOptions }\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\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<ToggleGroupControl\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ postTypesSelectOptions.map(\n\t\t\t\t\t\t\t\t\t\t( option ) => (\n\t\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showOrderControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\torder !== 'desc' || orderBy !== 'date'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { order: 'desc', orderBy: 'date' } )\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<OrderControl\n\t\t\t\t\t\t\t\t{ ...{ order, orderBy, orderByOptions } }\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\n\t\t\t\t\t{ showStickyControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! sticky }\n\t\t\t\t\t\t\tlabel={ __( 'Sticky posts' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { sticky: '' } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<StickyControl\n\t\t\t\t\t\t\t\tvalue={ sticky }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { sticky: 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</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showDisplayPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__display\"\n\t\t\t\t\tlabel={ __( 'Display' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\t\tpages: 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\t\t\t\thasValue={ () => perPage > 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PerPageControl\n\t\t\t\t\t\t\tperPage={ perPage }\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t'Offset',\n\t\t\t\t\t\t\t'Number of posts to skip in a query'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thasValue={ () => offset > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { offset: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<OffsetControl\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Max pages to show' ) }\n\t\t\t\t\t\thasValue={ () => pages > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { pages: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PagesControl pages={ pages } onChange={ setQuery } />\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showFiltersPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__filters\" // unused but kept for backward compatibility\n\t\t\t\t\tlabel={ __( 'Filters' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\tauthor: '',\n\t\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\t\tsearch: '',\n\t\t\t\t\t\t\ttaxQuery: null,\n\t\t\t\t\t\t\tformat: [],\n\t\t\t\t\t\t\texcludeCurrent: null,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showTaxControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Taxonomies' ) }\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\tObject.values( taxQuery || {} ).some(\n\t\t\t\t\t\t\t\t\t( value ) =>\n\t\t\t\t\t\t\t\t\t\tObject.values( value || {} ).some(\n\t\t\t\t\t\t\t\t\t\t\t( termIds ) => !! termIds?.length\n\t\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\tonDeselect={ () => setQuery( { taxQuery: null } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TaxonomyControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\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{ showAuthorControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! authorIds }\n\t\t\t\t\t\t\tlabel={ __( 'Authors' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { author: '' } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<AuthorControl\n\t\t\t\t\t\t\t\tvalue={ authorIds }\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{ showSearchControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! querySearch }\n\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetQuery( { search: '' } );\n\t\t\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\t\tvalue={ querySearch }\n\t\t\t\t\t\t\t\tonChange={ ( newQuerySearch ) => {\n\t\t\t\t\t\t\t\t\tdebouncedQuerySearch( newQuerySearch );\n\t\t\t\t\t\t\t\t\tsetQuerySearch( newQuerySearch );\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{ showParentControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! parents?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Parents' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { parents: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ParentControl\n\t\t\t\t\t\t\t\tparents={ parents }\n\t\t\t\t\t\t\t\tpostType={ postType }\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{ showFormatControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! format?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Formats' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { format: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FormatControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\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{ showExcludeCurrentControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Exclude' ) }\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\texcludeCurrent !== undefined &&\n\t\t\t\t\t\t\t\texcludeCurrent !== null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { excludeCurrent: null } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Exclude current' ) }\n\t\t\t\t\t\t\t\thelp={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: the post type singular name */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'Exclude the current %s from the query.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tpostTypeSingularName\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ !! excludeCurrent }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\t\texcludeCurrent: !! value,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAUO;AACP,kBAA0B;AAC1B,uBAAmC;AACnC,kBAAgC;AAChC,qBAAyB;AACzB,qBAAkC;AAClC,2BAAyB;AACzB,4BAA0B;AAC1B,4BAA0B;AAC1B,+BAAiC;AACjC,6BAA2B;AAC3B,4BAA0B;AAC1B,8BAA2B;AAC3B,6BAA0B;AAC1B,2BAAyB;AACzB,mBAOO;AACP,mBAA+C;AAyK7C;AAvKa,SAAR,uBAAyC,OAAQ;AACvD,QAAM,EAAE,YAAY,UAAU,YAAY,yBAAyB,IAClE;AACD,QAAM,EAAE,MAAM,IAAI;AAClB,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AACJ,QAAM,sBAAkB,iCAAoB,UAAW;AACvD,QAAM,aAAa,aAAa;AAChC,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,2BAAa;AACjB,QAAM,iBAAa,4BAAe,QAAS;AAC3C,QAAM,6BAAyB,wCAA2B,QAAS;AACnE,QAAM,mBAAmB,CAAE,aAAc;AACxC,UAAM,cAAc,EAAE,UAAU,SAAS;AAGzC,UAAM,sBAAsB,uBAAwB,QAAS;AAC7D,QAAK,CAAC,CAAE,qBAAqB,UAAU,CAAC,CAAE,UAAW;AAEpD,YAAM,gBAAgB,CAAE,cAAe;AACtC,eAAO,OAAO,QAAS,aAAa,CAAC,CAAE,EAAE;AAAA,UACxC,CAAE,aAAa,CAAE,UAAU,KAAM,MAAO;AACvC,gBAAK,oBAAoB,SAAU,QAAS,GAAI;AAC/C,0BAAa,QAAS,IAAI;AAAA,YAC3B;AACA,mBAAO;AAAA,UACR;AAAA,UACA,CAAC;AAAA,QACF;AAAA,MACD;AACA,YAAM,kBAAkB,CAAC;AACzB,YAAM,uBAAuB,cAAe,SAAS,OAAQ;AAC7D,UAAK,CAAC,CAAE,OAAO,KAAM,oBAAqB,EAAE,QAAS;AACpD,wBAAgB,UAAU;AAAA,MAC3B;AACA,YAAM,uBAAuB,cAAe,SAAS,OAAQ;AAC7D,UAAK,CAAC,CAAE,OAAO,KAAM,oBAAqB,EAAE,QAAS;AACpD,wBAAgB,UAAU;AAAA,MAC3B;AACA,kBAAY,WAAW,CAAC,CAAE,OAAO,KAAM,eAAgB,EAAE,SACtD,kBACA;AAAA,IACJ;AAEA,QAAK,aAAa,QAAS;AAC1B,kBAAY,SAAS;AAAA,IACtB;AAEA,gBAAY,UAAU,CAAC;AAIvB,UAAM,mBAAmB,yBAA0B,QAAS;AAC5D,QAAK,CAAE,kBAAmB;AACzB,kBAAY,SAAS,CAAC;AAAA,IACvB;AAEA,aAAU,WAAY;AAAA,EACvB;AACA,QAAM,CAAE,aAAa,cAAe,QAAI,yBAAU,MAAM,MAAO;AAC/D,QAAM,2BAAuB,wBAAS,MAAM;AAC3C,eAAO,yBAAU,CAAE,mBAAoB;AACtC,eAAU,EAAE,QAAQ,eAAe,CAAE;AAAA,IACtC,GAAG,GAAI;AAAA,EACR,GAAG,CAAE,QAAS,CAAE;AAEhB,QAAM,qBAAiB,gCAAmB,QAAS;AACnD,QAAM,yBAAqB,+BAAkB,iBAAiB,SAAU;AACxE,QAAM,sBACL,CAAE,eAAW,+BAAkB,iBAAiB,UAAW;AAC5D,QAAM,2BAAuB,gBAAI,WAAY;AAC7C,QAAM,0BAAsB;AAAA,IAC3B;AAAA,EACD;AACA,QAAM,mBACL,CAAE,eAAW,+BAAkB,iBAAiB,OAAQ;AACzD,QAAM,oBACL,CAAE,WACF,kBACA,+BAAkB,iBAAiB,QAAS;AAC7C,QAAM,oBACL,sBACA,uBACA,oBACA;AACD,QAAM,iBACL,CAAC,CAAE,YAAY,cACf,+BAAkB,iBAAiB,UAAW;AAC/C,QAAM,wBAAoB,+BAAkB,iBAAiB,QAAS;AACtE,QAAM,wBAAoB,+BAAkB,iBAAiB,QAAS;AACtE,QAAM,wBACL,+BAAkB,iBAAiB,SAAU,KAC7C;AAED,QAAM,2BAA2B,yBAA0B,QAAS;AACpE,QAAM,wBAAoB;AAAA,IACzB,CAAE,WAAY;AAEb,UACC,CAAE,4BACF,KAAE,+BAAkB,iBAAiB,QAAS,GAC7C;AACD,eAAO;AAAA,MACR;AAEA,YAAM,gBAAgB,OAAQ,iBAAAA,KAAU,EAAE,iBAAiB;AAI3D,aACC,cAAc,WACd,cAAc,QAAQ,SAAS,KAC/B,cAAc,QAAQ,KAAM,CAAE,SAAU,SAAS,UAAW;AAAA,IAE9D;AAAA,IACA,CAAE,iBAAiB,wBAAyB;AAAA,EAC7C;AAEA,QAAM,4BACL,gCACA,+BAAkB,iBAAiB,gBAAiB;AACrD,QAAM,2BAAuB;AAAA,IAC5B,CAAE,WACD,OAAQ,iBAAAA,KAAU,EAAE,YAAa,QAAS,GAAG,OAAO;AAAA,IACrD,CAAE,QAAS;AAAA,EACZ;AAEA,QAAM,mBACL,kBACA,qBACA,qBACA,qBACA,qBACA;AACD,QAAM,wBAAoB,6CAA+B;AAEzD,QAAM,2BAAuB;AAAA,IAC5B;AAAA,IACA;AAAA,EACD;AACA,QAAM,wBAAoB,+BAAkB,iBAAiB,QAAS;AACtE,QAAM,uBAAmB,+BAAkB,iBAAiB,OAAQ;AAEpE,QAAM,mBACL,wBAAwB,qBAAqB;AAI9C,QAAM,wBAAwB,cAAc;AAE5C,SACC,4EACG;AAAA,yBACD;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,WAAQ,gBAAI,UAAW;AAAA,QACvB,UAAW,MAAM;AAChB,mBAAU;AAAA,YACT,UAAU;AAAA,YACV,OAAO;AAAA,YACP,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,SAAS;AAAA,UACV,CAAE;AAAA,QACH;AAAA,QACA;AAAA,QAEE;AAAA,gCACD;AAAA,YAAC,kBAAAC;AAAA,YAAA;AAAA,cACA,UAAW,MAAM,CAAE;AAAA,cACnB,WAAQ,gBAAI,YAAa;AAAA,cACzB,YAAa,MAAM,SAAU,EAAE,SAAS,KAAK,CAAE;AAAA,cAC/C,kBAAgB;AAAA,cAEhB,uDAAC,kBAAAC,sBAAA,EAAO,SAAU,GACjB;AAAA;AAAA,kBAAC,kBAAAC;AAAA,kBAAA;AAAA,oBACA,WAAQ,gBAAI,YAAa;AAAA,oBACzB,SAAO;AAAA,oBACP,UAAW,CAAE,UAAW;AACvB,+BAAU;AAAA,wBACT,SAAS,UAAU;AAAA,sBACpB,CAAE;AAAA,oBACH;AAAA,oBACA,MACC,cACG;AAAA,sBACA;AAAA,oBACA,QACA;AAAA,sBACA;AAAA,oBACA;AAAA,oBAEJ,OAAQ,CAAC,CAAE,UAAU,YAAY;AAAA,oBAEjC;AAAA;AAAA,wBAAC,kBAAAC;AAAA,wBAAA;AAAA,0BACA,OAAM;AAAA,0BACN,WAAQ,gBAAI,SAAU;AAAA;AAAA,sBACvB;AAAA,sBACA;AAAA,wBAAC,kBAAAA;AAAA,wBAAA;AAAA,0BACA,OAAM;AAAA,0BACN,WAAQ,gBAAI,QAAS;AAAA;AAAA,sBACtB;AAAA;AAAA;AAAA,gBACD;AAAA,gBACE,yBACD;AAAA,kBAAC;AAAA;AAAA,oBACA,QAAO;AAAA,oBACP,eAAgB;AAAA,oBAEd;AAAA,sBACD;AAAA,oBACD;AAAA;AAAA,gBACD;AAAA,iBAEF;AAAA;AAAA,UACD;AAAA,UAGC,uBACD;AAAA,YAAC,kBAAAH;AAAA,YAAA;AAAA,cACA,UAAW,MAAM,aAAa;AAAA,cAC9B,OAAQ;AAAA,cACR,YAAa,MAAM,iBAAkB,MAAO;AAAA,cAC5C,kBAAgB;AAAA,cAEd,iCAAuB,SAAS,IACjC;AAAA,gBAAC;AAAA;AAAA,kBACA,SAAU;AAAA,kBACV,OAAQ;AAAA,kBACR,OAAQ;AAAA,kBACR,UAAW;AAAA,kBACX,MAAO;AAAA;AAAA,cACR,IAEA;AAAA,gBAAC,kBAAAE;AAAA,gBAAA;AAAA,kBACA,SAAO;AAAA,kBACP,OAAQ;AAAA,kBACR,OAAQ;AAAA,kBACR,UAAW;AAAA,kBACX,MAAO;AAAA,kBAEL,iCAAuB;AAAA,oBACxB,CAAE,WACD;AAAA,sBAAC,kBAAAC;AAAA,sBAAA;AAAA,wBAEA,OAAQ,OAAO;AAAA,wBACf,OAAQ,OAAO;AAAA;AAAA,sBAFT,OAAO;AAAA,oBAGd;AAAA,kBAEF;AAAA;AAAA,cACD;AAAA;AAAA,UAEF;AAAA,UAGC,oBACD;AAAA,YAAC,kBAAAH;AAAA,YAAA;AAAA,cACA,UAAW,MACV,UAAU,UAAU,YAAY;AAAA,cAEjC,WAAQ,gBAAI,UAAW;AAAA,cACvB,YAAa,MACZ,SAAU,EAAE,OAAO,QAAQ,SAAS,OAAO,CAAE;AAAA,cAE9C,kBAAgB;AAAA,cAEhB;AAAA,gBAAC,qBAAAI;AAAA,gBAAA;AAAA,kBACE,GAAG,EAAE,OAAO,SAAS,eAAe;AAAA,kBACtC,UAAW;AAAA;AAAA,cACZ;AAAA;AAAA,UACD;AAAA,UAGC,qBACD;AAAA,YAAC,kBAAAJ;AAAA,YAAA;AAAA,cACA,UAAW,MAAM,CAAC,CAAE;AAAA,cACpB,WAAQ,gBAAI,cAAe;AAAA,cAC3B,YAAa,MAAM,SAAU,EAAE,QAAQ,GAAG,CAAE;AAAA,cAC5C,kBAAgB;AAAA,cAEhB;AAAA,gBAAC,sBAAAK;AAAA,gBAAA;AAAA,kBACA,OAAQ;AAAA,kBACR,UAAW,CAAE,UACZ,SAAU,EAAE,QAAQ,MAAM,CAAE;AAAA;AAAA,cAE9B;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IAEF;AAAA,IAEC,CAAE,WAAW,oBACd;AAAA,MAAC,kBAAAN;AAAA,MAAA;AAAA,QACA,WAAU;AAAA,QACV,WAAQ,gBAAI,SAAU;AAAA,QACtB,UAAW,MAAM;AAChB,mBAAU;AAAA,YACT,QAAQ;AAAA,YACR,OAAO;AAAA,UACR,CAAE;AAAA,QACH;AAAA,QACA;AAAA,QAEA;AAAA;AAAA,YAAC,kBAAAC;AAAA,YAAA;AAAA,cACA,WAAQ,gBAAI,gBAAiB;AAAA,cAC7B,UAAW,MAAM,UAAU;AAAA,cAE3B;AAAA,gBAAC,wBAAAM;AAAA,gBAAA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,UAAW;AAAA;AAAA,cACZ;AAAA;AAAA,UACD;AAAA,UACA;AAAA,YAAC,kBAAAN;AAAA,YAAA;AAAA,cACA,WAAQ;AAAA,gBACP;AAAA,gBACA;AAAA,cACD;AAAA,cACA,UAAW,MAAM,SAAS;AAAA,cAC1B,YAAa,MAAM,SAAU,EAAE,QAAQ,EAAE,CAAE;AAAA,cAE3C;AAAA,gBAAC,uBAAAO;AAAA,gBAAA;AAAA,kBACA;AAAA,kBACA,UAAW;AAAA;AAAA,cACZ;AAAA;AAAA,UACD;AAAA,UACA;AAAA,YAAC,kBAAAP;AAAA,YAAA;AAAA,cACA,WAAQ,gBAAI,mBAAoB;AAAA,cAChC,UAAW,MAAM,QAAQ;AAAA,cACzB,YAAa,MAAM,SAAU,EAAE,OAAO,EAAE,CAAE;AAAA,cAE1C,sDAAC,qBAAAQ,SAAA,EAAa,OAAgB,UAAW,UAAW;AAAA;AAAA,UACrD;AAAA;AAAA;AAAA,IACD;AAAA,IAEC,CAAE,WAAW,oBACd;AAAA,MAAC,kBAAAT;AAAA,MAAA;AAAA,QACA,WAAU;AAAA,QACV,WAAQ,gBAAI,SAAU;AAAA,QACtB,UAAW,MAAM;AAChB,mBAAU;AAAA,YACT,QAAQ;AAAA,YACR,SAAS,CAAC;AAAA,YACV,QAAQ;AAAA,YACR,UAAU;AAAA,YACV,QAAQ,CAAC;AAAA,YACT,gBAAgB;AAAA,UACjB,CAAE;AACF,yBAAgB,EAAG;AAAA,QACpB;AAAA,QACA;AAAA,QAEE;AAAA,4BACD;AAAA,YAAC,kBAAAC;AAAA,YAAA;AAAA,cACA,WAAQ,gBAAI,YAAa;AAAA,cACzB,UAAW,MACV,OAAO,OAAQ,YAAY,CAAC,CAAE,EAAE;AAAA,gBAC/B,CAAE,UACD,OAAO,OAAQ,SAAS,CAAC,CAAE,EAAE;AAAA,kBAC5B,CAAE,YAAa,CAAC,CAAE,SAAS;AAAA,gBAC5B;AAAA,cACF;AAAA,cAED,YAAa,MAAM,SAAU,EAAE,UAAU,KAAK,CAAE;AAAA,cAEhD;AAAA,gBAAC;AAAA;AAAA,kBACA,UAAW;AAAA,kBACX;AAAA;AAAA,cACD;AAAA;AAAA,UACD;AAAA,UAEC,qBACD;AAAA,YAAC,kBAAAA;AAAA,YAAA;AAAA,cACA,UAAW,MAAM,CAAC,CAAE;AAAA,cACpB,WAAQ,gBAAI,SAAU;AAAA,cACtB,YAAa,MAAM,SAAU,EAAE,QAAQ,GAAG,CAAE;AAAA,cAE5C;AAAA,gBAAC,sBAAAS;AAAA,gBAAA;AAAA,kBACA,OAAQ;AAAA,kBACR,UAAW;AAAA;AAAA,cACZ;AAAA;AAAA,UACD;AAAA,UAEC,qBACD;AAAA,YAAC,kBAAAT;AAAA,YAAA;AAAA,cACA,UAAW,MAAM,CAAC,CAAE;AAAA,cACpB,WAAQ,gBAAI,SAAU;AAAA,cACtB,YAAa,MAAM;AAClB,yBAAU,EAAE,QAAQ,GAAG,CAAE;AACzB,+BAAgB,EAAG;AAAA,cACpB;AAAA,cAEA;AAAA,gBAAC;AAAA;AAAA,kBACA,WAAQ,gBAAI,SAAU;AAAA,kBACtB,OAAQ;AAAA,kBACR,UAAW,CAAE,mBAAoB;AAChC,yCAAsB,cAAe;AACrC,mCAAgB,cAAe;AAAA,kBAChC;AAAA;AAAA,cACD;AAAA;AAAA,UACD;AAAA,UAEC,qBACD;AAAA,YAAC,kBAAAA;AAAA,YAAA;AAAA,cACA,UAAW,MAAM,CAAC,CAAE,SAAS;AAAA,cAC7B,WAAQ,gBAAI,SAAU;AAAA,cACtB,YAAa,MAAM,SAAU,EAAE,SAAS,CAAC,EAAE,CAAE;AAAA,cAE7C;AAAA,gBAAC,sBAAAU;AAAA,gBAAA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,UAAW;AAAA;AAAA,cACZ;AAAA;AAAA,UACD;AAAA,UAEC,qBACD;AAAA,YAAC,kBAAAV;AAAA,YAAA;AAAA,cACA,UAAW,MAAM,CAAC,CAAE,QAAQ;AAAA,cAC5B,WAAQ,gBAAI,SAAU;AAAA,cACtB,YAAa,MAAM,SAAU,EAAE,QAAQ,CAAC,EAAE,CAAE;AAAA,cAE5C;AAAA,gBAAC,uBAAAW;AAAA,gBAAA;AAAA,kBACA,UAAW;AAAA,kBACX;AAAA;AAAA,cACD;AAAA;AAAA,UACD;AAAA,UAEC,6BACD;AAAA,YAAC,kBAAAX;AAAA,YAAA;AAAA,cACA,WAAQ,gBAAI,SAAU;AAAA,cACtB,UAAW,MACV,mBAAmB,UACnB,mBAAmB;AAAA,cAEpB,YAAa,MACZ,SAAU,EAAE,gBAAgB,KAAK,CAAE;AAAA,cAGpC;AAAA,gBAAC;AAAA;AAAA,kBACA,WAAQ,gBAAI,iBAAkB;AAAA,kBAC9B,UAAO;AAAA;AAAA,wBAEN;AAAA,sBACC;AAAA,oBACD;AAAA,oBACA;AAAA,kBACD;AAAA,kBACA,SAAU,CAAC,CAAE;AAAA,kBACb,UAAW,CAAE,UAAW;AACvB,6BAAU;AAAA,sBACT,gBAAgB,CAAC,CAAE;AAAA,oBACpB,CAAE;AAAA,kBACH;AAAA;AAAA,cACD;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IAEF;AAAA,KAEF;AAEF;",
4
+ "sourcesContent": ["import {\n\tTextControl,\n\tSelectControl,\n\tNotice,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\nimport OrderControl from './order-control';\nimport AuthorControl from './author-control';\nimport ParentControl from './parent-control';\nimport { TaxonomyControls } from './taxonomy-controls';\nimport FormatControls from './format-controls';\nimport StickyControl from './sticky-control';\nimport PerPageControl from './per-page-control';\nimport OffsetControl from './offset-controls';\nimport PagesControl from './pages-control';\nimport {\n\tusePostTypes,\n\tuseIsPostTypeHierarchical,\n\tuseAllowedControls,\n\tisControlAllowed,\n\tuseTaxonomies,\n\tuseOrderByOptions,\n} from '../../utils';\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\n\nexport default function QueryInspectorControls( props ) {\n\tconst { attributes, setQuery, isSingular, shouldExcludeCurrentPost } =\n\t\tprops;\n\tconst { query } = attributes;\n\tconst {\n\t\torder,\n\t\torderBy,\n\t\tauthor: authorIds,\n\t\tpages,\n\t\t// Match `build_query_vars_from_query_block()`, which queries posts when\n\t\t// `query` has no post type.\n\t\tpostType = 'post',\n\t\tperPage,\n\t\toffset,\n\t\tsticky,\n\t\tinherit,\n\t\ttaxQuery,\n\t\tparents,\n\t\tformat,\n\t\texcludeCurrent,\n\t} = query;\n\tconst allowedControls = useAllowedControls( attributes );\n\tconst showSticky = postType === 'post';\n\tconst {\n\t\tpostTypesTaxonomiesMap,\n\t\tpostTypesSelectOptions,\n\t\tpostTypeFormatSupportMap,\n\t} = usePostTypes();\n\tconst taxonomies = useTaxonomies( postType );\n\tconst isPostTypeHierarchical = useIsPostTypeHierarchical( postType );\n\tconst onPostTypeChange = ( newValue ) => {\n\t\tconst updateQuery = { postType: newValue };\n\t\t// We need to dynamically update the `taxQuery` property,\n\t\t// by removing any not supported taxonomy from the query.\n\t\tconst supportedTaxonomies = postTypesTaxonomiesMap[ newValue ];\n\t\tif ( !! supportedTaxonomies?.length && !! taxQuery ) {\n\t\t\t// Shared utility to build taxQuery based on supported taxonomies.\n\t\t\tconst buildTaxQuery = ( _taxQuery ) => {\n\t\t\t\treturn Object.entries( _taxQuery || {} ).reduce(\n\t\t\t\t\t( accumulator, [ taxonomy, terms ] ) => {\n\t\t\t\t\t\tif ( supportedTaxonomies.includes( taxonomy ) ) {\n\t\t\t\t\t\t\taccumulator[ taxonomy ] = terms;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\t\t\t};\n\t\t\tconst updatedTaxQuery = {};\n\t\t\tconst builtIncludeTaxQuery = buildTaxQuery( taxQuery.include );\n\t\t\tif ( !! Object.keys( builtIncludeTaxQuery ).length ) {\n\t\t\t\tupdatedTaxQuery.include = builtIncludeTaxQuery;\n\t\t\t}\n\t\t\tconst builtExcludeTaxQuery = buildTaxQuery( taxQuery.exclude );\n\t\t\tif ( !! Object.keys( builtExcludeTaxQuery ).length ) {\n\t\t\t\tupdatedTaxQuery.exclude = builtExcludeTaxQuery;\n\t\t\t}\n\t\t\tupdateQuery.taxQuery = !! Object.keys( updatedTaxQuery ).length\n\t\t\t\t? updatedTaxQuery\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tif ( newValue !== 'post' ) {\n\t\t\tupdateQuery.sticky = '';\n\t\t}\n\t\t// We need to reset `parents` because they are tied to each post type.\n\t\tupdateQuery.parents = [];\n\t\t// Post types can register post format support with `add_post_type_support`.\n\t\t// But we need to reset the `format` property when switching to post types\n\t\t// that do not support post formats.\n\t\tconst hasFormatSupport = postTypeFormatSupportMap[ newValue ];\n\t\tif ( ! hasFormatSupport ) {\n\t\t\tupdateQuery.format = [];\n\t\t}\n\n\t\tsetQuery( updateQuery );\n\t};\n\tconst [ querySearch, setQuerySearch ] = useState( query.search );\n\tconst debouncedQuerySearch = useMemo( () => {\n\t\treturn debounce( ( newQuerySearch ) => {\n\t\t\tsetQuery( { search: newQuerySearch } );\n\t\t}, 250 );\n\t}, [ setQuery ] );\n\n\tconst orderByOptions = useOrderByOptions( postType );\n\tconst showInheritControl = isControlAllowed( allowedControls, 'inherit' );\n\tconst showPostTypeControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'postType' );\n\tconst postTypeControlLabel = __( 'Post type' );\n\tconst postTypeControlHelp = __(\n\t\t'Select the type of content to display: posts, pages, or custom post types.'\n\t);\n\tconst showOrderControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'order' );\n\tconst showStickyControl =\n\t\t! inherit &&\n\t\tshowSticky &&\n\t\tisControlAllowed( allowedControls, 'sticky' );\n\tconst showSettingsPanel =\n\t\tshowInheritControl ||\n\t\tshowPostTypeControl ||\n\t\tshowOrderControl ||\n\t\tshowStickyControl;\n\tconst showTaxControl =\n\t\t!! taxonomies?.length &&\n\t\tisControlAllowed( allowedControls, 'taxQuery' );\n\tconst showAuthorControl = isControlAllowed( allowedControls, 'author' );\n\tconst showSearchControl = isControlAllowed( allowedControls, 'search' );\n\tconst showParentControl =\n\t\tisControlAllowed( allowedControls, 'parents' ) &&\n\t\tisPostTypeHierarchical;\n\n\tconst postTypeHasFormatSupport = postTypeFormatSupportMap[ postType ];\n\tconst showFormatControl = useSelect(\n\t\t( select ) => {\n\t\t\t// Check if the post type supports post formats and if the control is allowed.\n\t\t\tif (\n\t\t\t\t! postTypeHasFormatSupport ||\n\t\t\t\t! isControlAllowed( allowedControls, 'format' )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst themeSupports = select( coreStore ).getThemeSupports();\n\n\t\t\t// If there are no supported formats, getThemeSupports still includes the default 'standard' format,\n\t\t\t// and in this case the control should not be shown since the user has no other formats to choose from.\n\t\t\treturn (\n\t\t\t\tthemeSupports.formats &&\n\t\t\t\tthemeSupports.formats.length > 0 &&\n\t\t\t\tthemeSupports.formats.some( ( type ) => type !== 'standard' )\n\t\t\t);\n\t\t},\n\t\t[ allowedControls, postTypeHasFormatSupport ]\n\t);\n\n\tconst showExcludeCurrentControl =\n\t\tshouldExcludeCurrentPost &&\n\t\tisControlAllowed( allowedControls, 'excludeCurrent' );\n\tconst postTypeSingularName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getPostType( postType )?.labels?.singular_name,\n\t\t[ postType ]\n\t);\n\n\tconst showFiltersPanel =\n\t\tshowTaxControl ||\n\t\tshowAuthorControl ||\n\t\tshowSearchControl ||\n\t\tshowParentControl ||\n\t\tshowFormatControl ||\n\t\tshowExcludeCurrentControl;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst showPostCountControl = isControlAllowed(\n\t\tallowedControls,\n\t\t'postCount'\n\t);\n\tconst showOffSetControl = isControlAllowed( allowedControls, 'offset' );\n\tconst showPagesControl = isControlAllowed( allowedControls, 'pages' );\n\n\tconst showDisplayPanel =\n\t\tshowPostCountControl || showOffSetControl || showPagesControl;\n\n\t// The block cannot inherit a default WordPress query in singular content (e.g., post, page, 404, blank).\n\t// Warn users but still permit this type of query for exceptional cases in Classic and Hybrid themes.\n\tconst hasInheritanceWarning = isSingular && inherit;\n\n\treturn (\n\t\t<>\n\t\t\t{ showSettingsPanel && (\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\tsetQuery( {\n\t\t\t\t\t\t\tpostType: 'post',\n\t\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\t\tsticky: '',\n\t\t\t\t\t\t\tinherit: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showInheritControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! inherit }\n\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { inherit: true } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\t\t\tinherit: value === 'default',\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\tinherit\n\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'Display a list of posts or custom post types based on the current template.'\n\t\t\t\t\t\t\t\t\t\t\t )\n\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'Display a list of posts or custom post types based on specific criteria.'\n\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue={ !! inherit ? 'default' : 'custom' }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tvalue=\"default\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tvalue=\"custom\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t\t{ hasInheritanceWarning && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\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'Cannot inherit the current template query when placed inside the singular content (e.g., post, page, 404, blank).'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showPostTypeControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => postType !== 'post' }\n\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => onPostTypeChange( 'post' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postTypesSelectOptions.length > 2 ? (\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\toptions={ postTypesSelectOptions }\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\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<ToggleGroupControl\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ postTypesSelectOptions.map(\n\t\t\t\t\t\t\t\t\t\t( option ) => (\n\t\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showOrderControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\torder !== 'desc' || orderBy !== 'date'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { order: 'desc', orderBy: 'date' } )\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<OrderControl\n\t\t\t\t\t\t\t\t{ ...{ order, orderBy, orderByOptions } }\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\n\t\t\t\t\t{ showStickyControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! sticky }\n\t\t\t\t\t\t\tlabel={ __( 'Sticky posts' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { sticky: '' } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<StickyControl\n\t\t\t\t\t\t\t\tvalue={ sticky }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { sticky: 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</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showDisplayPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__display\"\n\t\t\t\t\tlabel={ __( 'Display' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\t\tpages: 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\t\t\t\thasValue={ () => perPage > 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PerPageControl\n\t\t\t\t\t\t\tperPage={ perPage }\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t'Offset',\n\t\t\t\t\t\t\t'Number of posts to skip in a query'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thasValue={ () => offset > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { offset: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<OffsetControl\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Max pages to show' ) }\n\t\t\t\t\t\thasValue={ () => pages > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { pages: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PagesControl pages={ pages } onChange={ setQuery } />\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showFiltersPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__filters\" // unused but kept for backward compatibility\n\t\t\t\t\tlabel={ __( 'Filters' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\tauthor: '',\n\t\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\t\tsearch: '',\n\t\t\t\t\t\t\ttaxQuery: null,\n\t\t\t\t\t\t\tformat: [],\n\t\t\t\t\t\t\texcludeCurrent: null,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showTaxControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Taxonomies' ) }\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\tObject.values( taxQuery || {} ).some(\n\t\t\t\t\t\t\t\t\t( value ) =>\n\t\t\t\t\t\t\t\t\t\tObject.values( value || {} ).some(\n\t\t\t\t\t\t\t\t\t\t\t( termIds ) => !! termIds?.length\n\t\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\tonDeselect={ () => setQuery( { taxQuery: null } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TaxonomyControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\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{ showAuthorControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! authorIds }\n\t\t\t\t\t\t\tlabel={ __( 'Authors' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { author: '' } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<AuthorControl\n\t\t\t\t\t\t\t\tvalue={ authorIds }\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{ showSearchControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! querySearch }\n\t\t\t\t\t\t\tlabel={ __( 'Search terms' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetQuery( { search: '' } );\n\t\t\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Search terms' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Filter the query by keywords that appear in the content, title, or excerpt.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ querySearch }\n\t\t\t\t\t\t\t\tonChange={ ( newQuerySearch ) => {\n\t\t\t\t\t\t\t\t\tdebouncedQuerySearch( newQuerySearch );\n\t\t\t\t\t\t\t\t\tsetQuerySearch( newQuerySearch );\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{ showParentControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! parents?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Parents' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { parents: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ParentControl\n\t\t\t\t\t\t\t\tparents={ parents }\n\t\t\t\t\t\t\t\tpostType={ postType }\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{ showFormatControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! format?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Formats' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { format: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FormatControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\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{ showExcludeCurrentControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Exclude' ) }\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\texcludeCurrent !== undefined &&\n\t\t\t\t\t\t\t\texcludeCurrent !== null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { excludeCurrent: null } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Exclude current' ) }\n\t\t\t\t\t\t\t\thelp={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: the post type singular name */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'Exclude the current %s from the query.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tpostTypeSingularName\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ !! excludeCurrent }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\t\texcludeCurrent: !! value,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["coreStore", "ToolsPanel", "ToolsPanelItem", "VStack", "ToggleGroupControl", "ToggleGroupControlOption", "OrderControl", "StickyControl", "PerPageControl", "OffsetControl", "PagesControl", "AuthorControl", "ParentControl", "FormatControls"]
7
7
  }
@@ -39,10 +39,10 @@ var import_element = require("@wordpress/element");
39
39
  var import_block_editor = require("@wordpress/block-editor");
40
40
  var import_i18n = require("@wordpress/i18n");
41
41
  var import_core_data = require("@wordpress/core-data");
42
+ var import_notices = require("@wordpress/notices");
42
43
  var import_enhanced_pagination_control = __toESM(require("./inspector-controls/enhanced-pagination-control.cjs"));
43
44
  var import_lock_unlock = require("../../lock-unlock.cjs");
44
45
  var import_inspector_controls = __toESM(require("./inspector-controls/index.cjs"));
45
- var import_enhanced_pagination_modal = __toESM(require("./enhanced-pagination-modal.cjs"));
46
46
  var import_utils = require("../utils.cjs");
47
47
  var import_query_toolbar = __toESM(require("./query-toolbar.cjs"));
48
48
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -66,6 +66,8 @@ function QueryContent({
66
66
  const { templateSlug, postType } = context;
67
67
  const { isSingular, templateType } = (0, import_utils.getQueryContextFromTemplate)(templateSlug);
68
68
  const { __unstableMarkNextChangeAsNotPersistent } = (0, import_data.useDispatch)(import_block_editor.store);
69
+ const { createNotice } = (0, import_data.useDispatch)(import_notices.store);
70
+ const unsupportedBlocks = (0, import_utils.useUnsupportedBlocks)(clientId);
69
71
  const instanceId = (0, import_compose.useInstanceId)(QueryContent);
70
72
  const blockProps = (0, import_block_editor.useBlockProps)();
71
73
  const innerBlocksProps = (0, import_block_editor.useInnerBlocksProps)(blockProps);
@@ -122,6 +124,33 @@ function QueryContent({
122
124
  __unstableMarkNextChangeAsNotPersistent,
123
125
  setAttributes
124
126
  ]);
127
+ (0, import_element.useEffect)(() => {
128
+ if (enhancedPagination && unsupportedBlocks.length) {
129
+ __unstableMarkNextChangeAsNotPersistent();
130
+ setAttributes({ enhancedPagination: false });
131
+ const message = (0, import_i18n.sprintf)(
132
+ /* translators: %s: A list of block titles. */
133
+ (0, import_i18n.__)(
134
+ `"Reload full page" was enabled because some blocks inside the Query block aren't supported: %s.`
135
+ ),
136
+ unsupportedBlocks.join(
137
+ /* translators: Used between list items, there is a space after the comma. */
138
+ (0, import_i18n.__)(", ")
139
+ // eslint-disable-line @wordpress/i18n-no-flanking-whitespace
140
+ )
141
+ );
142
+ createNotice("info", message, {
143
+ type: "snackbar",
144
+ id: "query-enhanced-pagination-disabled"
145
+ });
146
+ }
147
+ }, [
148
+ enhancedPagination,
149
+ unsupportedBlocks,
150
+ __unstableMarkNextChangeAsNotPersistent,
151
+ setAttributes,
152
+ createNotice
153
+ ]);
125
154
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
126
155
  isSelected && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
127
156
  import_query_toolbar.default,
@@ -131,14 +160,6 @@ function QueryContent({
131
160
  hasInnerBlocks: true
132
161
  }
133
162
  ),
134
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
135
- import_enhanced_pagination_modal.default,
136
- {
137
- attributes,
138
- setAttributes,
139
- clientId
140
- }
141
- ),
142
163
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
143
164
  import_inspector_controls.default,
144
165
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/query/edit/query-content.jsx"],
4
- "sourcesContent": ["import { useSelect, useDispatch } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useEffect, useCallback } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tuseInnerBlocksProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport EnhancedPaginationControl from './inspector-controls/enhanced-pagination-control';\nimport { unlock } from '../../lock-unlock';\nimport QueryInspectorControls from './inspector-controls';\nimport EnhancedPaginationModal from './enhanced-pagination-modal';\nimport { getQueryContextFromTemplate } from '../utils';\nimport QueryToolbar from './query-toolbar';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nconst DEFAULTS_POSTS_PER_PAGE = 3;\n\nexport default function QueryContent( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tcontext,\n\tname,\n\tisSelected,\n} ) {\n\tconst {\n\t\tqueryId,\n\t\tquery,\n\t\tenhancedPagination,\n\t\ttagName: TagName = 'div',\n\t\tquery: { inherit } = {},\n\t} = attributes;\n\tconst { templateSlug, postType } = context;\n\tconst { isSingular, templateType } =\n\t\tgetQueryContextFromTemplate( templateSlug );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst instanceId = useInstanceId( QueryContent );\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps );\n\tconst { postsPerPage } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { getEntityRecord, getEntityRecordEdits, canUser } =\n\t\t\tselect( coreStore );\n\t\tconst settingPerPage = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? +getEntityRecord( 'root', 'site' )?.posts_per_page\n\t\t\t: +getSettings().postsPerPage;\n\n\t\t// Gets changes made via the template area posts per page setting. These won't be saved\n\t\t// until the page is saved, but we should reflect this setting within the query loops\n\t\t// that inherit it.\n\t\tconst editedSettingPerPage = +getEntityRecordEdits( 'root', 'site' )\n\t\t\t?.posts_per_page;\n\n\t\treturn {\n\t\t\tpostsPerPage:\n\t\t\t\teditedSettingPerPage ||\n\t\t\t\tsettingPerPage ||\n\t\t\t\tDEFAULTS_POSTS_PER_PAGE,\n\t\t};\n\t}, [] );\n\n\t// Whether the \"exclude current\" filter applies: we're in a singular template\n\t// and the post type matches the query.\n\tconst shouldExcludeCurrentPost =\n\t\tisSingular &&\n\t\t! inherit &&\n\t\t( query.postType === postType || query.postType === templateType );\n\n\t// There are some effects running where some initialization logic is\n\t// happening and setting some values to some attributes (ex. queryId).\n\t// These updates can cause an `undo trap` where undoing will result in\n\t// resetting again, so we need to mark these changes as not persistent\n\t// with `__unstableMarkNextChangeAsNotPersistent`.\n\n\t// Changes in query property (which is an object) need to be in the same callback,\n\t// because updates are batched after the render and changes in different query properties\n\t// would cause to override previous wanted changes.\n\tconst updateQuery = useCallback(\n\t\t( newQuery ) =>\n\t\t\tsetAttributes( ( prevAttributes ) => ( {\n\t\t\t\tquery: { ...prevAttributes.query, ...newQuery },\n\t\t\t} ) ),\n\t\t[ setAttributes ]\n\t);\n\tuseEffect( () => {\n\t\tconst newQuery = {};\n\t\t// When we inherit from global query always need to set the `perPage`\n\t\t// based on the reading settings.\n\t\tif ( inherit && query.perPage !== postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t} else if ( ! query.perPage && postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t}\n\t\t// Remove the exclusion when it no longer applies, so the filters stay\n\t\t// clean. We never force it on: enabling the exclusion is left to the\n\t\t// user. An absent key is already clean — writing `null` into it would\n\t\t// change the serialized markup of every pre-existing Query block just\n\t\t// by opening the editor.\n\t\tif (\n\t\t\t! shouldExcludeCurrentPost &&\n\t\t\tquery.excludeCurrent !== undefined &&\n\t\t\tquery.excludeCurrent !== null\n\t\t) {\n\t\t\tnewQuery.excludeCurrent = null;\n\t\t}\n\t\tif ( !! Object.keys( newQuery ).length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateQuery( newQuery );\n\t\t}\n\t}, [\n\t\tquery.perPage,\n\t\tquery.excludeCurrent,\n\t\tinherit,\n\t\tpostsPerPage,\n\t\tshouldExcludeCurrentPost,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tupdateQuery,\n\t] );\n\t// We need this for multi-query block pagination.\n\t// Query parameters for each block are scoped to their ID.\n\tuseEffect( () => {\n\t\tif ( ! Number.isFinite( queryId ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { queryId: instanceId } );\n\t\t}\n\t}, [\n\t\tqueryId,\n\t\tinstanceId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetAttributes,\n\t] );\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<QueryToolbar\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\thasInnerBlocks\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<EnhancedPaginationModal\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<QueryInspectorControls\n\t\t\t\t\tname={ name }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetQuery={ updateQuery }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisSingular={ isSingular }\n\t\t\t\t\tshouldExcludeCurrentPost={ shouldExcludeCurrentPost }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HTMLElementControl\n\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t\t<EnhancedPaginationControl\n\t\t\t\t\tenhancedPagination={ enhancedPagination }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
6
- "names": ["blockEditorPrivateApis", "blockEditorStore", "coreStore", "QueryToolbar", "EnhancedPaginationModal", "QueryInspectorControls", "EnhancedPaginationControl"]
4
+ "sourcesContent": ["import { useSelect, useDispatch } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useEffect, useCallback } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tuseInnerBlocksProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport EnhancedPaginationControl from './inspector-controls/enhanced-pagination-control';\nimport { unlock } from '../../lock-unlock';\nimport QueryInspectorControls from './inspector-controls';\nimport { getQueryContextFromTemplate, useUnsupportedBlocks } from '../utils';\nimport QueryToolbar from './query-toolbar';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nconst DEFAULTS_POSTS_PER_PAGE = 3;\n\nexport default function QueryContent( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tcontext,\n\tname,\n\tisSelected,\n} ) {\n\tconst {\n\t\tqueryId,\n\t\tquery,\n\t\tenhancedPagination,\n\t\ttagName: TagName = 'div',\n\t\tquery: { inherit } = {},\n\t} = attributes;\n\tconst { templateSlug, postType } = context;\n\tconst { isSingular, templateType } =\n\t\tgetQueryContextFromTemplate( templateSlug );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst unsupportedBlocks = useUnsupportedBlocks( clientId );\n\tconst instanceId = useInstanceId( QueryContent );\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps );\n\tconst { postsPerPage } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { getEntityRecord, getEntityRecordEdits, canUser } =\n\t\t\tselect( coreStore );\n\t\tconst settingPerPage = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? +getEntityRecord( 'root', 'site' )?.posts_per_page\n\t\t\t: +getSettings().postsPerPage;\n\n\t\t// Gets changes made via the template area posts per page setting. These won't be saved\n\t\t// until the page is saved, but we should reflect this setting within the query loops\n\t\t// that inherit it.\n\t\tconst editedSettingPerPage = +getEntityRecordEdits( 'root', 'site' )\n\t\t\t?.posts_per_page;\n\n\t\treturn {\n\t\t\tpostsPerPage:\n\t\t\t\teditedSettingPerPage ||\n\t\t\t\tsettingPerPage ||\n\t\t\t\tDEFAULTS_POSTS_PER_PAGE,\n\t\t};\n\t}, [] );\n\n\t// Whether the \"exclude current\" filter applies: we're in a singular template\n\t// and the post type matches the query.\n\tconst shouldExcludeCurrentPost =\n\t\tisSingular &&\n\t\t! inherit &&\n\t\t( query.postType === postType || query.postType === templateType );\n\n\t// There are some effects running where some initialization logic is\n\t// happening and setting some values to some attributes (ex. queryId).\n\t// These updates can cause an `undo trap` where undoing will result in\n\t// resetting again, so we need to mark these changes as not persistent\n\t// with `__unstableMarkNextChangeAsNotPersistent`.\n\n\t// Changes in query property (which is an object) need to be in the same callback,\n\t// because updates are batched after the render and changes in different query properties\n\t// would cause to override previous wanted changes.\n\tconst updateQuery = useCallback(\n\t\t( newQuery ) =>\n\t\t\tsetAttributes( ( prevAttributes ) => ( {\n\t\t\t\tquery: { ...prevAttributes.query, ...newQuery },\n\t\t\t} ) ),\n\t\t[ setAttributes ]\n\t);\n\tuseEffect( () => {\n\t\tconst newQuery = {};\n\t\t// When we inherit from global query always need to set the `perPage`\n\t\t// based on the reading settings.\n\t\tif ( inherit && query.perPage !== postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t} else if ( ! query.perPage && postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t}\n\t\t// Remove the exclusion when it no longer applies, so the filters stay\n\t\t// clean. We never force it on: enabling the exclusion is left to the\n\t\t// user. An absent key is already clean — writing `null` into it would\n\t\t// change the serialized markup of every pre-existing Query block just\n\t\t// by opening the editor.\n\t\tif (\n\t\t\t! shouldExcludeCurrentPost &&\n\t\t\tquery.excludeCurrent !== undefined &&\n\t\t\tquery.excludeCurrent !== null\n\t\t) {\n\t\t\tnewQuery.excludeCurrent = null;\n\t\t}\n\t\tif ( !! Object.keys( newQuery ).length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateQuery( newQuery );\n\t\t}\n\t}, [\n\t\tquery.perPage,\n\t\tquery.excludeCurrent,\n\t\tinherit,\n\t\tpostsPerPage,\n\t\tshouldExcludeCurrentPost,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tupdateQuery,\n\t] );\n\t// We need this for multi-query block pagination.\n\t// Query parameters for each block are scoped to their ID.\n\tuseEffect( () => {\n\t\tif ( ! Number.isFinite( queryId ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { queryId: instanceId } );\n\t\t}\n\t}, [\n\t\tqueryId,\n\t\tinstanceId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetAttributes,\n\t] );\n\tuseEffect( () => {\n\t\tif ( enhancedPagination && unsupportedBlocks.length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { enhancedPagination: false } );\n\t\t\tconst message = sprintf(\n\t\t\t\t/* translators: %s: A list of block titles. */\n\t\t\t\t__(\n\t\t\t\t\t`\"Reload full page\" was enabled because some blocks inside the Query block aren't supported: %s.`\n\t\t\t\t),\n\t\t\t\tunsupportedBlocks.join(\n\t\t\t\t\t/* translators: Used between list items, there is a space after the comma. */\n\t\t\t\t\t__( ', ' ) // eslint-disable-line @wordpress/i18n-no-flanking-whitespace\n\t\t\t\t)\n\t\t\t);\n\t\t\tcreateNotice( 'info', message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'query-enhanced-pagination-disabled',\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tenhancedPagination,\n\t\tunsupportedBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetAttributes,\n\t\tcreateNotice,\n\t] );\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<QueryToolbar\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\thasInnerBlocks\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<QueryInspectorControls\n\t\t\t\t\tname={ name }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetQuery={ updateQuery }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisSingular={ isSingular }\n\t\t\t\t\tshouldExcludeCurrentPost={ shouldExcludeCurrentPost }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HTMLElementControl\n\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t\t<EnhancedPaginationControl\n\t\t\t\t\tenhancedPagination={ enhancedPagination }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["blockEditorPrivateApis", "blockEditorStore", "noticesStore", "coreStore", "QueryToolbar", "QueryInspectorControls", "EnhancedPaginationControl"]
7
7
  }
@@ -294,20 +294,27 @@ var useUnsupportedBlocks = (clientId) => {
294
294
  return (0, import_data.useSelect)(
295
295
  (select) => {
296
296
  const { getClientIdsOfDescendants, getBlockName } = select(import_block_editor.store);
297
- return getClientIdsOfDescendants(clientId).some(
297
+ const { getBlockSupport, getBlockType } = select(import_blocks.store);
298
+ const blockTitles = /* @__PURE__ */ new Set();
299
+ getClientIdsOfDescendants(clientId).forEach(
298
300
  (descendantClientId) => {
299
301
  const blockName = getBlockName(descendantClientId);
300
302
  const blockSupportsInteractivity = Object.is(
301
- (0, import_blocks.getBlockSupport)(blockName, "interactivity"),
303
+ getBlockSupport(blockName, "interactivity"),
302
304
  true
303
305
  );
304
- const blockSupportsInteractivityClientNavigation = (0, import_blocks.getBlockSupport)(
306
+ const blockSupportsInteractivityClientNavigation = getBlockSupport(
305
307
  blockName,
306
308
  "interactivity.clientNavigation"
307
309
  );
308
- return !blockSupportsInteractivity && !blockSupportsInteractivityClientNavigation;
310
+ if (!blockSupportsInteractivity && !blockSupportsInteractivityClientNavigation) {
311
+ blockTitles.add(
312
+ getBlockType(blockName)?.title || blockName
313
+ );
314
+ }
309
315
  }
310
316
  );
317
+ return [...blockTitles];
311
318
  },
312
319
  [clientId]
313
320
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/query/utils.js"],
4
- "sourcesContent": ["import { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcloneBlock,\n\tgetBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n/** @typedef {import('@wordpress/components/build-types/query-controls/types').OrderByOption} OrderByOption */\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\n/**\n * The object used in Query block that contains info and helper mappings\n * from an array of IHasNameAndId objects.\n *\n * @typedef {Object} QueryEntitiesInfo\n * @property {IHasNameAndId[]} entities The array of entities.\n * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value.\n * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.\n * @property {string[]} names Array with the entities' names.\n */\n\n/**\n * Returns a helper object with mapping from Objects that implement\n * the `IHasNameAndId` interface. The returned object is used for\n * integration with `FormTokenField` component.\n *\n * @param {IHasNameAndId[]} entities The entities to extract of helper object.\n * @return {QueryEntitiesInfo} The object with the entities information.\n */\nexport const getEntitiesInfo = ( entities ) => {\n\tconst mapping = entities?.reduce(\n\t\t( accumulator, entity ) => {\n\t\t\tconst { mapById, mapByName, names } = accumulator;\n\t\t\tmapById[ entity.id ] = entity;\n\t\t\tmapByName[ entity.name ] = entity;\n\t\t\tnames.push( entity.name );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ mapById: {}, mapByName: {}, names: [] }\n\t);\n\treturn {\n\t\tentities,\n\t\t...mapping,\n\t};\n};\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as a string of properties, separated by dots,\n * for example: \"parent.child\".\n *\n * @param {Object} object Input object.\n * @param {string} path Path to the object property.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path ) => {\n\tconst normalizedPath = path.split( '.' );\n\tlet value = object;\n\tnormalizedPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of entities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * Returns a helper object that contains:\n * 1. An `options` object from the available post types, to be passed to a `SelectControl`.\n * 2. A helper map with available taxonomies per post type.\n * 3. A helper map with post format support per post type.\n *\n * @return {Object} The helper object related to post types.\n */\nexport const usePostTypes = () => {\n\tconst postTypes = useSelect( ( select ) => {\n\t\tconst { getPostTypes } = select( coreStore );\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\tconst filteredPostTypes = getPostTypes( { per_page: -1 } )?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t\treturn filteredPostTypes;\n\t}, [] );\n\tconst postTypesTaxonomiesMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) {\n\t\t\treturn;\n\t\t}\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] = type.taxonomies;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\tconst postTypesSelectOptions = useMemo(\n\t\t() =>\n\t\t\t( postTypes || [] ).map( ( { labels, slug } ) => ( {\n\t\t\t\tlabel: labels.singular_name,\n\t\t\t\tvalue: slug,\n\t\t\t} ) ),\n\t\t[ postTypes ]\n\t);\n\tconst postTypeFormatSupportMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] =\n\t\t\t\ttype.supports?.[ 'post-formats' ] || false;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\treturn {\n\t\tpostTypesTaxonomiesMap,\n\t\tpostTypesSelectOptions,\n\t\tpostTypeFormatSupportMap,\n\t};\n};\n\n/**\n * Hook that returns the taxonomies associated with a specific post type.\n *\n * @param {string} postType The post type from which to retrieve the associated taxonomies.\n * @return {Object[]} An array of the associated taxonomies.\n */\nexport const useTaxonomies = ( postType ) => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies, getPostType } = select( coreStore );\n\t\t\t// Does the post type have taxonomies?\n\t\t\tif ( getPostType( postType )?.taxonomies?.length > 0 ) {\n\t\t\t\treturn getTaxonomies( {\n\t\t\t\t\ttype: postType,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn [];\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => !! visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\n/**\n * Hook that returns whether a specific post type is hierarchical.\n *\n * @param {string} postType The post type to check.\n * @return {boolean} Whether a specific post type is hierarchical.\n */\nexport function useIsPostTypeHierarchical( postType ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn type?.viewable && type?.hierarchical;\n\t\t},\n\t\t[ postType ]\n\t);\n}\n\n/**\n * List of avaiable options to order by.\n *\n * @param {string} postType The post type to check.\n * @return {OrderByOption[]} List of order options.\n */\nexport function useOrderByOptions( postType ) {\n\tconst supportsCustomOrder = useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn !! type?.supports?.[ 'page-attributes' ];\n\t\t},\n\t\t[ postType ]\n\t);\n\n\treturn useMemo( () => {\n\t\tconst orderByOptions = [\n\t\t\t{\n\t\t\t\tlabel: __( 'Newest to oldest' ),\n\t\t\t\tvalue: 'date/desc',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Oldest to newest' ),\n\t\t\t\tvalue: 'date/asc',\n\t\t\t},\n\t\t\t{\n\t\t\t\t/* translators: Label for ordering posts by title in ascending order. */\n\t\t\t\tlabel: __( 'A → Z' ),\n\t\t\t\tvalue: 'title/asc',\n\t\t\t},\n\t\t\t{\n\t\t\t\t/* translators: Label for ordering posts by title in descending order. */\n\t\t\t\tlabel: __( 'Z → A' ),\n\t\t\t\tvalue: 'title/desc',\n\t\t\t},\n\t\t];\n\n\t\tif ( supportsCustomOrder ) {\n\t\t\torderByOptions.push(\n\t\t\t\t{\n\t\t\t\t\t/* translators: Label for ordering posts by ascending menu order. */\n\t\t\t\t\tlabel: __( 'Ascending by order' ),\n\t\t\t\t\tvalue: 'menu_order/asc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t/* translators: Label for ordering posts by descending menu order. */\n\t\t\t\t\tlabel: __( 'Descending by order' ),\n\t\t\t\t\tvalue: 'menu_order/desc',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn orderByOptions;\n\t}, [ supportsCustomOrder ] );\n}\n\n/**\n * Hook that returns the query properties' names defined by the active\n * block variation, to determine which block's filters to show.\n *\n * @param {Object} attributes Block attributes.\n * @return {string[]} An array of the query attributes.\n */\nexport function useAllowedControls( attributes ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.allowedControls,\n\n\t\t[ attributes ]\n\t);\n}\nexport function isControlAllowed( allowedControls, key ) {\n\t// Every controls is allowed if the list is not defined.\n\tif ( ! allowedControls ) {\n\t\treturn true;\n\t}\n\treturn allowedControls.includes( key );\n}\n\n/**\n * Clones a pattern's blocks and then recurses over that list of blocks,\n * transforming them to retain some `query` attribute properties.\n * For now we retain the `postType` and `inherit` properties as they are\n * fundamental for the expected functionality of the block and don't affect\n * its design and presentation.\n *\n * Returns the cloned/transformed blocks and array of existing Query Loop\n * client ids for further manipulation, in order to avoid multiple recursions.\n *\n * @param {WPBlock[]} blocks The list of blocks to look through and transform(mutate).\n * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.\n * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.\n */\nexport const getTransformedBlocksFromPattern = (\n\tblocks,\n\tqueryBlockAttributes\n) => {\n\tconst {\n\t\tquery: { postType, inherit },\n\t\tnamespace,\n\t} = queryBlockAttributes;\n\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\tconst queryClientIds = [];\n\tconst blocksQueue = [ ...clonedBlocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\t\tif ( block.name === 'core/query' ) {\n\t\t\tblock.attributes.query = {\n\t\t\t\t...block.attributes.query,\n\t\t\t\tpostType,\n\t\t\t\tinherit,\n\t\t\t};\n\t\t\tif ( namespace ) {\n\t\t\t\tblock.attributes.namespace = namespace;\n\t\t\t}\n\t\t\tqueryClientIds.push( block.clientId );\n\t\t}\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\treturn { newBlocks: clonedBlocks, queryClientIds };\n};\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific patterns for this variation.\n * If there are, these patterns are going to be the only ones suggested to\n * the user in setup and replace flow, without including the default ones\n * for Query Loop.\n *\n * If there are no such patterns, the default ones for Query Loop are going\n * to be suggested.\n *\n * @param {string} clientId The block's client ID.\n * @param {Object} attributes The block's attributes.\n * @return {string} The block name to be used in the patterns suggestions.\n */\nexport function useBlockNameForPatterns( clientId, attributes ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst activeVariationName = select(\n\t\t\t\tblocksStore\n\t\t\t).getActiveBlockVariation( 'core/query', attributes )?.name;\n\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn 'core/query';\n\t\t\t}\n\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst activePatterns = getPatternsByBlockTypes(\n\t\t\t\t`core/query/${ activeVariationName }`,\n\t\t\t\trootClientId\n\t\t\t);\n\n\t\t\treturn activePatterns.length > 0\n\t\t\t\t? `core/query/${ activeVariationName }`\n\t\t\t\t: 'core/query';\n\t\t},\n\t\t[ clientId, attributes ]\n\t);\n}\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific scoped `block` variations connected with\n * this variation.\n *\n * If there are, these variations are going to be the only ones suggested\n * to the user in setup flow when clicking to `start blank`, without including\n * the default ones for Query Loop.\n *\n * If there are no such scoped `block` variations, the default ones for Query\n * Loop are going to be suggested.\n *\n * The way we determine such variations is with the convention that they have the `namespace`\n * attribute defined as an array. This array should contain the names(`name` property) of any\n * variations they want to be connected to.\n * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,\n * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.\n * If the user selects this variation, the `namespace` attribute will be overridden by the\n * main `inserter` variation.\n *\n * @param {Object} attributes The block's attributes.\n * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.\n */\nexport function useScopedBlockVariations( attributes ) {\n\tconst { activeVariationName, blockVariations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\treturn {\n\t\t\t\tactiveVariationName: getActiveBlockVariation(\n\t\t\t\t\t'core/query',\n\t\t\t\t\tattributes\n\t\t\t\t)?.name,\n\t\t\t\tblockVariations: getBlockVariations( 'core/query', 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ attributes ]\n\t);\n\tconst variations = useMemo( () => {\n\t\t// Filter out the variations that have defined a `namespace` attribute,\n\t\t// which means they are 'connected' to specific variations of the block.\n\t\tconst isNotConnected = ( variation ) =>\n\t\t\t! variation.attributes?.namespace;\n\t\tif ( ! activeVariationName ) {\n\t\t\treturn blockVariations.filter( isNotConnected );\n\t\t}\n\t\tconst connectedVariations = blockVariations.filter( ( variation ) =>\n\t\t\tvariation.attributes?.namespace?.includes( activeVariationName )\n\t\t);\n\t\tif ( !! connectedVariations.length ) {\n\t\t\treturn connectedVariations;\n\t\t}\n\t\treturn blockVariations.filter( isNotConnected );\n\t}, [ activeVariationName, blockVariations ] );\n\treturn variations;\n}\n\n/**\n * Hook that returns the block patterns for a specific block type.\n *\n * @param {string} clientId The block's client ID.\n * @param {string} name The block type name.\n * @return {Object[]} An array of valid block patterns.\n */\nexport const usePatterns = ( clientId, name ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( name, rootClientId );\n\t\t},\n\t\t[ name, clientId ]\n\t);\n};\n\n/**\n * Hook that, given a block clientId, determines if it has unsupported blocks or not.\n *\n * @param {string} clientId The block's client ID.\n * @return {boolean} True if there are any unsupported blocks.\n */\nexport const useUnsupportedBlocks = ( clientId ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getClientIdsOfDescendants, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( clientId ).some(\n\t\t\t\t( descendantClientId ) => {\n\t\t\t\t\tconst blockName = getBlockName( descendantClientId );\n\t\t\t\t\t/*\n\t\t\t\t\t * Client side navigation can be true in two states:\n\t\t\t\t\t * - supports.interactivity = true;\n\t\t\t\t\t * - supports.interactivity.clientNavigation = true;\n\t\t\t\t\t */\n\t\t\t\t\tconst blockSupportsInteractivity = Object.is(\n\t\t\t\t\t\tgetBlockSupport( blockName, 'interactivity' ),\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t\tconst blockSupportsInteractivityClientNavigation =\n\t\t\t\t\t\tgetBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'interactivity.clientNavigation'\n\t\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! blockSupportsInteractivity &&\n\t\t\t\t\t\t! blockSupportsInteractivityClientNavigation\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n};\n\n/**\n * Helper function that returns the query context from the editor based on the\n * available template slug.\n *\n * @param {string} templateSlug Current template slug based on context.\n * @return {Object} An object with isSingular and templateType properties.\n */\nexport function getQueryContextFromTemplate( templateSlug ) {\n\t// In the Post Editor, the template slug is not available.\n\tif ( ! templateSlug ) {\n\t\treturn { isSingular: true };\n\t}\n\tlet isSingular = false;\n\tlet templateType = templateSlug === 'wp' ? 'custom' : templateSlug;\n\tconst singularTemplates = [ '404', 'blank', 'single', 'page', 'custom' ];\n\tconst templateTypeFromSlug = templateSlug.includes( '-' )\n\t\t? templateSlug.split( '-', 1 )[ 0 ]\n\t\t: templateSlug;\n\tconst queryFromTemplateSlug = templateSlug.includes( '-' )\n\t\t? templateSlug.split( '-' ).slice( 1 ).join( '-' )\n\t\t: '';\n\tif ( queryFromTemplateSlug ) {\n\t\ttemplateType = templateTypeFromSlug;\n\t}\n\tisSingular = singularTemplates.includes( templateType );\n\n\treturn { isSingular, templateType };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA0B;AAC1B,qBAAwB;AACxB,uBAAmC;AACnC,0BAA0C;AAC1C,2BAA+B;AAC/B,kBAAmB;AACnB,oBAIO;AA8BA,IAAM,kBAAkB,CAAE,aAAc;AAC9C,QAAM,UAAU,UAAU;AAAA,IACzB,CAAE,aAAa,WAAY;AAC1B,YAAM,EAAE,SAAS,WAAW,MAAM,IAAI;AACtC,cAAS,OAAO,EAAG,IAAI;AACvB,gBAAW,OAAO,IAAK,IAAI;AAC3B,YAAM,KAAM,OAAO,IAAK;AACxB,aAAO;AAAA,IACR;AAAA,IACA,EAAE,SAAS,CAAC,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,EAAE;AAAA,EACzC;AACA,SAAO;AAAA,IACN;AAAA,IACA,GAAG;AAAA,EACJ;AACD;AAWO,IAAM,yBAAyB,CAAE,QAAQ,SAAU;AACzD,QAAM,iBAAiB,KAAK,MAAO,GAAI;AACvC,MAAI,QAAQ;AACZ,iBAAe,QAAS,CAAE,cAAe;AACxC,YAAQ,QAAS,SAAU;AAAA,EAC5B,CAAE;AACF,SAAO;AACR;AAWO,IAAM,qBAAqB,CAAE,UAAU,SAAU;AACvD,UAAS,YAAY,CAAC,GAAI,IAAK,CAAE,YAAc;AAAA,IAC9C,GAAG;AAAA,IACH,UAAM,qCAAgB,uBAAwB,QAAQ,IAAK,CAAE;AAAA,EAC9D,EAAI;AACL;AAUO,IAAM,eAAe,MAAM;AACjC,QAAM,gBAAY,uBAAW,CAAE,WAAY;AAC1C,UAAM,EAAE,aAAa,IAAI,OAAQ,iBAAAA,KAAU;AAC3C,UAAM,oBAAoB,CAAE,YAAa;AACzC,UAAM,oBAAoB,aAAc,EAAE,UAAU,GAAG,CAAE,GAAG;AAAA,MAC3D,CAAE,EAAE,UAAU,KAAK,MAClB,YAAY,CAAE,kBAAkB,SAAU,IAAK;AAAA,IACjD;AACA,WAAO;AAAA,EACR,GAAG,CAAC,CAAE;AACN,QAAM,6BAAyB,wBAAS,MAAM;AAC7C,QAAK,CAAE,WAAW,QAAS;AAC1B;AAAA,IACD;AACA,WAAO,UAAU,OAAQ,CAAE,aAAa,SAAU;AACjD,kBAAa,KAAK,IAAK,IAAI,KAAK;AAChC,aAAO;AAAA,IACR,GAAG,CAAC,CAAE;AAAA,EACP,GAAG,CAAE,SAAU,CAAE;AACjB,QAAM,6BAAyB;AAAA,IAC9B,OACG,aAAa,CAAC,GAAI,IAAK,CAAE,EAAE,QAAQ,KAAK,OAAS;AAAA,MAClD,OAAO,OAAO;AAAA,MACd,OAAO;AAAA,IACR,EAAI;AAAA,IACL,CAAE,SAAU;AAAA,EACb;AACA,QAAM,+BAA2B,wBAAS,MAAM;AAC/C,QAAK,CAAE,WAAW,QAAS;AAC1B,aAAO,CAAC;AAAA,IACT;AACA,WAAO,UAAU,OAAQ,CAAE,aAAa,SAAU;AACjD,kBAAa,KAAK,IAAK,IACtB,KAAK,WAAY,cAAe,KAAK;AACtC,aAAO;AAAA,IACR,GAAG,CAAC,CAAE;AAAA,EACP,GAAG,CAAE,SAAU,CAAE;AACjB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAQO,IAAM,gBAAgB,CAAE,aAAc;AAC5C,QAAM,iBAAa;AAAA,IAClB,CAAE,WAAY;AACb,YAAM,EAAE,eAAe,YAAY,IAAI,OAAQ,iBAAAA,KAAU;AAEzD,UAAK,YAAa,QAAS,GAAG,YAAY,SAAS,GAAI;AACtD,eAAO,cAAe;AAAA,UACrB,MAAM;AAAA,UACN,UAAU;AAAA,QACX,CAAE;AAAA,MACH;AACA,aAAO,CAAC;AAAA,IACT;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AACA,aAAO,wBAAS,MAAM;AACrB,WAAO,YAAY;AAAA,MAClB,CAAE,EAAE,WAAW,MAAO,CAAC,CAAE,YAAY;AAAA,IACtC;AAAA,EACD,GAAG,CAAE,UAAW,CAAE;AACnB;AAQO,SAAS,0BAA2B,UAAW;AACrD,aAAO;AAAA,IACN,CAAE,WAAY;AACb,YAAM,OAAO,OAAQ,iBAAAA,KAAU,EAAE,YAAa,QAAS;AACvD,aAAO,MAAM,YAAY,MAAM;AAAA,IAChC;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AACD;AAQO,SAAS,kBAAmB,UAAW;AAC7C,QAAM,0BAAsB;AAAA,IAC3B,CAAE,WAAY;AACb,YAAM,OAAO,OAAQ,iBAAAA,KAAU,EAAE,YAAa,QAAS;AACvD,aAAO,CAAC,CAAE,MAAM,WAAY,iBAAkB;AAAA,IAC/C;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,aAAO,wBAAS,MAAM;AACrB,UAAM,iBAAiB;AAAA,MACtB;AAAA,QACC,WAAO,gBAAI,kBAAmB;AAAA,QAC9B,OAAO;AAAA,MACR;AAAA,MACA;AAAA,QACC,WAAO,gBAAI,kBAAmB;AAAA,QAC9B,OAAO;AAAA,MACR;AAAA,MACA;AAAA;AAAA,QAEC,WAAO,gBAAI,OAAQ;AAAA,QACnB,OAAO;AAAA,MACR;AAAA,MACA;AAAA;AAAA,QAEC,WAAO,gBAAI,OAAQ;AAAA,QACnB,OAAO;AAAA,MACR;AAAA,IACD;AAEA,QAAK,qBAAsB;AAC1B,qBAAe;AAAA,QACd;AAAA;AAAA,UAEC,WAAO,gBAAI,oBAAqB;AAAA,UAChC,OAAO;AAAA,QACR;AAAA,QACA;AAAA;AAAA,UAEC,WAAO,gBAAI,qBAAsB;AAAA,UACjC,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD;AAEA,WAAO;AAAA,EACR,GAAG,CAAE,mBAAoB,CAAE;AAC5B;AASO,SAAS,mBAAoB,YAAa;AAChD,aAAO;AAAA,IACN,CAAE,WACD,OAAQ,cAAAC,KAAY,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD,GAAG;AAAA,IAEJ,CAAE,UAAW;AAAA,EACd;AACD;AACO,SAAS,iBAAkB,iBAAiB,KAAM;AAExD,MAAK,CAAE,iBAAkB;AACxB,WAAO;AAAA,EACR;AACA,SAAO,gBAAgB,SAAU,GAAI;AACtC;AAgBO,IAAM,kCAAkC,CAC9C,QACA,yBACI;AACJ,QAAM;AAAA,IACL,OAAO,EAAE,UAAU,QAAQ;AAAA,IAC3B;AAAA,EACD,IAAI;AACJ,QAAM,eAAe,OAAO,IAAK,CAAE,cAAW,0BAAY,KAAM,CAAE;AAClE,QAAM,iBAAiB,CAAC;AACxB,QAAM,cAAc,CAAE,GAAG,YAAa;AACtC,SAAQ,YAAY,SAAS,GAAI;AAChC,UAAM,QAAQ,YAAY,MAAM;AAChC,QAAK,MAAM,SAAS,cAAe;AAClC,YAAM,WAAW,QAAQ;AAAA,QACxB,GAAG,MAAM,WAAW;AAAA,QACpB;AAAA,QACA;AAAA,MACD;AACA,UAAK,WAAY;AAChB,cAAM,WAAW,YAAY;AAAA,MAC9B;AACA,qBAAe,KAAM,MAAM,QAAS;AAAA,IACrC;AACA,UAAM,aAAa,QAAS,CAAE,eAAgB;AAC7C,kBAAY,KAAM,UAAW;AAAA,IAC9B,CAAE;AAAA,EACH;AACA,SAAO,EAAE,WAAW,cAAc,eAAe;AAClD;AAgBO,SAAS,wBAAyB,UAAU,YAAa;AAC/D,aAAO;AAAA,IACN,CAAE,WAAY;AACb,YAAM,sBAAsB;AAAA,QAC3B,cAAAA;AAAA,MACD,EAAE,wBAAyB,cAAc,UAAW,GAAG;AAEvD,UAAK,CAAE,qBAAsB;AAC5B,eAAO;AAAA,MACR;AAEA,YAAM,EAAE,sBAAsB,wBAAwB,IACrD,OAAQ,oBAAAC,KAAiB;AAE1B,YAAM,eAAe,qBAAsB,QAAS;AACpD,YAAM,iBAAiB;AAAA,QACtB,cAAe,mBAAoB;AAAA,QACnC;AAAA,MACD;AAEA,aAAO,eAAe,SAAS,IAC5B,cAAe,mBAAoB,KACnC;AAAA,IACJ;AAAA,IACA,CAAE,UAAU,UAAW;AAAA,EACxB;AACD;AAyBO,SAAS,yBAA0B,YAAa;AACtD,QAAM,EAAE,qBAAqB,gBAAgB,QAAI;AAAA,IAChD,CAAE,WAAY;AACb,YAAM,EAAE,yBAAyB,mBAAmB,IACnD,OAAQ,cAAAD,KAAY;AACrB,aAAO;AAAA,QACN,qBAAqB;AAAA,UACpB;AAAA,UACA;AAAA,QACD,GAAG;AAAA,QACH,iBAAiB,mBAAoB,cAAc,OAAQ;AAAA,MAC5D;AAAA,IACD;AAAA,IACA,CAAE,UAAW;AAAA,EACd;AACA,QAAM,iBAAa,wBAAS,MAAM;AAGjC,UAAM,iBAAiB,CAAE,cACxB,CAAE,UAAU,YAAY;AACzB,QAAK,CAAE,qBAAsB;AAC5B,aAAO,gBAAgB,OAAQ,cAAe;AAAA,IAC/C;AACA,UAAM,sBAAsB,gBAAgB;AAAA,MAAQ,CAAE,cACrD,UAAU,YAAY,WAAW,SAAU,mBAAoB;AAAA,IAChE;AACA,QAAK,CAAC,CAAE,oBAAoB,QAAS;AACpC,aAAO;AAAA,IACR;AACA,WAAO,gBAAgB,OAAQ,cAAe;AAAA,EAC/C,GAAG,CAAE,qBAAqB,eAAgB,CAAE;AAC5C,SAAO;AACR;AASO,IAAM,cAAc,CAAE,UAAU,SAAU;AAChD,aAAO;AAAA,IACN,CAAE,WAAY;AACb,YAAM,EAAE,sBAAsB,wBAAwB,IACrD,OAAQ,oBAAAC,KAAiB;AAC1B,YAAM,eAAe,qBAAsB,QAAS;AACpD,aAAO,wBAAyB,MAAM,YAAa;AAAA,IACpD;AAAA,IACA,CAAE,MAAM,QAAS;AAAA,EAClB;AACD;AAQO,IAAM,uBAAuB,CAAE,aAAc;AACnD,aAAO;AAAA,IACN,CAAE,WAAY;AACb,YAAM,EAAE,2BAA2B,aAAa,IAC/C,OAAQ,oBAAAA,KAAiB;AAC1B,aAAO,0BAA2B,QAAS,EAAE;AAAA,QAC5C,CAAE,uBAAwB;AACzB,gBAAM,YAAY,aAAc,kBAAmB;AAMnD,gBAAM,6BAA6B,OAAO;AAAA,gBACzC,+BAAiB,WAAW,eAAgB;AAAA,YAC5C;AAAA,UACD;AACA,gBAAM,iDACL;AAAA,YACC;AAAA,YACA;AAAA,UACD;AAED,iBACC,CAAE,8BACF,CAAE;AAAA,QAEJ;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AACD;AASO,SAAS,4BAA6B,cAAe;AAE3D,MAAK,CAAE,cAAe;AACrB,WAAO,EAAE,YAAY,KAAK;AAAA,EAC3B;AACA,MAAI,aAAa;AACjB,MAAI,eAAe,iBAAiB,OAAO,WAAW;AACtD,QAAM,oBAAoB,CAAE,OAAO,SAAS,UAAU,QAAQ,QAAS;AACvE,QAAM,uBAAuB,aAAa,SAAU,GAAI,IACrD,aAAa,MAAO,KAAK,CAAE,EAAG,CAAE,IAChC;AACH,QAAM,wBAAwB,aAAa,SAAU,GAAI,IACtD,aAAa,MAAO,GAAI,EAAE,MAAO,CAAE,EAAE,KAAM,GAAI,IAC/C;AACH,MAAK,uBAAwB;AAC5B,mBAAe;AAAA,EAChB;AACA,eAAa,kBAAkB,SAAU,YAAa;AAEtD,SAAO,EAAE,YAAY,aAAa;AACnC;",
4
+ "sourcesContent": ["import { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport { cloneBlock, store as blocksStore } from '@wordpress/blocks';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n/** @typedef {import('@wordpress/components/build-types/query-controls/types').OrderByOption} OrderByOption */\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\n/**\n * The object used in Query block that contains info and helper mappings\n * from an array of IHasNameAndId objects.\n *\n * @typedef {Object} QueryEntitiesInfo\n * @property {IHasNameAndId[]} entities The array of entities.\n * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value.\n * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.\n * @property {string[]} names Array with the entities' names.\n */\n\n/**\n * Returns a helper object with mapping from Objects that implement\n * the `IHasNameAndId` interface. The returned object is used for\n * integration with `FormTokenField` component.\n *\n * @param {IHasNameAndId[]} entities The entities to extract of helper object.\n * @return {QueryEntitiesInfo} The object with the entities information.\n */\nexport const getEntitiesInfo = ( entities ) => {\n\tconst mapping = entities?.reduce(\n\t\t( accumulator, entity ) => {\n\t\t\tconst { mapById, mapByName, names } = accumulator;\n\t\t\tmapById[ entity.id ] = entity;\n\t\t\tmapByName[ entity.name ] = entity;\n\t\t\tnames.push( entity.name );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ mapById: {}, mapByName: {}, names: [] }\n\t);\n\treturn {\n\t\tentities,\n\t\t...mapping,\n\t};\n};\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as a string of properties, separated by dots,\n * for example: \"parent.child\".\n *\n * @param {Object} object Input object.\n * @param {string} path Path to the object property.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path ) => {\n\tconst normalizedPath = path.split( '.' );\n\tlet value = object;\n\tnormalizedPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of entities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * Returns a helper object that contains:\n * 1. An `options` object from the available post types, to be passed to a `SelectControl`.\n * 2. A helper map with available taxonomies per post type.\n * 3. A helper map with post format support per post type.\n *\n * @return {Object} The helper object related to post types.\n */\nexport const usePostTypes = () => {\n\tconst postTypes = useSelect( ( select ) => {\n\t\tconst { getPostTypes } = select( coreStore );\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\tconst filteredPostTypes = getPostTypes( { per_page: -1 } )?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t\treturn filteredPostTypes;\n\t}, [] );\n\tconst postTypesTaxonomiesMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) {\n\t\t\treturn;\n\t\t}\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] = type.taxonomies;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\tconst postTypesSelectOptions = useMemo(\n\t\t() =>\n\t\t\t( postTypes || [] ).map( ( { labels, slug } ) => ( {\n\t\t\t\tlabel: labels.singular_name,\n\t\t\t\tvalue: slug,\n\t\t\t} ) ),\n\t\t[ postTypes ]\n\t);\n\tconst postTypeFormatSupportMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] =\n\t\t\t\ttype.supports?.[ 'post-formats' ] || false;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\treturn {\n\t\tpostTypesTaxonomiesMap,\n\t\tpostTypesSelectOptions,\n\t\tpostTypeFormatSupportMap,\n\t};\n};\n\n/**\n * Hook that returns the taxonomies associated with a specific post type.\n *\n * @param {string} postType The post type from which to retrieve the associated taxonomies.\n * @return {Object[]} An array of the associated taxonomies.\n */\nexport const useTaxonomies = ( postType ) => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies, getPostType } = select( coreStore );\n\t\t\t// Does the post type have taxonomies?\n\t\t\tif ( getPostType( postType )?.taxonomies?.length > 0 ) {\n\t\t\t\treturn getTaxonomies( {\n\t\t\t\t\ttype: postType,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn [];\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => !! visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\n/**\n * Hook that returns whether a specific post type is hierarchical.\n *\n * @param {string} postType The post type to check.\n * @return {boolean} Whether a specific post type is hierarchical.\n */\nexport function useIsPostTypeHierarchical( postType ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn type?.viewable && type?.hierarchical;\n\t\t},\n\t\t[ postType ]\n\t);\n}\n\n/**\n * List of available options to order by.\n *\n * @param {string} postType The post type to check.\n * @return {OrderByOption[]} List of order options.\n */\nexport function useOrderByOptions( postType ) {\n\tconst supportsCustomOrder = useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn !! type?.supports?.[ 'page-attributes' ];\n\t\t},\n\t\t[ postType ]\n\t);\n\n\treturn useMemo( () => {\n\t\tconst orderByOptions = [\n\t\t\t{\n\t\t\t\tlabel: __( 'Newest to oldest' ),\n\t\t\t\tvalue: 'date/desc',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Oldest to newest' ),\n\t\t\t\tvalue: 'date/asc',\n\t\t\t},\n\t\t\t{\n\t\t\t\t/* translators: Label for ordering posts by title in ascending order. */\n\t\t\t\tlabel: __( 'A → Z' ),\n\t\t\t\tvalue: 'title/asc',\n\t\t\t},\n\t\t\t{\n\t\t\t\t/* translators: Label for ordering posts by title in descending order. */\n\t\t\t\tlabel: __( 'Z → A' ),\n\t\t\t\tvalue: 'title/desc',\n\t\t\t},\n\t\t];\n\n\t\tif ( supportsCustomOrder ) {\n\t\t\torderByOptions.push(\n\t\t\t\t{\n\t\t\t\t\t/* translators: Label for ordering posts by ascending menu order. */\n\t\t\t\t\tlabel: __( 'Ascending by order' ),\n\t\t\t\t\tvalue: 'menu_order/asc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t/* translators: Label for ordering posts by descending menu order. */\n\t\t\t\t\tlabel: __( 'Descending by order' ),\n\t\t\t\t\tvalue: 'menu_order/desc',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn orderByOptions;\n\t}, [ supportsCustomOrder ] );\n}\n\n/**\n * Hook that returns the query properties' names defined by the active\n * block variation, to determine which block's filters to show.\n *\n * @param {Object} attributes Block attributes.\n * @return {string[]} An array of the query attributes.\n */\nexport function useAllowedControls( attributes ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.allowedControls,\n\n\t\t[ attributes ]\n\t);\n}\nexport function isControlAllowed( allowedControls, key ) {\n\t// Every controls is allowed if the list is not defined.\n\tif ( ! allowedControls ) {\n\t\treturn true;\n\t}\n\treturn allowedControls.includes( key );\n}\n\n/**\n * Clones a pattern's blocks and then recurses over that list of blocks,\n * transforming them to retain some `query` attribute properties.\n * For now we retain the `postType` and `inherit` properties as they are\n * fundamental for the expected functionality of the block and don't affect\n * its design and presentation.\n *\n * Returns the cloned/transformed blocks and array of existing Query Loop\n * client ids for further manipulation, in order to avoid multiple recursions.\n *\n * @param {WPBlock[]} blocks The list of blocks to look through and transform(mutate).\n * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.\n * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.\n */\nexport const getTransformedBlocksFromPattern = (\n\tblocks,\n\tqueryBlockAttributes\n) => {\n\tconst {\n\t\tquery: { postType, inherit },\n\t\tnamespace,\n\t} = queryBlockAttributes;\n\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\tconst queryClientIds = [];\n\tconst blocksQueue = [ ...clonedBlocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\t\tif ( block.name === 'core/query' ) {\n\t\t\tblock.attributes.query = {\n\t\t\t\t...block.attributes.query,\n\t\t\t\tpostType,\n\t\t\t\tinherit,\n\t\t\t};\n\t\t\tif ( namespace ) {\n\t\t\t\tblock.attributes.namespace = namespace;\n\t\t\t}\n\t\t\tqueryClientIds.push( block.clientId );\n\t\t}\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\treturn { newBlocks: clonedBlocks, queryClientIds };\n};\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific patterns for this variation.\n * If there are, these patterns are going to be the only ones suggested to\n * the user in setup and replace flow, without including the default ones\n * for Query Loop.\n *\n * If there are no such patterns, the default ones for Query Loop are going\n * to be suggested.\n *\n * @param {string} clientId The block's client ID.\n * @param {Object} attributes The block's attributes.\n * @return {string} The block name to be used in the patterns suggestions.\n */\nexport function useBlockNameForPatterns( clientId, attributes ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst activeVariationName = select(\n\t\t\t\tblocksStore\n\t\t\t).getActiveBlockVariation( 'core/query', attributes )?.name;\n\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn 'core/query';\n\t\t\t}\n\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst activePatterns = getPatternsByBlockTypes(\n\t\t\t\t`core/query/${ activeVariationName }`,\n\t\t\t\trootClientId\n\t\t\t);\n\n\t\t\treturn activePatterns.length > 0\n\t\t\t\t? `core/query/${ activeVariationName }`\n\t\t\t\t: 'core/query';\n\t\t},\n\t\t[ clientId, attributes ]\n\t);\n}\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific scoped `block` variations connected with\n * this variation.\n *\n * If there are, these variations are going to be the only ones suggested\n * to the user in setup flow when clicking to `start blank`, without including\n * the default ones for Query Loop.\n *\n * If there are no such scoped `block` variations, the default ones for Query\n * Loop are going to be suggested.\n *\n * The way we determine such variations is with the convention that they have the `namespace`\n * attribute defined as an array. This array should contain the names(`name` property) of any\n * variations they want to be connected to.\n * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,\n * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.\n * If the user selects this variation, the `namespace` attribute will be overridden by the\n * main `inserter` variation.\n *\n * @param {Object} attributes The block's attributes.\n * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.\n */\nexport function useScopedBlockVariations( attributes ) {\n\tconst { activeVariationName, blockVariations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\treturn {\n\t\t\t\tactiveVariationName: getActiveBlockVariation(\n\t\t\t\t\t'core/query',\n\t\t\t\t\tattributes\n\t\t\t\t)?.name,\n\t\t\t\tblockVariations: getBlockVariations( 'core/query', 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ attributes ]\n\t);\n\tconst variations = useMemo( () => {\n\t\t// Filter out the variations that have defined a `namespace` attribute,\n\t\t// which means they are 'connected' to specific variations of the block.\n\t\tconst isNotConnected = ( variation ) =>\n\t\t\t! variation.attributes?.namespace;\n\t\tif ( ! activeVariationName ) {\n\t\t\treturn blockVariations.filter( isNotConnected );\n\t\t}\n\t\tconst connectedVariations = blockVariations.filter( ( variation ) =>\n\t\t\tvariation.attributes?.namespace?.includes( activeVariationName )\n\t\t);\n\t\tif ( !! connectedVariations.length ) {\n\t\t\treturn connectedVariations;\n\t\t}\n\t\treturn blockVariations.filter( isNotConnected );\n\t}, [ activeVariationName, blockVariations ] );\n\treturn variations;\n}\n\n/**\n * Hook that returns the block patterns for a specific block type.\n *\n * @param {string} clientId The block's client ID.\n * @param {string} name The block type name.\n * @return {Object[]} An array of valid block patterns.\n */\nexport const usePatterns = ( clientId, name ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( name, rootClientId );\n\t\t},\n\t\t[ name, clientId ]\n\t);\n};\n\n/**\n * Hook that, given a block clientId, returns the titles of the unsupported\n * blocks it contains, without duplicates.\n *\n * @param {string} clientId The block's client ID.\n * @return {string[]} The titles of the unsupported blocks.\n */\nexport const useUnsupportedBlocks = ( clientId ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getClientIdsOfDescendants, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getBlockSupport, getBlockType } = select( blocksStore );\n\t\t\tconst blockTitles = new Set();\n\t\t\tgetClientIdsOfDescendants( clientId ).forEach(\n\t\t\t\t( descendantClientId ) => {\n\t\t\t\t\tconst blockName = getBlockName( descendantClientId );\n\t\t\t\t\t/*\n\t\t\t\t\t * Client side navigation can be true in two states:\n\t\t\t\t\t * - supports.interactivity = true;\n\t\t\t\t\t * - supports.interactivity.clientNavigation = true;\n\t\t\t\t\t */\n\t\t\t\t\tconst blockSupportsInteractivity = Object.is(\n\t\t\t\t\t\tgetBlockSupport( blockName, 'interactivity' ),\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t\tconst blockSupportsInteractivityClientNavigation =\n\t\t\t\t\t\tgetBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'interactivity.clientNavigation'\n\t\t\t\t\t\t);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! blockSupportsInteractivity &&\n\t\t\t\t\t\t! blockSupportsInteractivityClientNavigation\n\t\t\t\t\t) {\n\t\t\t\t\t\tblockTitles.add(\n\t\t\t\t\t\t\tgetBlockType( blockName )?.title || blockName\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\treturn [ ...blockTitles ];\n\t\t},\n\t\t[ clientId ]\n\t);\n};\n\n/**\n * Helper function that returns the query context from the editor based on the\n * available template slug.\n *\n * @param {string} templateSlug Current template slug based on context.\n * @return {Object} An object with isSingular and templateType properties.\n */\nexport function getQueryContextFromTemplate( templateSlug ) {\n\t// In the Post Editor, the template slug is not available.\n\tif ( ! templateSlug ) {\n\t\treturn { isSingular: true };\n\t}\n\tlet isSingular = false;\n\tlet templateType = templateSlug === 'wp' ? 'custom' : templateSlug;\n\tconst singularTemplates = [ '404', 'blank', 'single', 'page', 'custom' ];\n\tconst templateTypeFromSlug = templateSlug.includes( '-' )\n\t\t? templateSlug.split( '-', 1 )[ 0 ]\n\t\t: templateSlug;\n\tconst queryFromTemplateSlug = templateSlug.includes( '-' )\n\t\t? templateSlug.split( '-' ).slice( 1 ).join( '-' )\n\t\t: '';\n\tif ( queryFromTemplateSlug ) {\n\t\ttemplateType = templateTypeFromSlug;\n\t}\n\tisSingular = singularTemplates.includes( templateType );\n\n\treturn { isSingular, templateType };\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["coreStore", "blocksStore", "blockEditorStore"]
7
7
  }
@@ -43,6 +43,7 @@ var import_icons = require("@wordpress/icons");
43
43
  var import_i18n = require("@wordpress/i18n");
44
44
  var import_dom = require("@wordpress/dom");
45
45
  var import_a11y = require("@wordpress/a11y");
46
+ var import_primitives = require("@wordpress/primitives");
46
47
  var import_utils = require("./utils.cjs");
47
48
  var import_hooks = require("../utils/hooks.cjs");
48
49
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -59,6 +60,7 @@ var TAG_NAME_MESSAGES = {
59
60
  };
60
61
  var DEFAULT_INNER_PADDING = "4px";
61
62
  var PERCENTAGE_WIDTHS = [25, 50, 75, 100];
63
+ var searchBlockIcon = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { d: "M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z" }) });
62
64
  function SearchEdit({
63
65
  className,
64
66
  attributes,
@@ -240,7 +242,7 @@ function SearchEdit({
240
242
  style: buttonStyles,
241
243
  "aria-label": buttonText ? (0, import_dom.__unstableStripHTML)(buttonText) : (0, import_i18n.__)("Search"),
242
244
  ref: buttonRef,
243
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.Icon, { icon: import_icons.search })
245
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.Icon, { icon: searchBlockIcon })
244
246
  }
245
247
  ),
246
248
  !buttonUseIcon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(