@wordpress/edit-site 6.9.0 → 6.11.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 (675) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-post/index.js +1 -1
  3. package/build/components/add-new-post/index.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  5. package/build/components/add-new-template/index.js +1 -1
  6. package/build/components/add-new-template/index.js.map +1 -1
  7. package/build/components/add-new-template/utils.js +8 -8
  8. package/build/components/add-new-template/utils.js.map +1 -1
  9. package/build/components/app/index.js +3 -1
  10. package/build/components/app/index.js.map +1 -1
  11. package/build/components/block-editor/use-editor-iframe-props.js +29 -20
  12. package/build/components/block-editor/use-editor-iframe-props.js.map +1 -1
  13. package/build/components/block-editor/use-site-editor-settings.js +10 -8
  14. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  15. package/build/components/editor/index.js +23 -11
  16. package/build/components/editor/index.js.map +1 -1
  17. package/build/components/editor/use-adapt-editor-to-canvas.js +49 -0
  18. package/build/components/editor/use-adapt-editor-to-canvas.js.map +1 -0
  19. package/build/components/editor/use-editor-title.js +2 -2
  20. package/build/components/editor/use-editor-title.js.map +1 -1
  21. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  22. package/build/components/global-styles/font-families.js +41 -25
  23. package/build/components/global-styles/font-families.js.map +1 -1
  24. package/build/components/global-styles/font-family-item.js +1 -1
  25. package/build/components/global-styles/font-family-item.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  27. package/build/components/global-styles/font-library-modal/context.js +1 -0
  28. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  29. package/build/components/global-styles/font-library-modal/font-card.js +1 -1
  30. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  31. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/installed-fonts.js +4 -3
  33. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  35. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  36. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  37. package/build/components/global-styles/font-library-modal/upload-fonts.js +1 -0
  38. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  39. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  40. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  41. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  42. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +1 -1
  43. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -1
  44. package/build/components/global-styles/font-sizes/font-size.js +14 -15
  45. package/build/components/global-styles/font-sizes/font-size.js.map +1 -1
  46. package/build/components/global-styles/font-sizes/font-sizes-count.js +1 -2
  47. package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -1
  48. package/build/components/global-styles/font-sizes/font-sizes.js +4 -4
  49. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  50. package/build/components/global-styles/highlighted-colors.js.map +1 -1
  51. package/build/components/global-styles/palette.js +16 -13
  52. package/build/components/global-styles/palette.js.map +1 -1
  53. package/build/components/global-styles/preset-colors.js.map +1 -1
  54. package/build/components/global-styles/root-menu.js +0 -4
  55. package/build/components/global-styles/root-menu.js.map +1 -1
  56. package/build/components/global-styles/screen-block-list.js +2 -6
  57. package/build/components/global-styles/screen-block-list.js.map +1 -1
  58. package/build/components/global-styles/screen-css.js +1 -1
  59. package/build/components/global-styles/screen-css.js.map +1 -1
  60. package/build/components/global-styles/screen-revisions/index.js +3 -8
  61. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  62. package/build/components/global-styles/screen-revisions/revisions-buttons.js +3 -3
  63. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  64. package/build/components/global-styles/screen-root.js +0 -3
  65. package/build/components/global-styles/screen-root.js.map +1 -1
  66. package/build/components/global-styles/screen-style-variations.js +14 -3
  67. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  68. package/build/components/global-styles/shadow-utils.js.map +1 -1
  69. package/build/components/global-styles/shadows-edit-panel.js +26 -15
  70. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  71. package/build/components/global-styles/shadows-panel.js +1 -4
  72. package/build/components/global-styles/shadows-panel.js.map +1 -1
  73. package/build/components/global-styles/style-variations-container.js +1 -5
  74. package/build/components/global-styles/style-variations-container.js.map +1 -1
  75. package/build/components/global-styles/typography-elements.js +1 -4
  76. package/build/components/global-styles/typography-elements.js.map +1 -1
  77. package/build/components/global-styles/typography-preview.js.map +1 -1
  78. package/build/components/global-styles/ui.js +27 -14
  79. package/build/components/global-styles/ui.js.map +1 -1
  80. package/build/components/global-styles/utils.js.map +1 -1
  81. package/build/components/global-styles/variations/variation.js +2 -2
  82. package/build/components/global-styles/variations/variation.js.map +1 -1
  83. package/build/components/global-styles/variations/variations-panel.js +0 -1
  84. package/build/components/global-styles/variations/variations-panel.js.map +1 -1
  85. package/build/components/global-styles-sidebar/default-sidebar.js +0 -1
  86. package/build/components/global-styles-sidebar/default-sidebar.js.map +1 -1
  87. package/build/components/global-styles-sidebar/index.js +43 -36
  88. package/build/components/global-styles-sidebar/index.js.map +1 -1
  89. package/build/components/layout/animation.js +1 -3
  90. package/build/components/layout/animation.js.map +1 -1
  91. package/build/components/layout/index.js +23 -47
  92. package/build/components/layout/index.js.map +1 -1
  93. package/build/components/layout/router.js +17 -140
  94. package/build/components/layout/router.js.map +1 -1
  95. package/build/components/page-patterns/delete-category-menu-item.js +3 -3
  96. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -1
  97. package/build/components/page-patterns/fields.js.map +1 -1
  98. package/build/components/page-patterns/header.js +1 -1
  99. package/build/components/page-patterns/header.js.map +1 -1
  100. package/build/components/page-patterns/index.js +4 -2
  101. package/build/components/page-patterns/index.js.map +1 -1
  102. package/build/components/page-patterns/use-pattern-settings.js +1 -1
  103. package/build/components/page-patterns/use-pattern-settings.js.map +1 -1
  104. package/build/components/page-templates/index.js +2 -2
  105. package/build/components/page-templates/index.js.map +1 -1
  106. package/build/components/pagination/index.js +1 -1
  107. package/build/components/pagination/index.js.map +1 -1
  108. package/build/components/post-edit/index.js +8 -4
  109. package/build/components/post-edit/index.js.map +1 -1
  110. package/build/components/post-fields/index.js +8 -54
  111. package/build/components/post-fields/index.js.map +1 -1
  112. package/build/components/post-list/index.js +1 -1
  113. package/build/components/post-list/index.js.map +1 -1
  114. package/build/components/posts-app/index.js.map +1 -1
  115. package/build/components/posts-app/router.js +4 -4
  116. package/build/components/posts-app/router.js.map +1 -1
  117. package/build/components/resizable-frame/index.js +21 -9
  118. package/build/components/resizable-frame/index.js.map +1 -1
  119. package/build/components/revisions/index.js +1 -1
  120. package/build/components/revisions/index.js.map +1 -1
  121. package/build/components/routes/use-title.js +1 -1
  122. package/build/components/routes/use-title.js.map +1 -1
  123. package/build/components/save-button/index.js +3 -3
  124. package/build/components/save-button/index.js.map +1 -1
  125. package/build/components/save-keyboard-shortcut/index.js +78 -0
  126. package/build/components/save-keyboard-shortcut/index.js.map +1 -0
  127. package/build/components/save-panel/index.js +17 -6
  128. package/build/components/save-panel/index.js.map +1 -1
  129. package/build/components/sidebar-button/index.js +1 -1
  130. package/build/components/sidebar-button/index.js.map +1 -1
  131. package/build/components/sidebar-dataviews/default-views.js +2 -5
  132. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  133. package/build/components/sidebar-navigation-item/index.js.map +1 -1
  134. package/build/components/sidebar-navigation-screen/index.js +2 -1
  135. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  137. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-global-styles/index.js +30 -10
  139. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  141. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +5 -5
  142. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  143. package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +3 -3
  144. package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -1
  145. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +7 -12
  146. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  147. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +2 -2
  148. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  149. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  150. package/build/components/site-editor-routes/home-edit.js +26 -0
  151. package/build/components/site-editor-routes/home-edit.js.map +1 -0
  152. package/build/components/site-editor-routes/home-view.js +25 -0
  153. package/build/components/site-editor-routes/home-view.js.map +1 -0
  154. package/build/components/site-editor-routes/index.js +49 -0
  155. package/build/components/site-editor-routes/index.js.map +1 -0
  156. package/build/components/site-editor-routes/navigation-edit.js +29 -0
  157. package/build/components/site-editor-routes/navigation-edit.js.map +1 -0
  158. package/build/components/site-editor-routes/navigation-item-edit.js +31 -0
  159. package/build/components/site-editor-routes/navigation-item-edit.js.map +1 -0
  160. package/build/components/site-editor-routes/navigation-item-view.js +30 -0
  161. package/build/components/site-editor-routes/navigation-item-view.js.map +1 -0
  162. package/build/components/site-editor-routes/navigation-view.js +28 -0
  163. package/build/components/site-editor-routes/navigation-view.js.map +1 -0
  164. package/build/components/site-editor-routes/pages-edit.js +43 -0
  165. package/build/components/site-editor-routes/pages-edit.js.map +1 -0
  166. package/build/components/site-editor-routes/pages-list-view-quick-edit.js +64 -0
  167. package/build/components/site-editor-routes/pages-list-view-quick-edit.js.map +1 -0
  168. package/build/components/site-editor-routes/pages-list-view.js +47 -0
  169. package/build/components/site-editor-routes/pages-list-view.js.map +1 -0
  170. package/build/components/site-editor-routes/pages-view-quick-edit.js +61 -0
  171. package/build/components/site-editor-routes/pages-view-quick-edit.js.map +1 -0
  172. package/build/components/site-editor-routes/pages-view.js +42 -0
  173. package/build/components/site-editor-routes/pages-view.js.map +1 -0
  174. package/build/components/site-editor-routes/patterns-edit.js +31 -0
  175. package/build/components/site-editor-routes/patterns-edit.js.map +1 -0
  176. package/build/components/site-editor-routes/patterns-view.js +29 -0
  177. package/build/components/site-editor-routes/patterns-view.js.map +1 -0
  178. package/build/components/site-editor-routes/styles-edit.js +28 -0
  179. package/build/components/site-editor-routes/styles-edit.js.map +1 -0
  180. package/build/components/site-editor-routes/styles-view.js +27 -0
  181. package/build/components/site-editor-routes/styles-view.js.map +1 -0
  182. package/build/components/site-editor-routes/templates-edit.js +31 -0
  183. package/build/components/site-editor-routes/templates-edit.js.map +1 -0
  184. package/build/components/site-editor-routes/templates-list-view.js +34 -0
  185. package/build/components/site-editor-routes/templates-list-view.js.map +1 -0
  186. package/build/components/site-editor-routes/templates-view.js +29 -0
  187. package/build/components/site-editor-routes/templates-view.js.map +1 -0
  188. package/build/components/site-hub/index.js +3 -2
  189. package/build/components/site-hub/index.js.map +1 -1
  190. package/build/components/style-book/color-examples.js +46 -0
  191. package/build/components/style-book/color-examples.js.map +1 -0
  192. package/build/components/style-book/constants.js +75 -10
  193. package/build/components/style-book/constants.js.map +1 -1
  194. package/build/components/style-book/duotone-examples.js +55 -0
  195. package/build/components/style-book/duotone-examples.js.map +1 -0
  196. package/build/components/style-book/examples.js +46 -3
  197. package/build/components/style-book/examples.js.map +1 -1
  198. package/build/components/style-book/index.js +92 -36
  199. package/build/components/style-book/index.js.map +1 -1
  200. package/build/components/style-book/types.js.map +1 -1
  201. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +6 -1
  202. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  203. package/build/deprecated.js.map +1 -1
  204. package/build/hooks/commands/use-common-commands.js +46 -30
  205. package/build/hooks/commands/use-common-commands.js.map +1 -1
  206. package/build/hooks/commands/use-edit-mode-commands.js +15 -11
  207. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  208. package/build/hooks/commands/use-set-command-context.js +12 -15
  209. package/build/hooks/commands/use-set-command-context.js.map +1 -1
  210. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  211. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -1
  212. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  213. package/build/index.js +2 -4
  214. package/build/index.js.map +1 -1
  215. package/build/posts.js +1 -1
  216. package/build/posts.js.map +1 -1
  217. package/build/store/actions.js.map +1 -1
  218. package/build/store/private-actions.js +8 -61
  219. package/build/store/private-actions.js.map +1 -1
  220. package/build/store/private-selectors.js +4 -12
  221. package/build/store/private-selectors.js.map +1 -1
  222. package/build/store/reducer.js +9 -18
  223. package/build/store/reducer.js.map +1 -1
  224. package/build/store/selectors.js.map +1 -1
  225. package/build/utils/get-filtered-template-parts.js.map +1 -1
  226. package/build-module/components/add-new-pattern/index.js +1 -3
  227. package/build-module/components/add-new-pattern/index.js.map +1 -1
  228. package/build-module/components/add-new-post/index.js +2 -3
  229. package/build-module/components/add-new-post/index.js.map +1 -1
  230. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +1 -2
  231. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  232. package/build-module/components/add-new-template/add-custom-template-modal-content.js +1 -3
  233. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  234. package/build-module/components/add-new-template/index.js +2 -4
  235. package/build-module/components/add-new-template/index.js.map +1 -1
  236. package/build-module/components/add-new-template/utils.js +9 -9
  237. package/build-module/components/add-new-template/utils.js.map +1 -1
  238. package/build-module/components/app/index.js +6 -5
  239. package/build-module/components/app/index.js.map +1 -1
  240. package/build-module/components/block-editor/use-editor-iframe-props.js +30 -21
  241. package/build-module/components/block-editor/use-editor-iframe-props.js.map +1 -1
  242. package/build-module/components/block-editor/use-site-editor-settings.js +10 -8
  243. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  244. package/build-module/components/editor/index.js +24 -14
  245. package/build-module/components/editor/index.js.map +1 -1
  246. package/build-module/components/editor/use-adapt-editor-to-canvas.js +42 -0
  247. package/build-module/components/editor/use-adapt-editor-to-canvas.js.map +1 -0
  248. package/build-module/components/editor/use-editor-title.js +3 -3
  249. package/build-module/components/editor/use-editor-title.js.map +1 -1
  250. package/build-module/components/editor-canvas-container/index.js +1 -2
  251. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  252. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  253. package/build-module/components/global-styles/color-palette-panel.js +1 -2
  254. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  255. package/build-module/components/global-styles/font-families.js +45 -31
  256. package/build-module/components/global-styles/font-families.js.map +1 -1
  257. package/build-module/components/global-styles/font-family-item.js +2 -3
  258. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  259. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +1 -2
  260. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  261. package/build-module/components/global-styles/font-library-modal/context.js +1 -0
  262. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  263. package/build-module/components/global-styles/font-library-modal/font-card.js +2 -3
  264. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  265. package/build-module/components/global-styles/font-library-modal/font-collection.js +1 -3
  266. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  267. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -2
  268. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  269. package/build-module/components/global-styles/font-library-modal/index.js +1 -2
  270. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  271. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +5 -6
  272. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  273. package/build-module/components/global-styles/font-library-modal/library-font-details.js +1 -3
  274. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  275. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +1 -2
  276. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  277. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  278. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +2 -2
  279. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  280. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  281. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  282. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  283. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +1 -1
  284. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -1
  285. package/build-module/components/global-styles/font-sizes/font-size.js +15 -18
  286. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -1
  287. package/build-module/components/global-styles/font-sizes/font-sizes-count.js +2 -4
  288. package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -1
  289. package/build-module/components/global-styles/font-sizes/font-sizes.js +5 -7
  290. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  291. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +1 -2
  292. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -1
  293. package/build-module/components/global-styles/gradients-palette-panel.js +1 -2
  294. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  295. package/build-module/components/global-styles/header.js +1 -2
  296. package/build-module/components/global-styles/header.js.map +1 -1
  297. package/build-module/components/global-styles/highlighted-colors.js.map +1 -1
  298. package/build-module/components/global-styles/navigation-button.js +1 -2
  299. package/build-module/components/global-styles/navigation-button.js.map +1 -1
  300. package/build-module/components/global-styles/palette.js +17 -15
  301. package/build-module/components/global-styles/palette.js.map +1 -1
  302. package/build-module/components/global-styles/preset-colors.js.map +1 -1
  303. package/build-module/components/global-styles/preview-iframe.js +1 -3
  304. package/build-module/components/global-styles/preview-iframe.js.map +1 -1
  305. package/build-module/components/global-styles/preview-styles.js +1 -2
  306. package/build-module/components/global-styles/preview-styles.js.map +1 -1
  307. package/build-module/components/global-styles/root-menu.js +1 -7
  308. package/build-module/components/global-styles/root-menu.js.map +1 -1
  309. package/build-module/components/global-styles/screen-background.js +1 -3
  310. package/build-module/components/global-styles/screen-background.js.map +1 -1
  311. package/build-module/components/global-styles/screen-block-list.js +3 -9
  312. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  313. package/build-module/components/global-styles/screen-block.js +1 -3
  314. package/build-module/components/global-styles/screen-block.js.map +1 -1
  315. package/build-module/components/global-styles/screen-color-palette.js +1 -3
  316. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  317. package/build-module/components/global-styles/screen-colors.js +1 -3
  318. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  319. package/build-module/components/global-styles/screen-css.js +2 -4
  320. package/build-module/components/global-styles/screen-css.js.map +1 -1
  321. package/build-module/components/global-styles/screen-layout.js +1 -3
  322. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  323. package/build-module/components/global-styles/screen-revisions/index.js +5 -12
  324. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  325. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +4 -5
  326. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  327. package/build-module/components/global-styles/screen-root.js +1 -6
  328. package/build-module/components/global-styles/screen-root.js.map +1 -1
  329. package/build-module/components/global-styles/screen-style-variations.js +15 -6
  330. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  331. package/build-module/components/global-styles/screen-typography-element.js +1 -3
  332. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  333. package/build-module/components/global-styles/screen-typography.js +1 -3
  334. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  335. package/build-module/components/global-styles/shadow-utils.js.map +1 -1
  336. package/build-module/components/global-styles/shadows-edit-panel.js +28 -19
  337. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  338. package/build-module/components/global-styles/shadows-panel.js +2 -7
  339. package/build-module/components/global-styles/shadows-panel.js.map +1 -1
  340. package/build-module/components/global-styles/size-control/index.js +1 -2
  341. package/build-module/components/global-styles/size-control/index.js.map +1 -1
  342. package/build-module/components/global-styles/style-variations-container.js +2 -6
  343. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  344. package/build-module/components/global-styles/typeset.js +3 -5
  345. package/build-module/components/global-styles/typeset.js.map +1 -1
  346. package/build-module/components/global-styles/typography-elements.js +3 -7
  347. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  348. package/build-module/components/global-styles/typography-example.js +1 -2
  349. package/build-module/components/global-styles/typography-example.js.map +1 -1
  350. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  351. package/build-module/components/global-styles/ui.js +28 -17
  352. package/build-module/components/global-styles/ui.js.map +1 -1
  353. package/build-module/components/global-styles/utils.js.map +1 -1
  354. package/build-module/components/global-styles/variations/variation.js +3 -3
  355. package/build-module/components/global-styles/variations/variation.js.map +1 -1
  356. package/build-module/components/global-styles/variations/variations-color.js +1 -2
  357. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  358. package/build-module/components/global-styles/variations/variations-panel.js +0 -1
  359. package/build-module/components/global-styles/variations/variations-panel.js.map +1 -1
  360. package/build-module/components/global-styles/variations/variations-typography.js +1 -2
  361. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  362. package/build-module/components/global-styles-sidebar/default-sidebar.js +1 -4
  363. package/build-module/components/global-styles-sidebar/default-sidebar.js.map +1 -1
  364. package/build-module/components/global-styles-sidebar/index.js +45 -39
  365. package/build-module/components/global-styles-sidebar/index.js.map +1 -1
  366. package/build-module/components/layout/animation.js +1 -3
  367. package/build-module/components/layout/animation.js.map +1 -1
  368. package/build-module/components/layout/index.js +24 -50
  369. package/build-module/components/layout/index.js.map +1 -1
  370. package/build-module/components/layout/router.js +17 -139
  371. package/build-module/components/layout/router.js.map +1 -1
  372. package/build-module/components/more-menu/index.js +1 -3
  373. package/build-module/components/more-menu/index.js.map +1 -1
  374. package/build-module/components/page/header.js +1 -2
  375. package/build-module/components/page/header.js.map +1 -1
  376. package/build-module/components/page/index.js +1 -2
  377. package/build-module/components/page/index.js.map +1 -1
  378. package/build-module/components/page-patterns/delete-category-menu-item.js +5 -7
  379. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -1
  380. package/build-module/components/page-patterns/fields.js +1 -2
  381. package/build-module/components/page-patterns/fields.js.map +1 -1
  382. package/build-module/components/page-patterns/header.js +2 -3
  383. package/build-module/components/page-patterns/header.js.map +1 -1
  384. package/build-module/components/page-patterns/index.js +5 -4
  385. package/build-module/components/page-patterns/index.js.map +1 -1
  386. package/build-module/components/page-patterns/rename-category-menu-item.js +1 -3
  387. package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -1
  388. package/build-module/components/page-patterns/use-pattern-settings.js +1 -1
  389. package/build-module/components/page-patterns/use-pattern-settings.js.map +1 -1
  390. package/build-module/components/page-templates/fields.js +1 -2
  391. package/build-module/components/page-templates/fields.js.map +1 -1
  392. package/build-module/components/page-templates/index.js +2 -2
  393. package/build-module/components/page-templates/index.js.map +1 -1
  394. package/build-module/components/pagination/index.js +2 -3
  395. package/build-module/components/pagination/index.js.map +1 -1
  396. package/build-module/components/post-edit/index.js +9 -6
  397. package/build-module/components/post-edit/index.js.map +1 -1
  398. package/build-module/components/post-fields/index.js +10 -55
  399. package/build-module/components/post-fields/index.js.map +1 -1
  400. package/build-module/components/post-list/index.js +2 -4
  401. package/build-module/components/post-list/index.js.map +1 -1
  402. package/build-module/components/posts-app/index.js +3 -4
  403. package/build-module/components/posts-app/index.js.map +1 -1
  404. package/build-module/components/posts-app/router.js +3 -3
  405. package/build-module/components/posts-app/router.js.map +1 -1
  406. package/build-module/components/resizable-frame/index.js +21 -12
  407. package/build-module/components/resizable-frame/index.js.map +1 -1
  408. package/build-module/components/revisions/index.js +2 -3
  409. package/build-module/components/revisions/index.js.map +1 -1
  410. package/build-module/components/routes/use-title.js +1 -1
  411. package/build-module/components/routes/use-title.js.map +1 -1
  412. package/build-module/components/save-button/index.js +3 -3
  413. package/build-module/components/save-button/index.js.map +1 -1
  414. package/build-module/components/save-keyboard-shortcut/index.js +71 -0
  415. package/build-module/components/save-keyboard-shortcut/index.js.map +1 -0
  416. package/build-module/components/save-panel/index.js +18 -8
  417. package/build-module/components/save-panel/index.js.map +1 -1
  418. package/build-module/components/sidebar-button/index.js +1 -1
  419. package/build-module/components/sidebar-button/index.js.map +1 -1
  420. package/build-module/components/sidebar-dataviews/add-new-view.js +1 -3
  421. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  422. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +1 -3
  423. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  424. package/build-module/components/sidebar-dataviews/dataview-item.js +1 -2
  425. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  426. package/build-module/components/sidebar-dataviews/default-views.js +2 -5
  427. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  428. package/build-module/components/sidebar-dataviews/index.js +1 -3
  429. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  430. package/build-module/components/sidebar-navigation-item/index.js +1 -2
  431. package/build-module/components/sidebar-navigation-item/index.js.map +1 -1
  432. package/build-module/components/sidebar-navigation-screen/index.js +3 -4
  433. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  434. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +2 -3
  435. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  436. package/build-module/components/sidebar-navigation-screen-details-panel/index.js +1 -2
  437. package/build-module/components/sidebar-navigation-screen-details-panel/index.js.map +1 -1
  438. package/build-module/components/sidebar-navigation-screen-global-styles/content.js +1 -2
  439. package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -1
  440. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +31 -13
  441. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  442. package/build-module/components/sidebar-navigation-screen-main/index.js +1 -3
  443. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  444. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  445. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -3
  446. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  447. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +1 -2
  448. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  449. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -2
  450. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  451. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +6 -6
  452. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  453. package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +4 -4
  454. package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -1
  455. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +8 -13
  456. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  457. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +3 -5
  458. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  459. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +1 -3
  460. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  461. package/build-module/components/sidebar-navigation-screen-patterns/index.js +1 -3
  462. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  463. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +1 -2
  464. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  465. package/build-module/components/site-editor-routes/home-edit.js +18 -0
  466. package/build-module/components/site-editor-routes/home-edit.js.map +1 -0
  467. package/build-module/components/site-editor-routes/home-view.js +17 -0
  468. package/build-module/components/site-editor-routes/home-view.js.map +1 -0
  469. package/build-module/components/site-editor-routes/index.js +42 -0
  470. package/build-module/components/site-editor-routes/index.js.map +1 -0
  471. package/build-module/components/site-editor-routes/navigation-edit.js +21 -0
  472. package/build-module/components/site-editor-routes/navigation-edit.js.map +1 -0
  473. package/build-module/components/site-editor-routes/navigation-item-edit.js +23 -0
  474. package/build-module/components/site-editor-routes/navigation-item-edit.js.map +1 -0
  475. package/build-module/components/site-editor-routes/navigation-item-view.js +22 -0
  476. package/build-module/components/site-editor-routes/navigation-item-view.js.map +1 -0
  477. package/build-module/components/site-editor-routes/navigation-view.js +20 -0
  478. package/build-module/components/site-editor-routes/navigation-view.js.map +1 -0
  479. package/build-module/components/site-editor-routes/pages-edit.js +35 -0
  480. package/build-module/components/site-editor-routes/pages-edit.js.map +1 -0
  481. package/build-module/components/site-editor-routes/pages-list-view-quick-edit.js +56 -0
  482. package/build-module/components/site-editor-routes/pages-list-view-quick-edit.js.map +1 -0
  483. package/build-module/components/site-editor-routes/pages-list-view.js +39 -0
  484. package/build-module/components/site-editor-routes/pages-list-view.js.map +1 -0
  485. package/build-module/components/site-editor-routes/pages-view-quick-edit.js +53 -0
  486. package/build-module/components/site-editor-routes/pages-view-quick-edit.js.map +1 -0
  487. package/build-module/components/site-editor-routes/pages-view.js +34 -0
  488. package/build-module/components/site-editor-routes/pages-view.js.map +1 -0
  489. package/build-module/components/site-editor-routes/patterns-edit.js +23 -0
  490. package/build-module/components/site-editor-routes/patterns-edit.js.map +1 -0
  491. package/build-module/components/site-editor-routes/patterns-view.js +21 -0
  492. package/build-module/components/site-editor-routes/patterns-view.js.map +1 -0
  493. package/build-module/components/site-editor-routes/styles-edit.js +20 -0
  494. package/build-module/components/site-editor-routes/styles-edit.js.map +1 -0
  495. package/build-module/components/site-editor-routes/styles-view.js +19 -0
  496. package/build-module/components/site-editor-routes/styles-view.js.map +1 -0
  497. package/build-module/components/site-editor-routes/templates-edit.js +23 -0
  498. package/build-module/components/site-editor-routes/templates-edit.js.map +1 -0
  499. package/build-module/components/site-editor-routes/templates-list-view.js +26 -0
  500. package/build-module/components/site-editor-routes/templates-list-view.js.map +1 -0
  501. package/build-module/components/site-editor-routes/templates-view.js +21 -0
  502. package/build-module/components/site-editor-routes/templates-view.js.map +1 -0
  503. package/build-module/components/site-hub/index.js +4 -4
  504. package/build-module/components/site-hub/index.js.map +1 -1
  505. package/build-module/components/style-book/color-examples.js +38 -0
  506. package/build-module/components/style-book/color-examples.js.map +1 -0
  507. package/build-module/components/style-book/constants.js +74 -9
  508. package/build-module/components/style-book/constants.js.map +1 -1
  509. package/build-module/components/style-book/duotone-examples.js +48 -0
  510. package/build-module/components/style-book/duotone-examples.js.map +1 -0
  511. package/build-module/components/style-book/examples.js +47 -3
  512. package/build-module/components/style-book/examples.js.map +1 -1
  513. package/build-module/components/style-book/index.js +95 -40
  514. package/build-module/components/style-book/index.js.map +1 -1
  515. package/build-module/components/style-book/types.js.map +1 -1
  516. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +6 -1
  517. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  518. package/build-module/components/welcome-guide/editor.js +1 -3
  519. package/build-module/components/welcome-guide/editor.js.map +1 -1
  520. package/build-module/components/welcome-guide/image.js +1 -2
  521. package/build-module/components/welcome-guide/image.js.map +1 -1
  522. package/build-module/components/welcome-guide/index.js +1 -3
  523. package/build-module/components/welcome-guide/index.js.map +1 -1
  524. package/build-module/components/welcome-guide/page.js +1 -3
  525. package/build-module/components/welcome-guide/page.js.map +1 -1
  526. package/build-module/components/welcome-guide/styles.js +1 -3
  527. package/build-module/components/welcome-guide/styles.js.map +1 -1
  528. package/build-module/components/welcome-guide/template.js +1 -3
  529. package/build-module/components/welcome-guide/template.js.map +1 -1
  530. package/build-module/deprecated.js.map +1 -1
  531. package/build-module/hooks/commands/use-common-commands.js +46 -30
  532. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  533. package/build-module/hooks/commands/use-edit-mode-commands.js +15 -11
  534. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  535. package/build-module/hooks/commands/use-set-command-context.js +12 -15
  536. package/build-module/hooks/commands/use-set-command-context.js.map +1 -1
  537. package/build-module/hooks/push-changes-to-global-styles/index.js +1 -3
  538. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  539. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -1
  540. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  541. package/build-module/index.js +2 -4
  542. package/build-module/index.js.map +1 -1
  543. package/build-module/posts.js +1 -1
  544. package/build-module/posts.js.map +1 -1
  545. package/build-module/store/actions.js.map +1 -1
  546. package/build-module/store/private-actions.js +6 -59
  547. package/build-module/store/private-actions.js.map +1 -1
  548. package/build-module/store/private-selectors.js +3 -11
  549. package/build-module/store/private-selectors.js.map +1 -1
  550. package/build-module/store/reducer.js +9 -18
  551. package/build-module/store/reducer.js.map +1 -1
  552. package/build-module/store/selectors.js.map +1 -1
  553. package/build-module/utils/get-filtered-template-parts.js.map +1 -1
  554. package/build-style/posts-rtl.css +39 -45
  555. package/build-style/posts.css +39 -45
  556. package/build-style/style-rtl.css +160 -60
  557. package/build-style/style.css +160 -60
  558. package/package.json +44 -42
  559. package/src/components/add-new-post/index.js +1 -1
  560. package/src/components/add-new-template/index.js +1 -1
  561. package/src/components/add-new-template/utils.js +12 -9
  562. package/src/components/app/index.js +4 -2
  563. package/src/components/block-editor/use-editor-iframe-props.js +22 -18
  564. package/src/components/block-editor/use-site-editor-settings.js +12 -10
  565. package/src/components/editor/index.js +34 -14
  566. package/src/components/editor/use-adapt-editor-to-canvas.js +53 -0
  567. package/src/components/editor/use-editor-title.js +3 -3
  568. package/src/components/global-styles/font-families.js +51 -35
  569. package/src/components/global-styles/font-sizes/font-size.js +20 -21
  570. package/src/components/global-styles/font-sizes/font-sizes-count.js +1 -4
  571. package/src/components/global-styles/font-sizes/font-sizes.js +7 -9
  572. package/src/components/global-styles/palette.js +21 -18
  573. package/src/components/global-styles/root-menu.js +3 -16
  574. package/src/components/global-styles/screen-block-list.js +1 -8
  575. package/src/components/global-styles/screen-css.js +1 -0
  576. package/src/components/global-styles/screen-revisions/index.js +2 -11
  577. package/src/components/global-styles/screen-revisions/revisions-buttons.js +2 -2
  578. package/src/components/global-styles/screen-root.js +3 -12
  579. package/src/components/global-styles/screen-style-variations.js +11 -3
  580. package/src/components/global-styles/shadows-edit-panel.js +33 -18
  581. package/src/components/global-styles/shadows-panel.js +0 -4
  582. package/src/components/global-styles/style-variations-container.js +2 -7
  583. package/src/components/global-styles/typography-elements.js +3 -11
  584. package/src/components/global-styles/ui.js +29 -12
  585. package/src/components/global-styles/variations/variation.js +3 -3
  586. package/src/components/global-styles/variations/variations-panel.js +0 -1
  587. package/src/components/global-styles-sidebar/default-sidebar.js +0 -1
  588. package/src/components/global-styles-sidebar/index.js +86 -75
  589. package/src/components/global-styles-sidebar/style.scss +6 -0
  590. package/src/components/layout/animation.js +0 -1
  591. package/src/components/layout/index.js +17 -51
  592. package/src/components/layout/router.js +18 -133
  593. package/src/components/layout/style.scss +2 -2
  594. package/src/components/page-patterns/delete-category-menu-item.js +4 -4
  595. package/src/components/page-patterns/index.js +3 -2
  596. package/src/components/page-patterns/use-pattern-settings.js +1 -1
  597. package/src/components/page-templates/index.js +0 -1
  598. package/src/components/pagination/index.js +1 -1
  599. package/src/components/post-edit/index.js +35 -4
  600. package/src/components/post-fields/index.js +7 -54
  601. package/src/components/post-fields/style.scss +3 -0
  602. package/src/components/post-list/index.js +1 -1
  603. package/src/components/post-list/style.scss +1 -1
  604. package/src/components/posts-app/index.js +2 -2
  605. package/src/components/posts-app/router.js +3 -3
  606. package/src/components/resizable-frame/index.js +19 -10
  607. package/src/components/revisions/index.js +4 -1
  608. package/src/components/save-keyboard-shortcut/index.js +69 -0
  609. package/src/components/save-panel/index.js +30 -32
  610. package/src/components/sidebar-button/index.js +1 -1
  611. package/src/components/sidebar-button/style.scss +2 -2
  612. package/src/components/sidebar-dataviews/default-views.js +2 -5
  613. package/src/components/sidebar-navigation-screen/index.js +2 -1
  614. package/src/components/sidebar-navigation-screen/style.scss +5 -1
  615. package/src/components/sidebar-navigation-screen-global-styles/index.js +47 -29
  616. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +2 -2
  617. package/src/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +4 -4
  618. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +11 -13
  619. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +1 -1
  620. package/src/components/site-editor-routes/README.md +20 -0
  621. package/src/components/site-editor-routes/home-edit.js +17 -0
  622. package/src/components/site-editor-routes/home-view.js +16 -0
  623. package/src/components/site-editor-routes/index.js +60 -0
  624. package/src/components/site-editor-routes/navigation-edit.js +22 -0
  625. package/src/components/site-editor-routes/navigation-item-edit.js +26 -0
  626. package/src/components/site-editor-routes/navigation-item-view.js +25 -0
  627. package/src/components/site-editor-routes/navigation-view.js +21 -0
  628. package/src/components/site-editor-routes/pages-edit.js +35 -0
  629. package/src/components/site-editor-routes/pages-list-view-quick-edit.js +56 -0
  630. package/src/components/site-editor-routes/pages-list-view.js +44 -0
  631. package/src/components/site-editor-routes/pages-view-quick-edit.js +53 -0
  632. package/src/components/site-editor-routes/pages-view.js +39 -0
  633. package/src/components/site-editor-routes/patterns-edit.js +24 -0
  634. package/src/components/site-editor-routes/patterns-view.js +22 -0
  635. package/src/components/site-editor-routes/styles-edit.js +17 -0
  636. package/src/components/site-editor-routes/styles-view.js +16 -0
  637. package/src/components/site-editor-routes/templates-edit.js +22 -0
  638. package/src/components/site-editor-routes/templates-list-view.js +28 -0
  639. package/src/components/site-editor-routes/templates-view.js +22 -0
  640. package/src/components/site-hub/index.js +2 -2
  641. package/src/components/site-hub/style.scss +4 -0
  642. package/src/components/style-book/color-examples.tsx +44 -0
  643. package/src/components/style-book/constants.ts +83 -10
  644. package/src/components/style-book/duotone-examples.tsx +53 -0
  645. package/src/components/style-book/examples.tsx +113 -0
  646. package/src/components/style-book/index.js +149 -52
  647. package/src/components/style-book/style.scss +12 -14
  648. package/src/components/style-book/test/categories.js +0 -5
  649. package/src/components/style-book/types.ts +34 -1
  650. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +11 -1
  651. package/src/hooks/commands/use-common-commands.js +60 -40
  652. package/src/hooks/commands/use-edit-mode-commands.js +14 -18
  653. package/src/hooks/commands/use-set-command-context.js +7 -9
  654. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -1
  655. package/src/index.js +1 -5
  656. package/src/store/private-actions.js +7 -82
  657. package/src/store/private-selectors.js +4 -11
  658. package/src/store/reducer.js +10 -18
  659. package/src/style.scss +3 -0
  660. package/build/components/keyboard-shortcuts/global.js +0 -53
  661. package/build/components/keyboard-shortcuts/global.js.map +0 -1
  662. package/build/components/keyboard-shortcuts/register.js +0 -34
  663. package/build/components/keyboard-shortcuts/register.js.map +0 -1
  664. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +0 -69
  665. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +0 -1
  666. package/build-module/components/keyboard-shortcuts/global.js +0 -46
  667. package/build-module/components/keyboard-shortcuts/global.js.map +0 -1
  668. package/build-module/components/keyboard-shortcuts/register.js +0 -27
  669. package/build-module/components/keyboard-shortcuts/register.js.map +0 -1
  670. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +0 -62
  671. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +0 -1
  672. package/src/components/keyboard-shortcuts/global.js +0 -47
  673. package/src/components/keyboard-shortcuts/register.js +0 -27
  674. package/src/components/style-book/examples.ts +0 -63
  675. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +0 -73
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 6.11.0 (2024-10-30)
6
+
7
+ ## 6.10.0 (2024-10-16)
8
+
5
9
  ## 6.9.0 (2024-10-03)
6
10
 
7
11
  ## 6.8.0 (2024-09-19)
@@ -53,7 +53,7 @@ function AddNewPostModal({
53
53
  });
54
54
  onSave(newPage);
55
55
  createSuccessNotice((0, _i18n.sprintf)(
56
- // translators: %s: Title of the created post e.g: "Hello world".
56
+ // translators: %s: Title of the created post or template, e.g: "Hello world".
57
57
  (0, _i18n.__)('"%s" successfully created.'), (0, _htmlEntities.decodeEntities)(newPage.title?.rendered || title)), {
58
58
  type: 'snackbar'
59
59
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_data","_element","_coreData","_notices","_htmlEntities","_blocks","_jsxRuntime","AddNewPostModal","postType","onSave","onClose","labels","useSelect","select","coreStore","getPostType","isCreatingPost","setIsCreatingPost","useState","title","setTitle","saveEntityRecord","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","resolveSelect","useRegistry","createPost","event","preventDefault","postTypeObject","newPage","status","slug","__","content","template","length","serialize","synchronizeBlocksWithTemplate","undefined","throwOnError","sprintf","decodeEntities","rendered","type","error","errorMessage","message","code","jsx","Modal","singular_name","onRequestClose","focusOnMount","size","children","onSubmit","jsxs","__experimentalVStack","spacing","TextControl","__next40pxDefaultSize","__nextHasNoMarginBottom","label","onChange","placeholder","value","__experimentalHStack","justify","Button","variant","onClick","isBusy"],"sources":["@wordpress/edit-site/src/components/add-new-post/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tTextControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { serialize, synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\nexport default function AddNewPostModal( { postType, onSave, onClose } ) {\n\tconst labels = useSelect(\n\t\t( select ) => select( coreStore ).getPostType( postType )?.labels,\n\t\t[ postType ]\n\t);\n\tconst [ isCreatingPost, setIsCreatingPost ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { resolveSelect } = useRegistry();\n\n\tasync function createPost( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( isCreatingPost ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsCreatingPost( true );\n\t\ttry {\n\t\t\tconst postTypeObject =\n\t\t\t\tawait resolveSelect( coreStore ).getPostType( postType );\n\t\t\tconst newPage = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\ttitle,\n\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\tcontent:\n\t\t\t\t\t\t!! postTypeObject.template &&\n\t\t\t\t\t\tpostTypeObject.template.length\n\t\t\t\t\t\t\t? serialize(\n\t\t\t\t\t\t\t\t\tsynchronizeBlocksWithTemplate(\n\t\t\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t\t\tpostTypeObject.template\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tonSave( newPage );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created post e.g: \"Hello world\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newPage.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the item.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsCreatingPost( false );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={\n\t\t\t\t// translators: %s: post type singular_name label e.g: \"Page\".\n\t\t\t\tsprintf( __( 'Draft new: %s' ), labels?.singular_name )\n\t\t\t}\n\t\t\tonRequestClose={ onClose }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form onSubmit={ createPost }>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPost }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPost }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create draft' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAOA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAA6E,IAAAQ,WAAA,GAAAR,OAAA;AAhB7E;AACA;AACA;;AAgBe,SAASS,eAAeA,CAAE;EAAEC,QAAQ;EAAEC,MAAM;EAAEC;AAAQ,CAAC,EAAG;EACxE,MAAMC,MAAM,GAAG,IAAAC,eAAS,EACrBC,MAAM,IAAMA,MAAM,CAAEC,eAAU,CAAC,CAACC,WAAW,CAAEP,QAAS,CAAC,EAAEG,MAAM,EACjE,CAAEH,QAAQ,CACX,CAAC;EACD,MAAM,CAAEQ,cAAc,EAAEC,iBAAiB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAC/D,MAAM,CAAEC,KAAK,EAAEC,QAAQ,CAAE,GAAG,IAAAF,iBAAQ,EAAE,EAAG,CAAC;EAE1C,MAAM;IAAEG;EAAiB,CAAC,GAAG,IAAAC,iBAAW,EAAER,eAAU,CAAC;EACrD,MAAM;IAAES,iBAAiB;IAAEC;EAAoB,CAAC,GAC/C,IAAAF,iBAAW,EAAEG,cAAa,CAAC;EAC5B,MAAM;IAAEC;EAAc,CAAC,GAAG,IAAAC,iBAAW,EAAC,CAAC;EAEvC,eAAeC,UAAUA,CAAEC,KAAK,EAAG;IAClCA,KAAK,CAACC,cAAc,CAAC,CAAC;IAEtB,IAAKd,cAAc,EAAG;MACrB;IACD;IACAC,iBAAiB,CAAE,IAAK,CAAC;IACzB,IAAI;MACH,MAAMc,cAAc,GACnB,MAAML,aAAa,CAAEZ,eAAU,CAAC,CAACC,WAAW,CAAEP,QAAS,CAAC;MACzD,MAAMwB,OAAO,GAAG,MAAMX,gBAAgB,CACrC,UAAU,EACVb,QAAQ,EACR;QACCyB,MAAM,EAAE,OAAO;QACfd,KAAK;QACLe,IAAI,EAAEf,KAAK,IAAI,IAAAgB,QAAE,EAAE,UAAW,CAAC;QAC/BC,OAAO,EACN,CAAC,CAAEL,cAAc,CAACM,QAAQ,IAC1BN,cAAc,CAACM,QAAQ,CAACC,MAAM,GAC3B,IAAAC,iBAAS,EACT,IAAAC,qCAA6B,EAC5B,EAAE,EACFT,cAAc,CAACM,QAChB,CACA,CAAC,GACDI;MACL,CAAC,EACD;QAAEC,YAAY,EAAE;MAAK,CACtB,CAAC;MAEDjC,MAAM,CAAEuB,OAAQ,CAAC;MAEjBR,mBAAmB,CAClB,IAAAmB,aAAO;MACN;MACA,IAAAR,QAAE,EAAE,4BAA6B,CAAC,EAClC,IAAAS,4BAAc,EAAEZ,OAAO,CAACb,KAAK,EAAE0B,QAAQ,IAAI1B,KAAM,CAClD,CAAC,EACD;QAAE2B,IAAI,EAAE;MAAW,CACpB,CAAC;IACF,CAAC,CAAC,OAAQC,KAAK,EAAG;MACjB,MAAMC,YAAY,GACjBD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACG,IAAI,KAAK,eAAe,GAC5CH,KAAK,CAACE,OAAO,GACb,IAAAd,QAAE,EAAE,4CAA6C,CAAC;MAEtDZ,iBAAiB,CAAEyB,YAAY,EAAE;QAChCF,IAAI,EAAE;MACP,CAAE,CAAC;IACJ,CAAC,SAAS;MACT7B,iBAAiB,CAAE,KAAM,CAAC;IAC3B;EACD;EAEA,oBACC,IAAAX,WAAA,CAAA6C,GAAA,EAACtD,WAAA,CAAAuD,KAAK;IACLjC,KAAK;IACJ;IACA,IAAAwB,aAAO,EAAE,IAAAR,QAAE,EAAE,eAAgB,CAAC,EAAExB,MAAM,EAAE0C,aAAc,CACtD;IACDC,cAAc,EAAG5C,OAAS;IAC1B6C,YAAY,EAAC,qBAAqB;IAClCC,IAAI,EAAC,OAAO;IAAAC,QAAA,eAEZ,IAAAnD,WAAA,CAAA6C,GAAA;MAAMO,QAAQ,EAAG9B,UAAY;MAAA6B,QAAA,eAC5B,IAAAnD,WAAA,CAAAqD,IAAA,EAAC9D,WAAA,CAAA+D,oBAAM;QAACC,OAAO,EAAG,CAAG;QAAAJ,QAAA,gBACpB,IAAAnD,WAAA,CAAA6C,GAAA,EAACtD,WAAA,CAAAiE,WAAW;UACXC,qBAAqB;UACrBC,uBAAuB;UACvBC,KAAK,EAAG,IAAA9B,QAAE,EAAE,OAAQ,CAAG;UACvB+B,QAAQ,EAAG9C,QAAU;UACrB+C,WAAW,EAAG,IAAAhC,QAAE,EAAE,UAAW,CAAG;UAChCiC,KAAK,EAAGjD;QAAO,CACf,CAAC,eACF,IAAAb,WAAA,CAAAqD,IAAA,EAAC9D,WAAA,CAAAwE,oBAAM;UAACR,OAAO,EAAG,CAAG;UAACS,OAAO,EAAC,KAAK;UAAAb,QAAA,gBAClC,IAAAnD,WAAA,CAAA6C,GAAA,EAACtD,WAAA,CAAA0E,MAAM;YACNR,qBAAqB;YACrBS,OAAO,EAAC,UAAU;YAClBC,OAAO,EAAG/D,OAAS;YAAA+C,QAAA,EAEjB,IAAAtB,QAAE,EAAE,QAAS;UAAC,CACT,CAAC,eACT,IAAA7B,WAAA,CAAA6C,GAAA,EAACtD,WAAA,CAAA0E,MAAM;YACNR,qBAAqB;YACrBS,OAAO,EAAC,SAAS;YACjB1B,IAAI,EAAC,QAAQ;YACb4B,MAAM,EAAG1D,cAAgB;YACzB,iBAAgBA,cAAgB;YAAAyC,QAAA,EAE9B,IAAAtB,QAAE,EAAE,cAAe;UAAC,CACf,CAAC;QAAA,CACF,CAAC;MAAA,CACF;IAAC,CACJ;EAAC,CACD,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_data","_element","_coreData","_notices","_htmlEntities","_blocks","_jsxRuntime","AddNewPostModal","postType","onSave","onClose","labels","useSelect","select","coreStore","getPostType","isCreatingPost","setIsCreatingPost","useState","title","setTitle","saveEntityRecord","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","resolveSelect","useRegistry","createPost","event","preventDefault","postTypeObject","newPage","status","slug","__","content","template","length","serialize","synchronizeBlocksWithTemplate","undefined","throwOnError","sprintf","decodeEntities","rendered","type","error","errorMessage","message","code","jsx","Modal","singular_name","onRequestClose","focusOnMount","size","children","onSubmit","jsxs","__experimentalVStack","spacing","TextControl","__next40pxDefaultSize","__nextHasNoMarginBottom","label","onChange","placeholder","value","__experimentalHStack","justify","Button","variant","onClick","isBusy"],"sources":["@wordpress/edit-site/src/components/add-new-post/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tTextControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { serialize, synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\nexport default function AddNewPostModal( { postType, onSave, onClose } ) {\n\tconst labels = useSelect(\n\t\t( select ) => select( coreStore ).getPostType( postType )?.labels,\n\t\t[ postType ]\n\t);\n\tconst [ isCreatingPost, setIsCreatingPost ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { resolveSelect } = useRegistry();\n\n\tasync function createPost( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( isCreatingPost ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsCreatingPost( true );\n\t\ttry {\n\t\t\tconst postTypeObject =\n\t\t\t\tawait resolveSelect( coreStore ).getPostType( postType );\n\t\t\tconst newPage = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\ttitle,\n\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\tcontent:\n\t\t\t\t\t\t!! postTypeObject.template &&\n\t\t\t\t\t\tpostTypeObject.template.length\n\t\t\t\t\t\t\t? serialize(\n\t\t\t\t\t\t\t\t\tsynchronizeBlocksWithTemplate(\n\t\t\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t\t\tpostTypeObject.template\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tonSave( newPage );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newPage.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the item.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsCreatingPost( false );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={\n\t\t\t\t// translators: %s: post type singular_name label e.g: \"Page\".\n\t\t\t\tsprintf( __( 'Draft new: %s' ), labels?.singular_name )\n\t\t\t}\n\t\t\tonRequestClose={ onClose }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form onSubmit={ createPost }>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPost }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPost }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create draft' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_components","_coreData","_htmlEntities","_compose","_utils","_jsxRuntime","EMPTY_ARRAY","SuggestionListItem","suggestion","search","onSelect","entityForSuggestions","baseCssClass","jsxs","Composite","Item","render","jsx","Button","__next40pxDefaultSize","role","className","onClick","config","getSpecificTemplate","children","__experimentalText","size","lineHeight","weight","TextHighlight","text","decodeEntities","name","highlight","link","useSearchSuggestions","query","useMemo","order","context","per_page","queryArgs","records","searchResults","hasResolved","searchHasResolved","useEntityRecords","type","slug","suggestions","setSuggestions","useState","useEffect","newSuggestions","length","recordNamePath","mapToIHasNameAndId","SuggestionList","setSearch","debouncedSearch","useDebouncedInput","labels","showSearchControl","setShowSearchControl","Fragment","SearchControl","__nextHasNoMarginBottom","onChange","value","label","search_items","placeholder","orientation","__","map","as","not_found","AddCustomTemplateModalContent","showSearchEntities","setShowSearchEntities","hasGeneralTemplate","__experimentalVStack","spacing","alignment","Flex","gap","align","FlexItem","isBlock","title","description","templatePrefix","template","all_items","singular_name","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/add-new-template/add-custom-template-modal-content.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tTextHighlight,\n\tComposite,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { mapToIHasNameAndId } from './utils';\n\nconst EMPTY_ARRAY = [];\n\nfunction SuggestionListItem( {\n\tsuggestion,\n\tsearch,\n\tonSelect,\n\tentityForSuggestions,\n} ) {\n\tconst baseCssClass =\n\t\t'edit-site-custom-template-modal__suggestions_list__list-item';\n\treturn (\n\t\t<Composite.Item\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tclassName={ baseCssClass }\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tentityForSuggestions.config.getSpecificTemplate(\n\t\t\t\t\t\t\t\tsuggestion\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Text\n\t\t\t\tsize=\"body\"\n\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\tweight={ 500 }\n\t\t\t\tclassName={ `${ baseCssClass }__title` }\n\t\t\t>\n\t\t\t\t<TextHighlight\n\t\t\t\t\ttext={ decodeEntities( suggestion.name ) }\n\t\t\t\t\thighlight={ search }\n\t\t\t\t/>\n\t\t\t</Text>\n\t\t\t{ suggestion.link && (\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\tclassName={ `${ baseCssClass }__info` }\n\t\t\t\t>\n\t\t\t\t\t{ suggestion.link }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</Composite.Item>\n\t);\n}\n\nfunction useSearchSuggestions( entityForSuggestions, search ) {\n\tconst { config } = entityForSuggestions;\n\tconst query = useMemo(\n\t\t() => ( {\n\t\t\torder: 'asc',\n\t\t\tcontext: 'view',\n\t\t\tsearch,\n\t\t\tper_page: search ? 20 : 10,\n\t\t\t...config.queryArgs( search ),\n\t\t} ),\n\t\t[ search, config ]\n\t);\n\tconst { records: searchResults, hasResolved: searchHasResolved } =\n\t\tuseEntityRecords(\n\t\t\tentityForSuggestions.type,\n\t\t\tentityForSuggestions.slug,\n\t\t\tquery\n\t\t);\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tlet newSuggestions = EMPTY_ARRAY;\n\t\tif ( searchResults?.length ) {\n\t\t\tnewSuggestions = searchResults;\n\t\t\tif ( config.recordNamePath ) {\n\t\t\t\tnewSuggestions = mapToIHasNameAndId(\n\t\t\t\t\tnewSuggestions,\n\t\t\t\t\tconfig.recordNamePath\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Update suggestions only when the query has resolved, so as to keep\n\t\t// the previous results in the UI.\n\t\tsetSuggestions( newSuggestions );\n\t}, [ searchResults, searchHasResolved ] );\n\treturn suggestions;\n}\n\nfunction SuggestionList( { entityForSuggestions, onSelect } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput();\n\tconst suggestions = useSearchSuggestions(\n\t\tentityForSuggestions,\n\t\tdebouncedSearch\n\t);\n\tconst { labels } = entityForSuggestions;\n\tconst [ showSearchControl, setShowSearchControl ] = useState( false );\n\tif ( ! showSearchControl && suggestions?.length > 9 ) {\n\t\tsetShowSearchControl( true );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ showSearchControl && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearch }\n\t\t\t\t\tvalue={ search }\n\t\t\t\t\tlabel={ labels.search_items }\n\t\t\t\t\tplaceholder={ labels.search_items }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! suggestions?.length && (\n\t\t\t\t<Composite\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__suggestions_list\"\n\t\t\t\t\taria-label={ __( 'Suggestions list' ) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion ) => (\n\t\t\t\t\t\t<SuggestionListItem\n\t\t\t\t\t\t\tkey={ suggestion.slug }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tsearch={ debouncedSearch }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t{ debouncedSearch && ! suggestions?.length && (\n\t\t\t\t<Text\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__no-results\"\n\t\t\t\t>\n\t\t\t\t\t{ labels.not_found }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction AddCustomTemplateModalContent( { onSelect, entityForSuggestions } ) {\n\tconst [ showSearchEntities, setShowSearchEntities ] = useState(\n\t\tentityForSuggestions.hasGeneralTemplate\n\t);\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-custom-template-modal__contents-wrapper\"\n\t\t\talignment=\"left\"\n\t\t>\n\t\t\t{ ! showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select whether to create a single template for all items or a specific one.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"edit-site-custom-template-modal__contents\"\n\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\talign=\"initial\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} = entityForSuggestions.template;\n\t\t\t\t\t\t\t\tonSelect( {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.all_items }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For all items' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowSearchEntities( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.singular_name }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For a specific item' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This template will be used only for the specific item chosen.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<SuggestionList\n\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default AddCustomTemplateModalContent;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAUA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAKA,IAAAM,MAAA,GAAAN,OAAA;AAA6C,IAAAO,WAAA,GAAAP,OAAA;AAtB7C;AACA;AACA;;AAiBA;AACA;AACA;;AAGA,MAAMQ,WAAW,GAAG,EAAE;AAEtB,SAASC,kBAAkBA,CAAE;EAC5BC,UAAU;EACVC,MAAM;EACNC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAMC,YAAY,GACjB,8DAA8D;EAC/D,oBACC,IAAAP,WAAA,CAAAQ,IAAA,EAACb,WAAA,CAAAc,SAAS,CAACC,IAAI;IACdC,MAAM,eACL,IAAAX,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAAkB,MAAM;MACNC,qBAAqB;MACrBC,IAAI,EAAC,QAAQ;MACbC,SAAS,EAAGT,YAAc;MAC1BU,OAAO,EAAGA,CAAA,KACTZ,QAAQ,CACPC,oBAAoB,CAACY,MAAM,CAACC,mBAAmB,CAC9ChB,UACD,CACD;IACA,CACD,CACD;IAAAiB,QAAA,gBAED,IAAApB,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA0B,kBAAI;MACJC,IAAI,EAAC,MAAM;MACXC,UAAU,EAAG,aAAe,CAAC;MAAA;MAC7BC,MAAM,EAAG,GAAK;MACdR,SAAS,EAAI,GAAGT,YAAc,SAAU;MAAAa,QAAA,eAExC,IAAApB,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA8B,aAAa;QACbC,IAAI,EAAG,IAAAC,4BAAc,EAAExB,UAAU,CAACyB,IAAK,CAAG;QAC1CC,SAAS,EAAGzB;MAAQ,CACpB;IAAC,CACG,CAAC,EACLD,UAAU,CAAC2B,IAAI,iBAChB,IAAA9B,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA0B,kBAAI;MACJC,IAAI,EAAC,MAAM;MACXC,UAAU,EAAG,aAAe,CAAC;MAAA;MAC7BP,SAAS,EAAI,GAAGT,YAAc,QAAS;MAAAa,QAAA,EAErCjB,UAAU,CAAC2B;IAAI,CACZ,CACN;EAAA,CACc,CAAC;AAEnB;AAEA,SAASC,oBAAoBA,CAAEzB,oBAAoB,EAAEF,MAAM,EAAG;EAC7D,MAAM;IAAEc;EAAO,CAAC,GAAGZ,oBAAoB;EACvC,MAAM0B,KAAK,GAAG,IAAAC,gBAAO,EACpB,OAAQ;IACPC,KAAK,EAAE,KAAK;IACZC,OAAO,EAAE,MAAM;IACf/B,MAAM;IACNgC,QAAQ,EAAEhC,MAAM,GAAG,EAAE,GAAG,EAAE;IAC1B,GAAGc,MAAM,CAACmB,SAAS,CAAEjC,MAAO;EAC7B,CAAC,CAAE,EACH,CAAEA,MAAM,EAAEc,MAAM,CACjB,CAAC;EACD,MAAM;IAAEoB,OAAO,EAAEC,aAAa;IAAEC,WAAW,EAAEC;EAAkB,CAAC,GAC/D,IAAAC,0BAAgB,EACfpC,oBAAoB,CAACqC,IAAI,EACzBrC,oBAAoB,CAACsC,IAAI,EACzBZ,KACD,CAAC;EACF,MAAM,CAAEa,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAE9C,WAAY,CAAC;EAC/D,IAAA+C,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAEP,iBAAiB,EAAG;MAC1B;IACD;IACA,IAAIQ,cAAc,GAAGhD,WAAW;IAChC,IAAKsC,aAAa,EAAEW,MAAM,EAAG;MAC5BD,cAAc,GAAGV,aAAa;MAC9B,IAAKrB,MAAM,CAACiC,cAAc,EAAG;QAC5BF,cAAc,GAAG,IAAAG,yBAAkB,EAClCH,cAAc,EACd/B,MAAM,CAACiC,cACR,CAAC;MACF;IACD;IACA;IACA;IACAL,cAAc,CAAEG,cAAe,CAAC;EACjC,CAAC,EAAE,CAAEV,aAAa,EAAEE,iBAAiB,CAAG,CAAC;EACzC,OAAOI,WAAW;AACnB;AAEA,SAASQ,cAAcA,CAAE;EAAE/C,oBAAoB;EAAED;AAAS,CAAC,EAAG;EAC7D,MAAM,CAAED,MAAM,EAAEkD,SAAS,EAAEC,eAAe,CAAE,GAAG,IAAAC,0BAAiB,EAAC,CAAC;EAClE,MAAMX,WAAW,GAAGd,oBAAoB,CACvCzB,oBAAoB,EACpBiD,eACD,CAAC;EACD,MAAM;IAAEE;EAAO,CAAC,GAAGnD,oBAAoB;EACvC,MAAM,CAAEoD,iBAAiB,EAAEC,oBAAoB,CAAE,GAAG,IAAAZ,iBAAQ,EAAE,KAAM,CAAC;EACrE,IAAK,CAAEW,iBAAiB,IAAIb,WAAW,EAAEK,MAAM,GAAG,CAAC,EAAG;IACrDS,oBAAoB,CAAE,IAAK,CAAC;EAC7B;EACA,oBACC,IAAA3D,WAAA,CAAAQ,IAAA,EAAAR,WAAA,CAAA4D,QAAA;IAAAxC,QAAA,GACGsC,iBAAiB,iBAClB,IAAA1D,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAAkE,aAAa;MACbC,uBAAuB;MACvBC,QAAQ,EAAGT,SAAW;MACtBU,KAAK,EAAG5D,MAAQ;MAChB6D,KAAK,EAAGR,MAAM,CAACS,YAAc;MAC7BC,WAAW,EAAGV,MAAM,CAACS;IAAc,CACnC,CACD,EACC,CAAC,CAAErB,WAAW,EAAEK,MAAM,iBACvB,IAAAlD,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAAc,SAAS;MACT2D,WAAW,EAAC,UAAU;MACtBrD,IAAI,EAAC,SAAS;MACdC,SAAS,EAAC,mDAAmD;MAC7D,cAAa,IAAAqD,QAAE,EAAE,kBAAmB,CAAG;MAAAjD,QAAA,EAErCyB,WAAW,CAACyB,GAAG,CAAInE,UAAU,iBAC9B,IAAAH,WAAA,CAAAY,GAAA,EAACV,kBAAkB;QAElBC,UAAU,EAAGA,UAAY;QACzBC,MAAM,EAAGmD,eAAiB;QAC1BlD,QAAQ,EAAGA,QAAU;QACrBC,oBAAoB,EAAGA;MAAsB,GAJvCH,UAAU,CAACyC,IAKjB,CACA;IAAC,CACO,CACX,EACCW,eAAe,IAAI,CAAEV,WAAW,EAAEK,MAAM,iBACzC,IAAAlD,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA0B,kBAAI;MACJkD,EAAE,EAAC,GAAG;MACNvD,SAAS,EAAC,6CAA6C;MAAAI,QAAA,EAErDqC,MAAM,CAACe;IAAS,CACb,CACN;EAAA,CACA,CAAC;AAEL;AAEA,SAASC,6BAA6BA,CAAE;EAAEpE,QAAQ;EAAEC;AAAqB,CAAC,EAAG;EAC5E,MAAM,CAAEoE,kBAAkB,EAAEC,qBAAqB,CAAE,GAAG,IAAA5B,iBAAQ,EAC7DzC,oBAAoB,CAACsE,kBACtB,CAAC;EACD,oBACC,IAAA5E,WAAA,CAAAQ,IAAA,EAACb,WAAA,CAAAkF,oBAAM;IACNC,OAAO,EAAG,CAAG;IACb9D,SAAS,EAAC,mDAAmD;IAC7D+D,SAAS,EAAC,MAAM;IAAA3D,QAAA,GAEd,CAAEsD,kBAAkB,iBACrB,IAAA1E,WAAA,CAAAQ,IAAA,EAAAR,WAAA,CAAA4D,QAAA;MAAAxC,QAAA,gBACC,IAAApB,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA0B,kBAAI;QAACkD,EAAE,EAAC,GAAG;QAAAnD,QAAA,EACT,IAAAiD,QAAE,EACH,6EACD;MAAC,CACI,CAAC,eACP,IAAArE,WAAA,CAAAQ,IAAA,EAACb,WAAA,CAAAqF,IAAI;QACJhE,SAAS,EAAC,2CAA2C;QACrDiE,GAAG,EAAC,GAAG;QACPC,KAAK,EAAC,SAAS;QAAA9D,QAAA,gBAEf,IAAApB,WAAA,CAAAQ,IAAA,EAACb,WAAA,CAAAwF,QAAQ;UACRC,OAAO;UACPb,EAAE,EAAG1D,kBAAQ;UACbI,OAAO,EAAGA,CAAA,KAAM;YACf,MAAM;cACL2B,IAAI;cACJyC,KAAK;cACLC,WAAW;cACXC;YACD,CAAC,GAAGjF,oBAAoB,CAACkF,QAAQ;YACjCnF,QAAQ,CAAE;cACTuC,IAAI;cACJyC,KAAK;cACLC,WAAW;cACXC;YACD,CAAE,CAAC;UACJ,CAAG;UAAAnE,QAAA,gBAEH,IAAApB,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA0B,kBAAI;YACJkD,EAAE,EAAC,MAAM;YACT/C,MAAM,EAAG,GAAK;YACdD,UAAU,EAAG,aAAe,CAAC;YAAA;YAAAH,QAAA,EAE3Bd,oBAAoB,CAACmD,MAAM,CAACgC;UAAS,CAClC,CAAC,eACP,IAAAzF,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA0B,kBAAI;YACJkD,EAAE,EAAC,MAAM;YACThD,UAAU,EAAG,aAAe,CAAC;YAAA;YAAAH,QAAA;YAG5B;YACA,IAAAiD,QAAE,EAAE,eAAgB;UAAC,CAEjB,CAAC;QAAA,CACE,CAAC,eACX,IAAArE,WAAA,CAAAQ,IAAA,EAACb,WAAA,CAAAwF,QAAQ;UACRC,OAAO;UACPb,EAAE,EAAG1D,kBAAQ;UACbI,OAAO,EAAGA,CAAA,KAAM;YACf0D,qBAAqB,CAAE,IAAK,CAAC;UAC9B,CAAG;UAAAvD,QAAA,gBAEH,IAAApB,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA0B,kBAAI;YACJkD,EAAE,EAAC,MAAM;YACT/C,MAAM,EAAG,GAAK;YACdD,UAAU,EAAG,aAAe,CAAC;YAAA;YAAAH,QAAA,EAE3Bd,oBAAoB,CAACmD,MAAM,CAACiC;UAAa,CACtC,CAAC,eACP,IAAA1F,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA0B,kBAAI;YACJkD,EAAE,EAAC,MAAM;YACThD,UAAU,EAAG,aAAe,CAAC;YAAA;YAAAH,QAAA;YAG5B;YACA,IAAAiD,QAAE,EAAE,qBAAsB;UAAC,CAEvB,CAAC;QAAA,CACE,CAAC;MAAA,CACN,CAAC;IAAA,CACN,CACF,EACCK,kBAAkB,iBACnB,IAAA1E,WAAA,CAAAQ,IAAA,EAAAR,WAAA,CAAA4D,QAAA;MAAAxC,QAAA,gBACC,IAAApB,WAAA,CAAAY,GAAA,EAACjB,WAAA,CAAA0B,kBAAI;QAACkD,EAAE,EAAC,GAAG;QAAAnD,QAAA,EACT,IAAAiD,QAAE,EACH,+DACD;MAAC,CACI,CAAC,eACP,IAAArE,WAAA,CAAAY,GAAA,EAACyC,cAAc;QACd/C,oBAAoB,EAAGA,oBAAsB;QAC7CD,QAAQ,EAAGA;MAAU,CACrB,CAAC;IAAA,CACD,CACF;EAAA,CACM,CAAC;AAEX;AAAC,IAAAsF,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcpB,6BAA6B","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_i18n","_components","_coreData","_htmlEntities","_compose","_utils","_jsxRuntime","EMPTY_ARRAY","SuggestionListItem","suggestion","search","onSelect","entityForSuggestions","baseCssClass","jsxs","Composite","Item","render","jsx","Button","__next40pxDefaultSize","role","className","onClick","config","getSpecificTemplate","children","__experimentalText","size","lineHeight","weight","TextHighlight","text","decodeEntities","name","highlight","link","useSearchSuggestions","query","useMemo","order","context","per_page","queryArgs","records","searchResults","hasResolved","searchHasResolved","useEntityRecords","type","slug","suggestions","setSuggestions","useState","useEffect","newSuggestions","length","recordNamePath","mapToIHasNameAndId","SuggestionList","setSearch","debouncedSearch","useDebouncedInput","labels","showSearchControl","setShowSearchControl","Fragment","SearchControl","__nextHasNoMarginBottom","onChange","value","label","search_items","placeholder","orientation","__","map","as","not_found","AddCustomTemplateModalContent","showSearchEntities","setShowSearchEntities","hasGeneralTemplate","__experimentalVStack","spacing","alignment","Flex","gap","align","FlexItem","isBlock","title","description","templatePrefix","template","all_items","singular_name","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/add-new-template/add-custom-template-modal-content.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tTextHighlight,\n\tComposite,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { mapToIHasNameAndId } from './utils';\n\nconst EMPTY_ARRAY = [];\n\nfunction SuggestionListItem( {\n\tsuggestion,\n\tsearch,\n\tonSelect,\n\tentityForSuggestions,\n} ) {\n\tconst baseCssClass =\n\t\t'edit-site-custom-template-modal__suggestions_list__list-item';\n\treturn (\n\t\t<Composite.Item\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tclassName={ baseCssClass }\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tentityForSuggestions.config.getSpecificTemplate(\n\t\t\t\t\t\t\t\tsuggestion\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Text\n\t\t\t\tsize=\"body\"\n\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\tweight={ 500 }\n\t\t\t\tclassName={ `${ baseCssClass }__title` }\n\t\t\t>\n\t\t\t\t<TextHighlight\n\t\t\t\t\ttext={ decodeEntities( suggestion.name ) }\n\t\t\t\t\thighlight={ search }\n\t\t\t\t/>\n\t\t\t</Text>\n\t\t\t{ suggestion.link && (\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\tclassName={ `${ baseCssClass }__info` }\n\t\t\t\t>\n\t\t\t\t\t{ suggestion.link }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</Composite.Item>\n\t);\n}\n\nfunction useSearchSuggestions( entityForSuggestions, search ) {\n\tconst { config } = entityForSuggestions;\n\tconst query = useMemo(\n\t\t() => ( {\n\t\t\torder: 'asc',\n\t\t\tcontext: 'view',\n\t\t\tsearch,\n\t\t\tper_page: search ? 20 : 10,\n\t\t\t...config.queryArgs( search ),\n\t\t} ),\n\t\t[ search, config ]\n\t);\n\tconst { records: searchResults, hasResolved: searchHasResolved } =\n\t\tuseEntityRecords(\n\t\t\tentityForSuggestions.type,\n\t\t\tentityForSuggestions.slug,\n\t\t\tquery\n\t\t);\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tlet newSuggestions = EMPTY_ARRAY;\n\t\tif ( searchResults?.length ) {\n\t\t\tnewSuggestions = searchResults;\n\t\t\tif ( config.recordNamePath ) {\n\t\t\t\tnewSuggestions = mapToIHasNameAndId(\n\t\t\t\t\tnewSuggestions,\n\t\t\t\t\tconfig.recordNamePath\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Update suggestions only when the query has resolved, so as to keep\n\t\t// the previous results in the UI.\n\t\tsetSuggestions( newSuggestions );\n\t}, [ searchResults, searchHasResolved ] );\n\treturn suggestions;\n}\n\nfunction SuggestionList( { entityForSuggestions, onSelect } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput();\n\tconst suggestions = useSearchSuggestions(\n\t\tentityForSuggestions,\n\t\tdebouncedSearch\n\t);\n\tconst { labels } = entityForSuggestions;\n\tconst [ showSearchControl, setShowSearchControl ] = useState( false );\n\tif ( ! showSearchControl && suggestions?.length > 9 ) {\n\t\tsetShowSearchControl( true );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ showSearchControl && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearch }\n\t\t\t\t\tvalue={ search }\n\t\t\t\t\tlabel={ labels.search_items }\n\t\t\t\t\tplaceholder={ labels.search_items }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! suggestions?.length && (\n\t\t\t\t<Composite\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__suggestions_list\"\n\t\t\t\t\taria-label={ __( 'Suggestions list' ) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion ) => (\n\t\t\t\t\t\t<SuggestionListItem\n\t\t\t\t\t\t\tkey={ suggestion.slug }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tsearch={ debouncedSearch }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t{ debouncedSearch && ! suggestions?.length && (\n\t\t\t\t<Text\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__no-results\"\n\t\t\t\t>\n\t\t\t\t\t{ labels.not_found }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction AddCustomTemplateModalContent( { onSelect, entityForSuggestions } ) {\n\tconst [ showSearchEntities, setShowSearchEntities ] = useState(\n\t\tentityForSuggestions.hasGeneralTemplate\n\t);\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-custom-template-modal__contents-wrapper\"\n\t\t\talignment=\"left\"\n\t\t>\n\t\t\t{ ! showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select whether to create a single template for all items or a specific one.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"edit-site-custom-template-modal__contents\"\n\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\talign=\"initial\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} = entityForSuggestions.template;\n\t\t\t\t\t\t\t\tonSelect( {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.all_items }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For all items' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowSearchEntities( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.singular_name }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For a specific item' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This template will be used only for the specific item chosen.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<SuggestionList\n\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default AddCustomTemplateModalContent;\n"],"mappings":"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","ignoreList":[]}
@@ -163,7 +163,7 @@ function NewTemplateModal({
163
163
  canvas: 'edit'
164
164
  });
165
165
  createSuccessNotice((0, _i18n.sprintf)(
166
- // translators: %s: Title of the created template e.g: "Category".
166
+ // translators: %s: Title of the created post or template, e.g: "Hello world".
167
167
  (0, _i18n.__)('"%s" successfully created.'), (0, _htmlEntities.decodeEntities)(newTemplate.title?.rendered || title)), {
168
168
  type: 'snackbar'
169
169
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_htmlEntities","_element","_data","_coreData","_compose","_icons","_i18n","_notices","_router","_constants","_addCustomTemplateModalContent","_utils","_addCustomGenericTemplateModalContent","_lockUnlock","_jsxRuntime","useHistory","unlock","routerPrivateApis","DEFAULT_TEMPLATE_SLUGS","TEMPLATE_ICONS","home","verse","single","pin","page","archive","search","notFound","index","list","category","author","commentAuthorAvatar","taxonomy","blockMeta","date","calendar","tag","attachment","media","TemplateListItem","title","direction","className","description","icon","onClick","children","jsx","Button","__next40pxDefaultSize","label","showTooltip","jsxs","Flex","as","spacing","align","justify","style","width","Icon","__experimentalVStack","alignment","__experimentalText","weight","lineHeight","modalContentMap","templatesList","customTemplate","customGenericTemplate","NewTemplateModal","onClose","modalContent","setModalContent","useState","entityForSuggestions","setEntityForSuggestions","isSubmitting","setIsSubmitting","missingTemplates","useMissingTemplates","history","saveEntityRecord","useDispatch","coreStore","createErrorNotice","createSuccessNotice","noticesStore","isMobile","useViewportMatch","homeUrl","useSelect","select","getEntityRecord","TEMPLATE_SHORT_DESCRIPTIONS","sprintf","__","Date","getFullYear","createTemplate","template","isWPSuggestion","slug","newTemplate","TEMPLATE_POST_TYPE","toString","status","is_wp_suggestion","throwOnError","push","postId","id","postType","canvas","decodeEntities","rendered","type","error","errorMessage","message","code","onModalClose","modalTitle","labels","singular_name","Modal","clsx","onRequestClose","overlayClassName","undefined","__experimentalGrid","columns","gap","map","layout","edit","default","onSelect","NewTemplate","showModal","setShowModal","getPostType","Fragment","variant","add_new_item","existingTemplates","useExistingTemplates","defaultTemplateTypes","useDefaultTemplateTypes","existingTemplateSlugs","missingDefaultTemplates","filter","includes","onClickMenuItem","_entityForSuggestions","enhancedMissingDefaultTemplateTypes","defaultTaxonomiesMenuItems","taxonomiesMenuItems","useTaxonomiesMenuItems","defaultPostTypesMenuItems","postTypesMenuItems","usePostTypeMenuItems","authorMenuItem","useAuthorMenuItem","forEach","menuItem","matchIndex","findIndex","sort","template1","template2","indexOf","usePostTypeArchiveMenuItems","_default","exports","memo"],"sources":["@wordpress/edit-site/src/components/add-new-template/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalGrid as Grid,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tIcon,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, memo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tarchive,\n\tblockMeta,\n\tcalendar,\n\tcategory,\n\tcommentAuthorAvatar,\n\tedit,\n\thome,\n\tlayout,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tpin,\n\tverse,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n/**\n * Internal dependencies\n */\nimport AddCustomTemplateModalContent from './add-custom-template-modal-content';\nimport {\n\tuseExistingTemplates,\n\tuseDefaultTemplateTypes,\n\tuseTaxonomiesMenuItems,\n\tusePostTypeMenuItems,\n\tuseAuthorMenuItem,\n\tusePostTypeArchiveMenuItems,\n} from './utils';\nimport AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'home',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\thome: verse,\n\tsingle: pin,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: commentAuthorAvatar,\n\ttaxonomy: blockMeta,\n\tdate: calendar,\n\ttag,\n\tattachment: media,\n};\n\nfunction TemplateListItem( {\n\ttitle,\n\tdirection,\n\tclassName,\n\tdescription,\n\ticon,\n\tonClick,\n\tchildren,\n} ) {\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\tonClick={ onClick }\n\t\t\tlabel={ description }\n\t\t\tshowTooltip={ !! description }\n\t\t>\n\t\t\t<Flex\n\t\t\t\tas=\"span\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\tdirection={ direction }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-add-new-template__template-icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-name\"\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tspacing={ 0 }\n\t\t\t\t>\n\t\t\t\t\t<Text\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t\t{ children }\n\t\t\t\t</VStack>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nconst modalContentMap = {\n\ttemplatesList: 1,\n\tcustomTemplate: 2,\n\tcustomGenericTemplate: 3,\n};\n\nfunction NewTemplateModal( { onClose } ) {\n\tconst [ modalContent, setModalContent ] = useState(\n\t\tmodalContentMap.templatesList\n\t);\n\tconst [ entityForSuggestions, setEntityForSuggestions ] = useState( {} );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst missingTemplates = useMissingTemplates( setEntityForSuggestions, () =>\n\t\tsetModalContent( modalContentMap.customTemplate )\n\t);\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tconst homeUrl = useSelect( ( select ) => {\n\t\t// Site index.\n\t\treturn select( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t?.home;\n\t}, [] );\n\n\tconst TEMPLATE_SHORT_DESCRIPTIONS = {\n\t\t'front-page': homeUrl,\n\t\tdate: sprintf(\n\t\t\t// translators: %s: The homepage url.\n\t\t\t__( 'E.g. %s' ),\n\t\t\thomeUrl + '/' + new Date().getFullYear()\n\t\t),\n\t};\n\n\tasync function createTemplate( template, isWPSuggestion = true ) {\n\t\tif ( isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsSubmitting( true );\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tis_wp_suggestion: isWPSuggestion,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.push( {\n\t\t\t\tpostId: newTemplate.id,\n\t\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newTemplate.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\tconst onModalClose = () => {\n\t\tonClose();\n\t\tsetModalContent( modalContentMap.templatesList );\n\t};\n\n\tlet modalTitle = __( 'Add template' );\n\tif ( modalContent === modalContentMap.customTemplate ) {\n\t\tmodalTitle = sprintf(\n\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t__( 'Add template: %s' ),\n\t\t\tentityForSuggestions.labels.singular_name\n\t\t);\n\t} else if ( modalContent === modalContentMap.customGenericTemplate ) {\n\t\tmodalTitle = __( 'Create custom template' );\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle }\n\t\t\tclassName={ clsx( 'edit-site-add-new-template__modal', {\n\t\t\t\t'edit-site-add-new-template__modal_template_list':\n\t\t\t\t\tmodalContent === modalContentMap.templatesList,\n\t\t\t\t'edit-site-custom-template-modal':\n\t\t\t\t\tmodalContent === modalContentMap.customTemplate,\n\t\t\t} ) }\n\t\t\tonRequestClose={ onModalClose }\n\t\t\toverlayClassName={\n\t\t\t\tmodalContent === modalContentMap.customGenericTemplate\n\t\t\t\t\t? 'edit-site-custom-generic-template__modal'\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t>\n\t\t\t{ modalContent === modalContentMap.templatesList && (\n\t\t\t\t<Grid\n\t\t\t\t\tcolumns={ isMobile ? 2 : 3 }\n\t\t\t\t\tgap={ 4 }\n\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-list__contents\"\n\t\t\t\t>\n\t\t\t\t\t<Flex className=\"edit-site-add-new-template__template-list__prompt\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select what the new template should apply to:'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ missingTemplates.map( ( template ) => {\n\t\t\t\t\t\tconst { title, slug, onClick } = template;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-button\"\n\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\tTEMPLATE_SHORT_DESCRIPTIONS[ slug ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ticon={ TEMPLATE_ICONS[ slug ] || layout }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tonClick\n\t\t\t\t\t\t\t\t\t\t? onClick( template )\n\t\t\t\t\t\t\t\t\t\t: createTemplate( template )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\ttitle={ __( 'Custom template' ) }\n\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\tclassName=\"edit-site-add-new-template__custom-template-button\"\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tsetModalContent(\n\t\t\t\t\t\t\t\tmodalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</TemplateListItem>\n\t\t\t\t</Grid>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customTemplate && (\n\t\t\t\t<AddCustomTemplateModalContent\n\t\t\t\t\tonSelect={ createTemplate }\n\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customGenericTemplate && (\n\t\t\t\t<AddCustomGenericTemplateModalContent\n\t\t\t\t\tonClose={ onModalClose }\n\t\t\t\t\tcreateTemplate={ createTemplate }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Modal>\n\t);\n}\n\nfunction NewTemplate() {\n\tconst [ showModal, setShowModal ] = useState( false );\n\n\tconst { postType } = useSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn {\n\t\t\tpostType: getPostType( TEMPLATE_POST_TYPE ),\n\t\t};\n\t}, [] );\n\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ showModal && (\n\t\t\t\t<NewTemplateModal onClose={ () => setShowModal( false ) } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useMissingTemplates( setEntityForSuggestions, onClick ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst missingDefaultTemplates = ( defaultTemplateTypes || [] ).filter(\n\t\t( template ) =>\n\t\t\tDEFAULT_TEMPLATE_SLUGS.includes( template.slug ) &&\n\t\t\t! existingTemplateSlugs.includes( template.slug )\n\t);\n\tconst onClickMenuItem = ( _entityForSuggestions ) => {\n\t\tonClick?.();\n\t\tsetEntityForSuggestions( _entityForSuggestions );\n\t};\n\t// We need to replace existing default template types with\n\t// the create specific template functionality. The original\n\t// info (title, description, etc.) is preserved in the\n\t// used hooks.\n\tconst enhancedMissingDefaultTemplateTypes = [ ...missingDefaultTemplates ];\n\tconst { defaultTaxonomiesMenuItems, taxonomiesMenuItems } =\n\t\tuseTaxonomiesMenuItems( onClickMenuItem );\n\tconst { defaultPostTypesMenuItems, postTypesMenuItems } =\n\t\tusePostTypeMenuItems( onClickMenuItem );\n\n\tconst authorMenuItem = useAuthorMenuItem( onClickMenuItem );\n\t[\n\t\t...defaultTaxonomiesMenuItems,\n\t\t...defaultPostTypesMenuItems,\n\t\tauthorMenuItem,\n\t].forEach( ( menuItem ) => {\n\t\tif ( ! menuItem ) {\n\t\t\treturn;\n\t\t}\n\t\tconst matchIndex = enhancedMissingDefaultTemplateTypes.findIndex(\n\t\t\t( template ) => template.slug === menuItem.slug\n\t\t);\n\t\t// Some default template types might have been filtered above from\n\t\t// `missingDefaultTemplates` because they only check for the general\n\t\t// template. So here we either replace or append the item, augmented\n\t\t// with the check if it has available specific item to create a\n\t\t// template for.\n\t\tif ( matchIndex > -1 ) {\n\t\t\tenhancedMissingDefaultTemplateTypes[ matchIndex ] = menuItem;\n\t\t} else {\n\t\t\tenhancedMissingDefaultTemplateTypes.push( menuItem );\n\t\t}\n\t} );\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tenhancedMissingDefaultTemplateTypes?.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\tconst missingTemplates = [\n\t\t...enhancedMissingDefaultTemplateTypes,\n\t\t...usePostTypeArchiveMenuItems(),\n\t\t...postTypesMenuItems,\n\t\t...taxonomiesMenuItems,\n\t];\n\treturn missingTemplates;\n}\n\nexport default memo( NewTemplate );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_htmlEntities","_element","_data","_coreData","_compose","_icons","_i18n","_notices","_router","_constants","_addCustomTemplateModalContent","_utils","_addCustomGenericTemplateModalContent","_lockUnlock","_jsxRuntime","useHistory","unlock","routerPrivateApis","DEFAULT_TEMPLATE_SLUGS","TEMPLATE_ICONS","home","verse","single","pin","page","archive","search","notFound","index","list","category","author","commentAuthorAvatar","taxonomy","blockMeta","date","calendar","tag","attachment","media","TemplateListItem","title","direction","className","description","icon","onClick","children","jsx","Button","__next40pxDefaultSize","label","showTooltip","jsxs","Flex","as","spacing","align","justify","style","width","Icon","__experimentalVStack","alignment","__experimentalText","weight","lineHeight","modalContentMap","templatesList","customTemplate","customGenericTemplate","NewTemplateModal","onClose","modalContent","setModalContent","useState","entityForSuggestions","setEntityForSuggestions","isSubmitting","setIsSubmitting","missingTemplates","useMissingTemplates","history","saveEntityRecord","useDispatch","coreStore","createErrorNotice","createSuccessNotice","noticesStore","isMobile","useViewportMatch","homeUrl","useSelect","select","getEntityRecord","TEMPLATE_SHORT_DESCRIPTIONS","sprintf","__","Date","getFullYear","createTemplate","template","isWPSuggestion","slug","newTemplate","TEMPLATE_POST_TYPE","toString","status","is_wp_suggestion","throwOnError","push","postId","id","postType","canvas","decodeEntities","rendered","type","error","errorMessage","message","code","onModalClose","modalTitle","labels","singular_name","Modal","clsx","onRequestClose","overlayClassName","undefined","__experimentalGrid","columns","gap","map","layout","edit","default","onSelect","NewTemplate","showModal","setShowModal","getPostType","Fragment","variant","add_new_item","existingTemplates","useExistingTemplates","defaultTemplateTypes","useDefaultTemplateTypes","existingTemplateSlugs","missingDefaultTemplates","filter","includes","onClickMenuItem","_entityForSuggestions","enhancedMissingDefaultTemplateTypes","defaultTaxonomiesMenuItems","taxonomiesMenuItems","useTaxonomiesMenuItems","defaultPostTypesMenuItems","postTypesMenuItems","usePostTypeMenuItems","authorMenuItem","useAuthorMenuItem","forEach","menuItem","matchIndex","findIndex","sort","template1","template2","indexOf","usePostTypeArchiveMenuItems","_default","exports","memo"],"sources":["@wordpress/edit-site/src/components/add-new-template/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalGrid as Grid,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tIcon,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, memo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tarchive,\n\tblockMeta,\n\tcalendar,\n\tcategory,\n\tcommentAuthorAvatar,\n\tedit,\n\thome,\n\tlayout,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tpin,\n\tverse,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n/**\n * Internal dependencies\n */\nimport AddCustomTemplateModalContent from './add-custom-template-modal-content';\nimport {\n\tuseExistingTemplates,\n\tuseDefaultTemplateTypes,\n\tuseTaxonomiesMenuItems,\n\tusePostTypeMenuItems,\n\tuseAuthorMenuItem,\n\tusePostTypeArchiveMenuItems,\n} from './utils';\nimport AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'home',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\thome: verse,\n\tsingle: pin,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: commentAuthorAvatar,\n\ttaxonomy: blockMeta,\n\tdate: calendar,\n\ttag,\n\tattachment: media,\n};\n\nfunction TemplateListItem( {\n\ttitle,\n\tdirection,\n\tclassName,\n\tdescription,\n\ticon,\n\tonClick,\n\tchildren,\n} ) {\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\tonClick={ onClick }\n\t\t\tlabel={ description }\n\t\t\tshowTooltip={ !! description }\n\t\t>\n\t\t\t<Flex\n\t\t\t\tas=\"span\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\tdirection={ direction }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-add-new-template__template-icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-name\"\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tspacing={ 0 }\n\t\t\t\t>\n\t\t\t\t\t<Text\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t\t{ children }\n\t\t\t\t</VStack>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nconst modalContentMap = {\n\ttemplatesList: 1,\n\tcustomTemplate: 2,\n\tcustomGenericTemplate: 3,\n};\n\nfunction NewTemplateModal( { onClose } ) {\n\tconst [ modalContent, setModalContent ] = useState(\n\t\tmodalContentMap.templatesList\n\t);\n\tconst [ entityForSuggestions, setEntityForSuggestions ] = useState( {} );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst missingTemplates = useMissingTemplates( setEntityForSuggestions, () =>\n\t\tsetModalContent( modalContentMap.customTemplate )\n\t);\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tconst homeUrl = useSelect( ( select ) => {\n\t\t// Site index.\n\t\treturn select( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t?.home;\n\t}, [] );\n\n\tconst TEMPLATE_SHORT_DESCRIPTIONS = {\n\t\t'front-page': homeUrl,\n\t\tdate: sprintf(\n\t\t\t// translators: %s: The homepage url.\n\t\t\t__( 'E.g. %s' ),\n\t\t\thomeUrl + '/' + new Date().getFullYear()\n\t\t),\n\t};\n\n\tasync function createTemplate( template, isWPSuggestion = true ) {\n\t\tif ( isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsSubmitting( true );\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tis_wp_suggestion: isWPSuggestion,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.push( {\n\t\t\t\tpostId: newTemplate.id,\n\t\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newTemplate.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\tconst onModalClose = () => {\n\t\tonClose();\n\t\tsetModalContent( modalContentMap.templatesList );\n\t};\n\n\tlet modalTitle = __( 'Add template' );\n\tif ( modalContent === modalContentMap.customTemplate ) {\n\t\tmodalTitle = sprintf(\n\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t__( 'Add template: %s' ),\n\t\t\tentityForSuggestions.labels.singular_name\n\t\t);\n\t} else if ( modalContent === modalContentMap.customGenericTemplate ) {\n\t\tmodalTitle = __( 'Create custom template' );\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle }\n\t\t\tclassName={ clsx( 'edit-site-add-new-template__modal', {\n\t\t\t\t'edit-site-add-new-template__modal_template_list':\n\t\t\t\t\tmodalContent === modalContentMap.templatesList,\n\t\t\t\t'edit-site-custom-template-modal':\n\t\t\t\t\tmodalContent === modalContentMap.customTemplate,\n\t\t\t} ) }\n\t\t\tonRequestClose={ onModalClose }\n\t\t\toverlayClassName={\n\t\t\t\tmodalContent === modalContentMap.customGenericTemplate\n\t\t\t\t\t? 'edit-site-custom-generic-template__modal'\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t>\n\t\t\t{ modalContent === modalContentMap.templatesList && (\n\t\t\t\t<Grid\n\t\t\t\t\tcolumns={ isMobile ? 2 : 3 }\n\t\t\t\t\tgap={ 4 }\n\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-list__contents\"\n\t\t\t\t>\n\t\t\t\t\t<Flex className=\"edit-site-add-new-template__template-list__prompt\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select what the new template should apply to:'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ missingTemplates.map( ( template ) => {\n\t\t\t\t\t\tconst { title, slug, onClick } = template;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-button\"\n\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\tTEMPLATE_SHORT_DESCRIPTIONS[ slug ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ticon={ TEMPLATE_ICONS[ slug ] || layout }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tonClick\n\t\t\t\t\t\t\t\t\t\t? onClick( template )\n\t\t\t\t\t\t\t\t\t\t: createTemplate( template )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\ttitle={ __( 'Custom template' ) }\n\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\tclassName=\"edit-site-add-new-template__custom-template-button\"\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tsetModalContent(\n\t\t\t\t\t\t\t\tmodalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</TemplateListItem>\n\t\t\t\t</Grid>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customTemplate && (\n\t\t\t\t<AddCustomTemplateModalContent\n\t\t\t\t\tonSelect={ createTemplate }\n\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customGenericTemplate && (\n\t\t\t\t<AddCustomGenericTemplateModalContent\n\t\t\t\t\tonClose={ onModalClose }\n\t\t\t\t\tcreateTemplate={ createTemplate }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Modal>\n\t);\n}\n\nfunction NewTemplate() {\n\tconst [ showModal, setShowModal ] = useState( false );\n\n\tconst { postType } = useSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn {\n\t\t\tpostType: getPostType( TEMPLATE_POST_TYPE ),\n\t\t};\n\t}, [] );\n\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ showModal && (\n\t\t\t\t<NewTemplateModal onClose={ () => setShowModal( false ) } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useMissingTemplates( setEntityForSuggestions, onClick ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst missingDefaultTemplates = ( defaultTemplateTypes || [] ).filter(\n\t\t( template ) =>\n\t\t\tDEFAULT_TEMPLATE_SLUGS.includes( template.slug ) &&\n\t\t\t! existingTemplateSlugs.includes( template.slug )\n\t);\n\tconst onClickMenuItem = ( _entityForSuggestions ) => {\n\t\tonClick?.();\n\t\tsetEntityForSuggestions( _entityForSuggestions );\n\t};\n\t// We need to replace existing default template types with\n\t// the create specific template functionality. The original\n\t// info (title, description, etc.) is preserved in the\n\t// used hooks.\n\tconst enhancedMissingDefaultTemplateTypes = [ ...missingDefaultTemplates ];\n\tconst { defaultTaxonomiesMenuItems, taxonomiesMenuItems } =\n\t\tuseTaxonomiesMenuItems( onClickMenuItem );\n\tconst { defaultPostTypesMenuItems, postTypesMenuItems } =\n\t\tusePostTypeMenuItems( onClickMenuItem );\n\n\tconst authorMenuItem = useAuthorMenuItem( onClickMenuItem );\n\t[\n\t\t...defaultTaxonomiesMenuItems,\n\t\t...defaultPostTypesMenuItems,\n\t\tauthorMenuItem,\n\t].forEach( ( menuItem ) => {\n\t\tif ( ! menuItem ) {\n\t\t\treturn;\n\t\t}\n\t\tconst matchIndex = enhancedMissingDefaultTemplateTypes.findIndex(\n\t\t\t( template ) => template.slug === menuItem.slug\n\t\t);\n\t\t// Some default template types might have been filtered above from\n\t\t// `missingDefaultTemplates` because they only check for the general\n\t\t// template. So here we either replace or append the item, augmented\n\t\t// with the check if it has available specific item to create a\n\t\t// template for.\n\t\tif ( matchIndex > -1 ) {\n\t\t\tenhancedMissingDefaultTemplateTypes[ matchIndex ] = menuItem;\n\t\t} else {\n\t\t\tenhancedMissingDefaultTemplateTypes.push( menuItem );\n\t\t}\n\t} );\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tenhancedMissingDefaultTemplateTypes?.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\tconst missingTemplates = [\n\t\t...enhancedMissingDefaultTemplateTypes,\n\t\t...usePostTypeArchiveMenuItems(),\n\t\t...postTypesMenuItems,\n\t\t...taxonomiesMenuItems,\n\t];\n\treturn missingTemplates;\n}\n\nexport default memo( NewTemplate );\n"],"mappings":"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","ignoreList":[]}
@@ -195,10 +195,10 @@ const usePostTypeMenuItems = onClickMenuItem => {
195
195
  (0, _i18n.__)('Single item: %s'), labels.singular_name);
196
196
  if (_needsUniqueIdentifier) {
197
197
  menuItemTitle = labels.template_name ? (0, _i18n.sprintf)(
198
- // translators: %1s: Name of the template e.g: "Single Item: Post"; %2s: Slug of the post type e.g: "book".
199
- (0, _i18n.__)('%1$s (%2$s)'), labels.template_name, slug) : (0, _i18n.sprintf)(
200
- // translators: %1s: Name of the post type e.g: "Post"; %2s: Slug of the post type e.g: "book".
201
- (0, _i18n.__)('Single item: %1$s (%2$s)'), labels.singular_name, slug);
198
+ // translators: 1: Name of the template e.g: "Single Item: Post". 2: Slug of the post type e.g: "book".
199
+ (0, _i18n._x)('%1$s (%2$s)', 'post type menu label'), labels.template_name, slug) : (0, _i18n.sprintf)(
200
+ // translators: 1: Name of the post type e.g: "Post". 2: Slug of the post type e.g: "book".
201
+ (0, _i18n._x)('Single item: %1$s (%2$s)', 'post type menu label'), labels.singular_name, slug);
202
202
  }
203
203
  const menuItem = defaultTemplateType ? {
204
204
  ...defaultTemplateType,
@@ -329,10 +329,10 @@ const useTaxonomiesMenuItems = onClickMenuItem => {
329
329
  let menuItemTitle = labels.template_name || labels.singular_name;
330
330
  if (_needsUniqueIdentifier) {
331
331
  menuItemTitle = labels.template_name ? (0, _i18n.sprintf)(
332
- // translators: %1s: Name of the template e.g: "Products by Category"; %2s: Slug of the taxonomy e.g: "product_cat".
333
- (0, _i18n.__)('%1$s (%2$s)'), labels.template_name, slug) : (0, _i18n.sprintf)(
334
- // translators: %1s: Name of the taxonomy e.g: "Category"; %2s: Slug of the taxonomy e.g: "product_cat".
335
- (0, _i18n.__)('%1$s (%2$s)'), labels.singular_name, slug);
332
+ // translators: 1: Name of the template e.g: "Products by Category". 2s: Slug of the taxonomy e.g: "product_cat".
333
+ (0, _i18n._x)('%1$s (%2$s)', 'taxonomy template menu label'), labels.template_name, slug) : (0, _i18n.sprintf)(
334
+ // translators: 1: Name of the taxonomy e.g: "Category". 2: Slug of the taxonomy e.g: "product_cat".
335
+ (0, _i18n._x)('%1$s (%2$s)', 'taxonomy menu label'), labels.singular_name, slug);
336
336
  }
337
337
  const menuItem = defaultTemplateType ? {
338
338
  ...defaultTemplateType,
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_coreData","_editor","_htmlEntities","_element","_i18n","_icons","_constants","EMPTY_OBJECT","getValueFromObjectPath","object","path","value","split","forEach","fieldName","mapToIHasNameAndId","entities","map","entity","name","decodeEntities","exports","useExistingTemplates","useSelect","select","coreStore","getEntityRecords","TEMPLATE_POST_TYPE","per_page","useDefaultTemplateTypes","editorStore","__experimentalGetDefaultTemplateTypes","usePublicPostTypes","postTypes","getPostTypes","useMemo","excludedPostTypes","filter","viewable","slug","includes","usePublicTaxonomies","taxonomies","getTaxonomies","visibility","publicly_queryable","usePostTypeArchiveMenuItems","publicPostTypes","postTypesWithArchives","postType","has_archive","existingTemplates","postTypeLabels","reduce","accumulator","labels","singularName","singular_name","toLowerCase","needsUniqueIdentifier","useCallback","some","existingTemplate","title","sprintf","__","description","icon","startsWith","slice","archive","templatePrefix","usePostTypeMenuItems","onClickMenuItem","defaultTemplateTypes","templateLabels","templateName","template_name","templatePrefixes","suffix","postTypesInfo","useEntitiesInfo","existingTemplateSlugs","menuItems","generalTemplateSlug","defaultTemplateType","find","_slug","hasGeneralTemplate","_needsUniqueIdentifier","menuItemTitle","menuItem","post","hasEntities","onClick","template","type","config","recordNamePath","queryArgs","search","_fields","orderBy","exclude","existingEntitiesIds","getSpecificTemplate","suggestion","templateSlug","push","postTypesMenuItems","key","defaultPostTypesMenuItems","useTaxonomiesMenuItems","publicTaxonomies","taxonomyLabels","taxonomiesInfo","taxonomy","blockMeta","taxonomiesMenuItems","defaultTaxonomiesMenuItems","USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX","user","USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS","who","useAuthorMenuItem","authorInfo","authorMenuItem","search_items","not_found","all_items","useExistingTemplateSlugs","existingSlugs","Object","entries","prefix","slugsWithTemplates","_accumulator","_prefix","substring","length","useTemplatesToExclude","entityName","additionalQueryParameters","slugsToExcludePerEntity","recordsToExcludePerEntity","entitiesWithTemplates","context","entitiesHasRecords","keys","id","entitiesInfo"],"sources":["@wordpress/edit-site/src/components/add-new-template/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { blockMeta, post, archive } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst EMPTY_OBJECT = {};\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.split( '.' ).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 enitities 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 * @typedef {Object} EntitiesInfo\n * @property {boolean} hasEntities If an entity has available records(posts, terms, etc..).\n * @property {number[]} existingEntitiesIds An array of the existing entities ids.\n */\n\nexport const useExistingTemplates = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t),\n\t\t[]\n\t);\n};\n\nexport const useDefaultTemplateTypes = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplateTypes(),\n\t\t[]\n\t);\n};\n\nconst usePublicPostTypes = () => {\n\tconst postTypes = useSelect(\n\t\t( select ) => select( coreStore ).getPostTypes( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\treturn postTypes?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t}, [ postTypes ] );\n};\n\nconst usePublicTaxonomies = () => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\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\nexport function usePostTypeArchiveMenuItems() {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst postTypesWithArchives = useMemo(\n\t\t() => publicPostTypes?.filter( ( postType ) => postType.has_archive ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst existingTemplates = useExistingTemplates();\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst postTypeLabels = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\t\taccumulator[ singularName ] =\n\t\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst needsUniqueIdentifier = useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\treturn postTypeLabels[ singularName ] > 1 && singularName !== slug;\n\t\t},\n\t\t[ postTypeLabels ]\n\t);\n\treturn useMemo(\n\t\t() =>\n\t\t\tpostTypesWithArchives\n\t\t\t\t?.filter(\n\t\t\t\t\t( postType ) =>\n\t\t\t\t\t\t! ( existingTemplates || [] ).some(\n\t\t\t\t\t\t\t( existingTemplate ) =>\n\t\t\t\t\t\t\t\texistingTemplate.slug ===\n\t\t\t\t\t\t\t\t'archive-' + postType.slug\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( postType ) => {\n\t\t\t\t\tlet title;\n\t\t\t\t\tif ( needsUniqueIdentifier( postType ) ) {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t__( 'Archive: %1$s (%2$s)' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name,\n\t\t\t\t\t\t\tpostType.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Archive: %s' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tslug: 'archive-' + postType.slug,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Displays an archive with the latest posts of type: %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon:\n\t\t\t\t\t\t\ttypeof postType.icon === 'string' &&\n\t\t\t\t\t\t\tpostType.icon.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t\t? postType.icon.slice( 10 )\n\t\t\t\t\t\t\t\t: archive,\n\t\t\t\t\t\ttemplatePrefix: 'archive',\n\t\t\t\t\t};\n\t\t\t\t} ) || [],\n\t\t[ postTypesWithArchives, existingTemplates, needsUniqueIdentifier ]\n\t);\n}\n\nexport const usePostTypeMenuItems = ( onClickMenuItem ) => {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst templateLabels = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\t\tconst templateName = (\n\t\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t\t).toLowerCase();\n\t\t\t\taccumulator[ templateName ] =\n\t\t\t\t\t( accumulator[ templateName ] || 0 ) + 1;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst needsUniqueIdentifier = useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst templateName = (\n\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t).toLowerCase();\n\t\t\treturn templateLabels[ templateName ] > 1 && templateName !== slug;\n\t\t},\n\t\t[ templateLabels ]\n\t);\n\n\t// `page`is a special case in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( slug !== 'page' ) {\n\t\t\t\t\tsuffix = `single-${ suffix }`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst postTypesInfo = useEntitiesInfo( 'postType', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicPostTypes || [] ).reduce(\n\t\t( accumulator, postType ) => {\n\t\t\tconst { slug, labels, icon } = postType;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier( postType );\n\t\t\tlet menuItemTitle =\n\t\t\t\tlabels.template_name ||\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t__( 'Single item: %s' ),\n\t\t\t\t\tlabels.singular_name\n\t\t\t\t);\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = labels.template_name\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the template e.g: \"Single Item: Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t__( '%1$s (%2$s)' ),\n\t\t\t\t\t\t\tlabels.template_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t__( 'Single item: %1$s (%2$s)' ),\n\t\t\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t );\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Displays a single item: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon:\n\t\t\t\t\t\t\ttypeof icon === 'string' &&\n\t\t\t\t\t\t\ticon.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t\t? icon.slice( 10 )\n\t\t\t\t\t\t\t\t: post,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = postTypesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'postType',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\trecordNamePath: 'title.rendered',\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,title,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'relevance' : 'modified',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\tpostTypesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default post types\n\t// and one for the rest.\n\tconst postTypesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, postType ) => {\n\t\t\t\t\tconst { slug } = postType;\n\t\t\t\t\tlet key = 'postTypesMenuItems';\n\t\t\t\t\tif ( slug === 'page' ) {\n\t\t\t\t\t\tkey = 'defaultPostTypesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( postType );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultPostTypesMenuItems: [], postTypesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn postTypesMenuItems;\n};\n\nexport const useTaxonomiesMenuItems = ( onClickMenuItem ) => {\n\tconst publicTaxonomies = usePublicTaxonomies();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// `category` and `post_tag` are special cases in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicTaxonomies?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( ! [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\t\t\tsuffix = `taxonomy-${ suffix }`;\n\t\t\t\t}\n\t\t\t\tif ( slug === 'post_tag' ) {\n\t\t\t\t\tsuffix = `tag`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicTaxonomies ]\n\t);\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst taxonomyLabels = publicTaxonomies?.reduce(\n\t\t( accumulator, { labels } ) => {\n\t\t\tconst templateName = (\n\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t).toLowerCase();\n\t\t\taccumulator[ templateName ] =\n\t\t\t\t( accumulator[ templateName ] || 0 ) + 1;\n\t\t\treturn accumulator;\n\t\t},\n\t\t{}\n\t);\n\tconst needsUniqueIdentifier = ( labels, slug ) => {\n\t\tif ( [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst templateName = (\n\t\t\tlabels.template_name || labels.singular_name\n\t\t).toLowerCase();\n\t\treturn taxonomyLabels[ templateName ] > 1 && templateName !== slug;\n\t};\n\tconst taxonomiesInfo = useEntitiesInfo( 'taxonomy', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicTaxonomies || [] ).reduce(\n\t\t( accumulator, taxonomy ) => {\n\t\t\tconst { slug, labels } = taxonomy;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier(\n\t\t\t\tlabels,\n\t\t\t\tslug\n\t\t\t);\n\t\t\tlet menuItemTitle = labels.template_name || labels.singular_name;\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = labels.template_name\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the template e.g: \"Products by Category\"; %2s: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t\t\t__( '%1$s (%2$s)' ),\n\t\t\t\t\t\t\tlabels.template_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the taxonomy e.g: \"Category\"; %2s: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t\t\t__( '%1$s (%2$s)' ),\n\t\t\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t );\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the taxonomy e.g: \"Product Categories\".\n\t\t\t\t\t\t\t__( 'Displays taxonomy: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ticon: blockMeta,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = taxonomiesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'taxonomy',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'name' : 'count',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\ttaxonomiesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default taxonomies\n\t// and one for the rest.\n\tconst taxonomiesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, taxonomy ) => {\n\t\t\t\t\tconst { slug } = taxonomy;\n\t\t\t\t\tlet key = 'taxonomiesMenuItems';\n\t\t\t\t\tif ( [ 'category', 'tag' ].includes( slug ) ) {\n\t\t\t\t\t\tkey = 'defaultTaxonomiesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( taxonomy );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultTaxonomiesMenuItems: [], taxonomiesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn taxonomiesMenuItems;\n};\n\nconst USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX = { user: 'author' };\nconst USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS = { user: { who: 'authors' } };\nexport function useAuthorMenuItem( onClickMenuItem ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst authorInfo = useEntitiesInfo(\n\t\t'root',\n\t\tUSE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX,\n\t\tUSE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS\n\t);\n\tlet authorMenuItem = defaultTemplateTypes?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( ! authorMenuItem ) {\n\t\tauthorMenuItem = {\n\t\t\tdescription: __(\n\t\t\t\t'Displays latest posts written by a single author.'\n\t\t\t),\n\t\t\tslug: 'author',\n\t\t\ttitle: 'Author',\n\t\t};\n\t}\n\tconst hasGeneralTemplate = !! existingTemplates?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( authorInfo.user?.hasEntities ) {\n\t\tauthorMenuItem = { ...authorMenuItem, templatePrefix: 'author' };\n\t\tauthorMenuItem.onClick = ( template ) => {\n\t\t\tonClickMenuItem( {\n\t\t\t\ttype: 'root',\n\t\t\t\tslug: 'user',\n\t\t\t\tconfig: {\n\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\torderBy: search ? 'name' : 'registered_date',\n\t\t\t\t\t\t\texclude: authorInfo.user.existingEntitiesIds,\n\t\t\t\t\t\t\twho: 'authors',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\tconst templateSlug = `author-${ suggestion.slug }`;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\ttemplatePrefix: 'author',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tsingular_name: __( 'Author' ),\n\t\t\t\t\tsearch_items: __( 'Search Authors' ),\n\t\t\t\t\tnot_found: __( 'No authors found.' ),\n\t\t\t\t\tall_items: __( 'All Authors' ),\n\t\t\t\t},\n\t\t\t\thasGeneralTemplate,\n\t\t\t\ttemplate,\n\t\t\t} );\n\t\t};\n\t}\n\tif ( ! hasGeneralTemplate || authorInfo.user?.hasEntities ) {\n\t\treturn authorMenuItem;\n\t}\n}\n\n/**\n * Helper hook that filters all the existing templates by the given\n * object with the entity's slug as key and the template prefix as value.\n *\n * Example:\n * `existingTemplates` is: [ { slug: 'tag-apple' }, { slug: 'page-about' }, { slug: 'tag' } ]\n * `templatePrefixes` is: { post_tag: 'tag' }\n * It will return: { post_tag: ['apple'] }\n *\n * Note: We append the `-` to the given template prefix in this function for our checks.\n *\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @return {Record<string,string[]>} An object with the entity's slug as key and an array with the existing template slugs as value.\n */\nconst useExistingTemplateSlugs = ( templatePrefixes ) => {\n\tconst existingTemplates = useExistingTemplates();\n\tconst existingSlugs = useMemo( () => {\n\t\treturn Object.entries( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, [ slug, prefix ] ) => {\n\t\t\t\tconst slugsWithTemplates = ( existingTemplates || [] ).reduce(\n\t\t\t\t\t( _accumulator, existingTemplate ) => {\n\t\t\t\t\t\tconst _prefix = `${ prefix }-`;\n\t\t\t\t\t\tif ( existingTemplate.slug.startsWith( _prefix ) ) {\n\t\t\t\t\t\t\t_accumulator.push(\n\t\t\t\t\t\t\t\texistingTemplate.slug.substring(\n\t\t\t\t\t\t\t\t\t_prefix.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn _accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tif ( slugsWithTemplates.length ) {\n\t\t\t\t\taccumulator[ slug ] = slugsWithTemplates;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, existingTemplates ] );\n\treturn existingSlugs;\n};\n\n/**\n * Helper hook that finds the existing records with an associated template,\n * as they need to be excluded from the template suggestions.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the existing records as value.\n */\nconst useTemplatesToExclude = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = {}\n) => {\n\tconst slugsToExcludePerEntity =\n\t\tuseExistingTemplateSlugs( templatePrefixes );\n\tconst recordsToExcludePerEntity = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.entries( slugsToExcludePerEntity || {} ).reduce(\n\t\t\t\t( accumulator, [ slug, slugsWithTemplates ] ) => {\n\t\t\t\t\tconst entitiesWithTemplates = select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\tslug: slugsWithTemplates,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} );\n\t\t\t\t\tif ( entitiesWithTemplates?.length ) {\n\t\t\t\t\t\taccumulator[ slug ] = entitiesWithTemplates;\n\t\t\t\t\t}\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[ slugsToExcludePerEntity ]\n\t);\n\treturn recordsToExcludePerEntity;\n};\n\n/**\n * Helper hook that returns information about an entity having\n * records that we can create a specific template for.\n *\n * For example we can search for `terms` in `taxonomy` entity or\n * `posts` in `postType` entity.\n *\n * First we need to find the existing records with an associated template,\n * to query afterwards for any remaining record, by excluding them.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the EntitiesInfo as value.\n */\nconst useEntitiesInfo = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = EMPTY_OBJECT\n) => {\n\tconst recordsToExcludePerEntity = useTemplatesToExclude(\n\t\tentityName,\n\t\ttemplatePrefixes,\n\t\tadditionalQueryParameters\n\t);\n\tconst entitiesHasRecords = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t\t( accumulator, slug ) => {\n\t\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t\t) || [];\n\t\t\t\t\taccumulator[ slug ] = !! select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\texclude: existingEntitiesIds,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} )?.length;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[\n\t\t\ttemplatePrefixes,\n\t\t\trecordsToExcludePerEntity,\n\t\t\tentityName,\n\t\t\tadditionalQueryParameters,\n\t\t]\n\t);\n\tconst entitiesInfo = useMemo( () => {\n\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, slug ) => {\n\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t) || [];\n\t\t\t\taccumulator[ slug ] = {\n\t\t\t\t\thasEntities: entitiesHasRecords[ slug ],\n\t\t\t\t\texistingEntitiesIds,\n\t\t\t\t};\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, recordsToExcludePerEntity, entitiesHasRecords ] );\n\treturn entitiesInfo;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_coreData","_editor","_htmlEntities","_element","_i18n","_icons","_constants","EMPTY_OBJECT","getValueFromObjectPath","object","path","value","split","forEach","fieldName","mapToIHasNameAndId","entities","map","entity","name","decodeEntities","exports","useExistingTemplates","useSelect","select","coreStore","getEntityRecords","TEMPLATE_POST_TYPE","per_page","useDefaultTemplateTypes","editorStore","__experimentalGetDefaultTemplateTypes","usePublicPostTypes","postTypes","getPostTypes","useMemo","excludedPostTypes","filter","viewable","slug","includes","usePublicTaxonomies","taxonomies","getTaxonomies","visibility","publicly_queryable","usePostTypeArchiveMenuItems","publicPostTypes","postTypesWithArchives","postType","has_archive","existingTemplates","postTypeLabels","reduce","accumulator","labels","singularName","singular_name","toLowerCase","needsUniqueIdentifier","useCallback","some","existingTemplate","title","sprintf","__","description","icon","startsWith","slice","archive","templatePrefix","usePostTypeMenuItems","onClickMenuItem","defaultTemplateTypes","templateLabels","templateName","template_name","templatePrefixes","suffix","postTypesInfo","useEntitiesInfo","existingTemplateSlugs","menuItems","generalTemplateSlug","defaultTemplateType","find","_slug","hasGeneralTemplate","_needsUniqueIdentifier","menuItemTitle","_x","menuItem","post","hasEntities","onClick","template","type","config","recordNamePath","queryArgs","search","_fields","orderBy","exclude","existingEntitiesIds","getSpecificTemplate","suggestion","templateSlug","push","postTypesMenuItems","key","defaultPostTypesMenuItems","useTaxonomiesMenuItems","publicTaxonomies","taxonomyLabels","taxonomiesInfo","taxonomy","blockMeta","taxonomiesMenuItems","defaultTaxonomiesMenuItems","USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX","user","USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS","who","useAuthorMenuItem","authorInfo","authorMenuItem","search_items","not_found","all_items","useExistingTemplateSlugs","existingSlugs","Object","entries","prefix","slugsWithTemplates","_accumulator","_prefix","substring","length","useTemplatesToExclude","entityName","additionalQueryParameters","slugsToExcludePerEntity","recordsToExcludePerEntity","entitiesWithTemplates","context","entitiesHasRecords","keys","id","entitiesInfo"],"sources":["@wordpress/edit-site/src/components/add-new-template/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { blockMeta, post, archive } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst EMPTY_OBJECT = {};\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.split( '.' ).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 enitities 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 * @typedef {Object} EntitiesInfo\n * @property {boolean} hasEntities If an entity has available records(posts, terms, etc..).\n * @property {number[]} existingEntitiesIds An array of the existing entities ids.\n */\n\nexport const useExistingTemplates = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t),\n\t\t[]\n\t);\n};\n\nexport const useDefaultTemplateTypes = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplateTypes(),\n\t\t[]\n\t);\n};\n\nconst usePublicPostTypes = () => {\n\tconst postTypes = useSelect(\n\t\t( select ) => select( coreStore ).getPostTypes( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\treturn postTypes?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t}, [ postTypes ] );\n};\n\nconst usePublicTaxonomies = () => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\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\nexport function usePostTypeArchiveMenuItems() {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst postTypesWithArchives = useMemo(\n\t\t() => publicPostTypes?.filter( ( postType ) => postType.has_archive ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst existingTemplates = useExistingTemplates();\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst postTypeLabels = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\t\taccumulator[ singularName ] =\n\t\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst needsUniqueIdentifier = useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\treturn postTypeLabels[ singularName ] > 1 && singularName !== slug;\n\t\t},\n\t\t[ postTypeLabels ]\n\t);\n\treturn useMemo(\n\t\t() =>\n\t\t\tpostTypesWithArchives\n\t\t\t\t?.filter(\n\t\t\t\t\t( postType ) =>\n\t\t\t\t\t\t! ( existingTemplates || [] ).some(\n\t\t\t\t\t\t\t( existingTemplate ) =>\n\t\t\t\t\t\t\t\texistingTemplate.slug ===\n\t\t\t\t\t\t\t\t'archive-' + postType.slug\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( postType ) => {\n\t\t\t\t\tlet title;\n\t\t\t\t\tif ( needsUniqueIdentifier( postType ) ) {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t__( 'Archive: %1$s (%2$s)' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name,\n\t\t\t\t\t\t\tpostType.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Archive: %s' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tslug: 'archive-' + postType.slug,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Displays an archive with the latest posts of type: %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon:\n\t\t\t\t\t\t\ttypeof postType.icon === 'string' &&\n\t\t\t\t\t\t\tpostType.icon.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t\t? postType.icon.slice( 10 )\n\t\t\t\t\t\t\t\t: archive,\n\t\t\t\t\t\ttemplatePrefix: 'archive',\n\t\t\t\t\t};\n\t\t\t\t} ) || [],\n\t\t[ postTypesWithArchives, existingTemplates, needsUniqueIdentifier ]\n\t);\n}\n\nexport const usePostTypeMenuItems = ( onClickMenuItem ) => {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst templateLabels = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\t\tconst templateName = (\n\t\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t\t).toLowerCase();\n\t\t\t\taccumulator[ templateName ] =\n\t\t\t\t\t( accumulator[ templateName ] || 0 ) + 1;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst needsUniqueIdentifier = useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst templateName = (\n\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t).toLowerCase();\n\t\t\treturn templateLabels[ templateName ] > 1 && templateName !== slug;\n\t\t},\n\t\t[ templateLabels ]\n\t);\n\n\t// `page`is a special case in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( slug !== 'page' ) {\n\t\t\t\t\tsuffix = `single-${ suffix }`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst postTypesInfo = useEntitiesInfo( 'postType', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicPostTypes || [] ).reduce(\n\t\t( accumulator, postType ) => {\n\t\t\tconst { slug, labels, icon } = postType;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier( postType );\n\t\t\tlet menuItemTitle =\n\t\t\t\tlabels.template_name ||\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t__( 'Single item: %s' ),\n\t\t\t\t\tlabels.singular_name\n\t\t\t\t);\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = labels.template_name\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the template e.g: \"Single Item: Post\". 2: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t_x( '%1$s (%2$s)', 'post type menu label' ),\n\t\t\t\t\t\t\tlabels.template_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the post type e.g: \"Post\". 2: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t'Single item: %1$s (%2$s)',\n\t\t\t\t\t\t\t\t'post type menu label'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t );\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Displays a single item: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon:\n\t\t\t\t\t\t\ttypeof icon === 'string' &&\n\t\t\t\t\t\t\ticon.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t\t? icon.slice( 10 )\n\t\t\t\t\t\t\t\t: post,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = postTypesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'postType',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\trecordNamePath: 'title.rendered',\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,title,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'relevance' : 'modified',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\tpostTypesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default post types\n\t// and one for the rest.\n\tconst postTypesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, postType ) => {\n\t\t\t\t\tconst { slug } = postType;\n\t\t\t\t\tlet key = 'postTypesMenuItems';\n\t\t\t\t\tif ( slug === 'page' ) {\n\t\t\t\t\t\tkey = 'defaultPostTypesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( postType );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultPostTypesMenuItems: [], postTypesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn postTypesMenuItems;\n};\n\nexport const useTaxonomiesMenuItems = ( onClickMenuItem ) => {\n\tconst publicTaxonomies = usePublicTaxonomies();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// `category` and `post_tag` are special cases in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicTaxonomies?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( ! [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\t\t\tsuffix = `taxonomy-${ suffix }`;\n\t\t\t\t}\n\t\t\t\tif ( slug === 'post_tag' ) {\n\t\t\t\t\tsuffix = `tag`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicTaxonomies ]\n\t);\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst taxonomyLabels = publicTaxonomies?.reduce(\n\t\t( accumulator, { labels } ) => {\n\t\t\tconst templateName = (\n\t\t\t\tlabels.template_name || labels.singular_name\n\t\t\t).toLowerCase();\n\t\t\taccumulator[ templateName ] =\n\t\t\t\t( accumulator[ templateName ] || 0 ) + 1;\n\t\t\treturn accumulator;\n\t\t},\n\t\t{}\n\t);\n\tconst needsUniqueIdentifier = ( labels, slug ) => {\n\t\tif ( [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst templateName = (\n\t\t\tlabels.template_name || labels.singular_name\n\t\t).toLowerCase();\n\t\treturn taxonomyLabels[ templateName ] > 1 && templateName !== slug;\n\t};\n\tconst taxonomiesInfo = useEntitiesInfo( 'taxonomy', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicTaxonomies || [] ).reduce(\n\t\t( accumulator, taxonomy ) => {\n\t\t\tconst { slug, labels } = taxonomy;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier(\n\t\t\t\tlabels,\n\t\t\t\tslug\n\t\t\t);\n\t\t\tlet menuItemTitle = labels.template_name || labels.singular_name;\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = labels.template_name\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the template e.g: \"Products by Category\". 2s: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t\t\t_x( '%1$s (%2$s)', 'taxonomy template menu label' ),\n\t\t\t\t\t\t\tlabels.template_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: 1: Name of the taxonomy e.g: \"Category\". 2: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t\t\t_x( '%1$s (%2$s)', 'taxonomy menu label' ),\n\t\t\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\t\t\tslug\n\t\t\t\t\t );\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the taxonomy e.g: \"Product Categories\".\n\t\t\t\t\t\t\t__( 'Displays taxonomy: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ticon: blockMeta,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = taxonomiesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'taxonomy',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'name' : 'count',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\ttaxonomiesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default taxonomies\n\t// and one for the rest.\n\tconst taxonomiesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, taxonomy ) => {\n\t\t\t\t\tconst { slug } = taxonomy;\n\t\t\t\t\tlet key = 'taxonomiesMenuItems';\n\t\t\t\t\tif ( [ 'category', 'tag' ].includes( slug ) ) {\n\t\t\t\t\t\tkey = 'defaultTaxonomiesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( taxonomy );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultTaxonomiesMenuItems: [], taxonomiesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn taxonomiesMenuItems;\n};\n\nconst USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX = { user: 'author' };\nconst USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS = { user: { who: 'authors' } };\nexport function useAuthorMenuItem( onClickMenuItem ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst authorInfo = useEntitiesInfo(\n\t\t'root',\n\t\tUSE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX,\n\t\tUSE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS\n\t);\n\tlet authorMenuItem = defaultTemplateTypes?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( ! authorMenuItem ) {\n\t\tauthorMenuItem = {\n\t\t\tdescription: __(\n\t\t\t\t'Displays latest posts written by a single author.'\n\t\t\t),\n\t\t\tslug: 'author',\n\t\t\ttitle: 'Author',\n\t\t};\n\t}\n\tconst hasGeneralTemplate = !! existingTemplates?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( authorInfo.user?.hasEntities ) {\n\t\tauthorMenuItem = { ...authorMenuItem, templatePrefix: 'author' };\n\t\tauthorMenuItem.onClick = ( template ) => {\n\t\t\tonClickMenuItem( {\n\t\t\t\ttype: 'root',\n\t\t\t\tslug: 'user',\n\t\t\t\tconfig: {\n\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\torderBy: search ? 'name' : 'registered_date',\n\t\t\t\t\t\t\texclude: authorInfo.user.existingEntitiesIds,\n\t\t\t\t\t\t\twho: 'authors',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\tconst templateSlug = `author-${ suggestion.slug }`;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\ttemplatePrefix: 'author',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tsingular_name: __( 'Author' ),\n\t\t\t\t\tsearch_items: __( 'Search Authors' ),\n\t\t\t\t\tnot_found: __( 'No authors found.' ),\n\t\t\t\t\tall_items: __( 'All Authors' ),\n\t\t\t\t},\n\t\t\t\thasGeneralTemplate,\n\t\t\t\ttemplate,\n\t\t\t} );\n\t\t};\n\t}\n\tif ( ! hasGeneralTemplate || authorInfo.user?.hasEntities ) {\n\t\treturn authorMenuItem;\n\t}\n}\n\n/**\n * Helper hook that filters all the existing templates by the given\n * object with the entity's slug as key and the template prefix as value.\n *\n * Example:\n * `existingTemplates` is: [ { slug: 'tag-apple' }, { slug: 'page-about' }, { slug: 'tag' } ]\n * `templatePrefixes` is: { post_tag: 'tag' }\n * It will return: { post_tag: ['apple'] }\n *\n * Note: We append the `-` to the given template prefix in this function for our checks.\n *\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @return {Record<string,string[]>} An object with the entity's slug as key and an array with the existing template slugs as value.\n */\nconst useExistingTemplateSlugs = ( templatePrefixes ) => {\n\tconst existingTemplates = useExistingTemplates();\n\tconst existingSlugs = useMemo( () => {\n\t\treturn Object.entries( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, [ slug, prefix ] ) => {\n\t\t\t\tconst slugsWithTemplates = ( existingTemplates || [] ).reduce(\n\t\t\t\t\t( _accumulator, existingTemplate ) => {\n\t\t\t\t\t\tconst _prefix = `${ prefix }-`;\n\t\t\t\t\t\tif ( existingTemplate.slug.startsWith( _prefix ) ) {\n\t\t\t\t\t\t\t_accumulator.push(\n\t\t\t\t\t\t\t\texistingTemplate.slug.substring(\n\t\t\t\t\t\t\t\t\t_prefix.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn _accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tif ( slugsWithTemplates.length ) {\n\t\t\t\t\taccumulator[ slug ] = slugsWithTemplates;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, existingTemplates ] );\n\treturn existingSlugs;\n};\n\n/**\n * Helper hook that finds the existing records with an associated template,\n * as they need to be excluded from the template suggestions.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the existing records as value.\n */\nconst useTemplatesToExclude = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = {}\n) => {\n\tconst slugsToExcludePerEntity =\n\t\tuseExistingTemplateSlugs( templatePrefixes );\n\tconst recordsToExcludePerEntity = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.entries( slugsToExcludePerEntity || {} ).reduce(\n\t\t\t\t( accumulator, [ slug, slugsWithTemplates ] ) => {\n\t\t\t\t\tconst entitiesWithTemplates = select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\tslug: slugsWithTemplates,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} );\n\t\t\t\t\tif ( entitiesWithTemplates?.length ) {\n\t\t\t\t\t\taccumulator[ slug ] = entitiesWithTemplates;\n\t\t\t\t\t}\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[ slugsToExcludePerEntity ]\n\t);\n\treturn recordsToExcludePerEntity;\n};\n\n/**\n * Helper hook that returns information about an entity having\n * records that we can create a specific template for.\n *\n * For example we can search for `terms` in `taxonomy` entity or\n * `posts` in `postType` entity.\n *\n * First we need to find the existing records with an associated template,\n * to query afterwards for any remaining record, by excluding them.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the EntitiesInfo as value.\n */\nconst useEntitiesInfo = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = EMPTY_OBJECT\n) => {\n\tconst recordsToExcludePerEntity = useTemplatesToExclude(\n\t\tentityName,\n\t\ttemplatePrefixes,\n\t\tadditionalQueryParameters\n\t);\n\tconst entitiesHasRecords = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t\t( accumulator, slug ) => {\n\t\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t\t) || [];\n\t\t\t\t\taccumulator[ slug ] = !! select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\texclude: existingEntitiesIds,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} )?.length;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[\n\t\t\ttemplatePrefixes,\n\t\t\trecordsToExcludePerEntity,\n\t\t\tentityName,\n\t\t\tadditionalQueryParameters,\n\t\t]\n\t);\n\tconst entitiesInfo = useMemo( () => {\n\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, slug ) => {\n\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t) || [];\n\t\t\t\taccumulator[ slug ] = {\n\t\t\t\t\thasEntities: entitiesHasRecords[ slug ],\n\t\t\t\t\texistingEntitiesIds,\n\t\t\t\t};\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, recordsToExcludePerEntity, entitiesHasRecords ] );\n\treturn entitiesInfo;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,7 @@ var _useEditModeCommands = require("../../hooks/commands/use-edit-mode-commands"
19
19
  var _useInitEditedEntityFromUrl = _interopRequireDefault(require("../sync-state-with-url/use-init-edited-entity-from-url"));
20
20
  var _router2 = _interopRequireDefault(require("../layout/router"));
21
21
  var _useSetCommandContext = _interopRequireDefault(require("../../hooks/commands/use-set-command-context"));
22
+ var _siteEditorRoutes = require("../site-editor-routes");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  /**
24
25
  * WordPress dependencies
@@ -40,6 +41,7 @@ function AppLayout() {
40
41
  (0, _useEditModeCommands.useEditModeCommands)();
41
42
  (0, _useCommonCommands.useCommonCommands)();
42
43
  (0, _useSetCommandContext.default)();
44
+ (0, _siteEditorRoutes.useRegisterSiteEditorRoutes)();
43
45
  const route = (0, _router2.default)();
44
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_layout.default, {
45
47
  route: route
@@ -50,7 +52,7 @@ function App() {
50
52
  createErrorNotice
51
53
  } = (0, _data.useDispatch)(_notices.store);
52
54
  function onPluginAreaError(name) {
53
- createErrorNotice((0, _i18n.sprintf)( /* translators: %s: plugin name */
55
+ createErrorNotice((0, _i18n.sprintf)(/* translators: %s: plugin name */
54
56
  (0, _i18n.__)('The "%s" plugin has encountered an error and cannot be rendered.'), name));
55
57
  }
56
58
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SlotFillProvider, {