@wordpress/edit-site 5.19.0 → 5.19.2

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 (448) hide show
  1. package/build/components/add-new-pattern/index.js +3 -3
  2. package/build/components/add-new-pattern/index.js.map +1 -1
  3. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +73 -0
  4. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  5. package/build/components/block-editor/block-editor-provider/index.js +31 -0
  6. package/build/components/block-editor/block-editor-provider/index.js.map +1 -0
  7. package/build/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  8. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  9. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +76 -0
  10. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  11. package/build/components/block-editor/index.js +2 -9
  12. package/build/components/block-editor/index.js.map +1 -1
  13. package/build/components/block-editor/site-editor-canvas.js +1 -1
  14. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  15. package/build/components/create-template-part-modal/index.js +8 -12
  16. package/build/components/create-template-part-modal/index.js.map +1 -1
  17. package/build/components/editor/index.js +4 -1
  18. package/build/components/editor/index.js.map +1 -1
  19. package/build/components/global-styles/font-families.js +2 -1
  20. package/build/components/global-styles/font-families.js.map +1 -1
  21. package/build/components/global-styles/font-family-item.js +2 -2
  22. package/build/components/global-styles/font-family-item.js.map +1 -1
  23. package/build/components/global-styles/font-library-modal/collection-font-details.js +49 -0
  24. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  25. package/build/components/global-styles/font-library-modal/collection-font-variant.js +55 -0
  26. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  27. package/build/components/global-styles/font-library-modal/context.js +26 -2
  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 +7 -4
  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 +172 -0
  32. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  33. package/build/components/global-styles/font-library-modal/font-demo.js +30 -13
  34. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  35. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +41 -0
  36. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  37. package/build/components/global-styles/font-library-modal/index.js +25 -7
  38. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  39. package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  40. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  41. package/build/components/global-styles/font-library-modal/library-font-card.js +0 -5
  42. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  43. package/build/components/global-styles/font-library-modal/library-font-details.js +2 -1
  44. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  45. package/build/components/global-styles/font-library-modal/resolvers.js +16 -0
  46. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  47. package/build/components/global-styles/font-library-modal/tab-layout.js +2 -2
  48. package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -1
  49. package/build/components/global-styles/font-library-modal/utils/constants.js +1 -7
  50. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  51. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +21 -0
  52. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  53. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +20 -0
  54. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  55. package/build/components/global-styles/font-library-modal/utils/index.js +2 -52
  56. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  57. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +76 -0
  58. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  59. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js +36 -0
  60. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  61. package/build/components/global-styles/screen-typography.js +1 -1
  62. package/build/components/global-styles/screen-typography.js.map +1 -1
  63. package/build/components/header-edit-mode/document-actions/index.js +9 -8
  64. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  65. package/build/components/header-edit-mode/index.js +4 -1
  66. package/build/components/header-edit-mode/index.js.map +1 -1
  67. package/build/components/layout/index.js +5 -1
  68. package/build/components/layout/index.js.map +1 -1
  69. package/build/components/list/added-by.js +13 -8
  70. package/build/components/list/added-by.js.map +1 -1
  71. package/build/components/list/index.js +2 -1
  72. package/build/components/list/index.js.map +1 -1
  73. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  74. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  75. package/build/components/page-patterns/duplicate-menu-item.js +5 -5
  76. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  77. package/build/components/page-patterns/grid-item.js +5 -5
  78. package/build/components/page-patterns/grid-item.js.map +1 -1
  79. package/build/components/page-patterns/index.js +1 -1
  80. package/build/components/page-patterns/index.js.map +1 -1
  81. package/build/components/page-patterns/search-items.js +1 -1
  82. package/build/components/page-patterns/search-items.js.map +1 -1
  83. package/build/components/page-patterns/use-patterns.js +28 -34
  84. package/build/components/page-patterns/use-patterns.js.map +1 -1
  85. package/build/components/page-template-parts/add-new-template-part.js +3 -2
  86. package/build/components/page-template-parts/add-new-template-part.js.map +1 -1
  87. package/build/components/page-template-parts/index.js +2 -1
  88. package/build/components/page-template-parts/index.js.map +1 -1
  89. package/build/components/page-templates/index.js +3 -2
  90. package/build/components/page-templates/index.js.map +1 -1
  91. package/build/components/save-hub/index.js +2 -1
  92. package/build/components/save-hub/index.js.map +1 -1
  93. package/build/components/secondary-sidebar/list-view-sidebar.js +24 -17
  94. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  95. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +21 -3
  96. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  97. package/build/components/sidebar-edit-mode/page-panels/hooks.js +2 -1
  98. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  99. package/build/components/sidebar-edit-mode/settings-header/index.js +2 -6
  100. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  101. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  102. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  103. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  104. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  105. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +2 -1
  106. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  107. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  108. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  109. package/build/components/sidebar-navigation-screen-page/page-details.js +2 -1
  110. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  111. package/build/components/sidebar-navigation-screen-pages/index.js +5 -4
  112. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  113. package/build/components/sidebar-navigation-screen-pattern/index.js +2 -1
  114. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  115. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  116. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  117. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  118. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  119. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  120. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  121. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +8 -7
  122. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  123. package/build/components/sidebar-navigation-screen-patterns/index.js +3 -3
  124. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  125. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +7 -2
  126. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  127. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  128. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  129. package/build/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  130. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  131. package/build/components/sidebar-navigation-screen-templates/index.js +4 -3
  132. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  133. package/build/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  134. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  135. package/build/components/start-template-options/index.js +20 -2
  136. package/build/components/start-template-options/index.js.map +1 -1
  137. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  138. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  139. package/build/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  140. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  141. package/build/components/template-actions/index.js +2 -1
  142. package/build/components/template-actions/index.js.map +1 -1
  143. package/build/components/template-actions/rename-menu-item.js +8 -3
  144. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  145. package/build/hooks/commands/use-edit-mode-commands.js +4 -3
  146. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  147. package/build/hooks/navigation-menu-edit.js +2 -1
  148. package/build/hooks/navigation-menu-edit.js.map +1 -1
  149. package/build/hooks/template-part-edit.js +2 -1
  150. package/build/hooks/template-part-edit.js.map +1 -1
  151. package/build/store/actions.js +10 -9
  152. package/build/store/actions.js.map +1 -1
  153. package/build/store/constants.js +1 -9
  154. package/build/store/constants.js.map +1 -1
  155. package/build/store/private-actions.js +21 -1
  156. package/build/store/private-actions.js.map +1 -1
  157. package/build/store/private-selectors.js +23 -0
  158. package/build/store/private-selectors.js.map +1 -1
  159. package/build/store/reducer.js +19 -1
  160. package/build/store/reducer.js.map +1 -1
  161. package/build/store/selectors.js +3 -2
  162. package/build/store/selectors.js.map +1 -1
  163. package/build/utils/constants.js +22 -3
  164. package/build/utils/constants.js.map +1 -1
  165. package/build/utils/is-template-removable.js +1 -1
  166. package/build/utils/is-template-removable.js.map +1 -1
  167. package/build/utils/is-template-revertable.js +1 -1
  168. package/build/utils/is-template-revertable.js.map +1 -1
  169. package/build/utils/template-part-create.js +6 -1
  170. package/build/utils/template-part-create.js.map +1 -1
  171. package/build-module/components/add-new-pattern/index.js +3 -3
  172. package/build-module/components/add-new-pattern/index.js.map +1 -1
  173. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +65 -0
  174. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  175. package/build-module/components/block-editor/block-editor-provider/index.js +23 -0
  176. package/build-module/components/block-editor/block-editor-provider/index.js.map +1 -0
  177. package/build-module/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  178. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  179. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +70 -0
  180. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  181. package/build-module/components/block-editor/index.js +1 -8
  182. package/build-module/components/block-editor/index.js.map +1 -1
  183. package/build-module/components/block-editor/site-editor-canvas.js +2 -2
  184. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  185. package/build-module/components/create-template-part-modal/index.js +8 -12
  186. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  187. package/build-module/components/editor/index.js +4 -1
  188. package/build-module/components/editor/index.js.map +1 -1
  189. package/build-module/components/global-styles/font-families.js +3 -2
  190. package/build-module/components/global-styles/font-families.js.map +1 -1
  191. package/build-module/components/global-styles/font-family-item.js +2 -2
  192. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  193. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +40 -0
  194. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  195. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  196. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  197. package/build-module/components/global-styles/font-library-modal/context.js +27 -3
  198. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  199. package/build-module/components/global-styles/font-library-modal/font-card.js +8 -5
  200. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  201. package/build-module/components/global-styles/font-library-modal/font-collection.js +164 -0
  202. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  203. package/build-module/components/global-styles/font-library-modal/font-demo.js +30 -13
  204. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  205. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +33 -0
  206. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  207. package/build-module/components/global-styles/font-library-modal/index.js +26 -7
  208. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  209. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  210. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  211. package/build-module/components/global-styles/font-library-modal/library-font-card.js +0 -5
  212. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  213. package/build-module/components/global-styles/font-library-modal/library-font-details.js +2 -1
  214. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  215. package/build-module/components/global-styles/font-library-modal/resolvers.js +14 -0
  216. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  217. package/build-module/components/global-styles/font-library-modal/tab-layout.js +2 -2
  218. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -1
  219. package/build-module/components/global-styles/font-library-modal/utils/constants.js +1 -6
  220. package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  221. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +15 -0
  222. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  223. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +13 -0
  224. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  225. package/build-module/components/global-styles/font-library-modal/utils/index.js +2 -51
  226. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  227. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +68 -0
  228. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  229. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js +30 -0
  230. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  231. package/build-module/components/global-styles/screen-typography.js +1 -1
  232. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  233. package/build-module/components/header-edit-mode/document-actions/index.js +9 -8
  234. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  235. package/build-module/components/header-edit-mode/index.js +4 -1
  236. package/build-module/components/header-edit-mode/index.js.map +1 -1
  237. package/build-module/components/layout/index.js +5 -1
  238. package/build-module/components/layout/index.js.map +1 -1
  239. package/build-module/components/list/added-by.js +13 -8
  240. package/build-module/components/list/added-by.js.map +1 -1
  241. package/build-module/components/list/index.js +2 -1
  242. package/build-module/components/list/index.js.map +1 -1
  243. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  244. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  245. package/build-module/components/page-patterns/duplicate-menu-item.js +5 -5
  246. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  247. package/build-module/components/page-patterns/grid-item.js +5 -5
  248. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  249. package/build-module/components/page-patterns/index.js +1 -1
  250. package/build-module/components/page-patterns/index.js.map +1 -1
  251. package/build-module/components/page-patterns/search-items.js +2 -2
  252. package/build-module/components/page-patterns/search-items.js.map +1 -1
  253. package/build-module/components/page-patterns/use-patterns.js +28 -35
  254. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  255. package/build-module/components/page-template-parts/add-new-template-part.js +3 -2
  256. package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -1
  257. package/build-module/components/page-template-parts/index.js +2 -1
  258. package/build-module/components/page-template-parts/index.js.map +1 -1
  259. package/build-module/components/page-templates/index.js +3 -2
  260. package/build-module/components/page-templates/index.js.map +1 -1
  261. package/build-module/components/save-hub/index.js +2 -1
  262. package/build-module/components/save-hub/index.js.map +1 -1
  263. package/build-module/components/secondary-sidebar/list-view-sidebar.js +26 -19
  264. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  265. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +21 -3
  266. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  267. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +2 -1
  268. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  269. package/build-module/components/sidebar-edit-mode/settings-header/index.js +2 -6
  270. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  271. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  272. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  273. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  274. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  275. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  276. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  277. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  278. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  279. package/build-module/components/sidebar-navigation-screen-page/page-details.js +2 -1
  280. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  281. package/build-module/components/sidebar-navigation-screen-pages/index.js +5 -4
  282. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  283. package/build-module/components/sidebar-navigation-screen-pattern/index.js +2 -1
  284. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  285. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  286. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  287. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  288. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  289. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  290. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  291. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +8 -7
  292. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  293. package/build-module/components/sidebar-navigation-screen-patterns/index.js +4 -4
  294. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  295. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +8 -3
  296. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  297. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  298. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  299. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  300. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  301. package/build-module/components/sidebar-navigation-screen-templates/index.js +4 -3
  302. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  303. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  304. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  305. package/build-module/components/start-template-options/index.js +20 -2
  306. package/build-module/components/start-template-options/index.js.map +1 -1
  307. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  308. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  309. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  310. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  311. package/build-module/components/template-actions/index.js +2 -1
  312. package/build-module/components/template-actions/index.js.map +1 -1
  313. package/build-module/components/template-actions/rename-menu-item.js +8 -3
  314. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  315. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -3
  316. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  317. package/build-module/hooks/navigation-menu-edit.js +2 -1
  318. package/build-module/hooks/navigation-menu-edit.js.map +1 -1
  319. package/build-module/hooks/template-part-edit.js +2 -1
  320. package/build-module/hooks/template-part-edit.js.map +1 -1
  321. package/build-module/store/actions.js +10 -10
  322. package/build-module/store/actions.js.map +1 -1
  323. package/build-module/store/constants.js +0 -4
  324. package/build-module/store/constants.js.map +1 -1
  325. package/build-module/store/private-actions.js +19 -0
  326. package/build-module/store/private-actions.js.map +1 -1
  327. package/build-module/store/private-selectors.js +22 -0
  328. package/build-module/store/private-selectors.js.map +1 -1
  329. package/build-module/store/reducer.js +18 -1
  330. package/build-module/store/reducer.js.map +1 -1
  331. package/build-module/store/selectors.js +3 -3
  332. package/build-module/store/selectors.js.map +1 -1
  333. package/build-module/utils/constants.js +17 -1
  334. package/build-module/utils/constants.js.map +1 -1
  335. package/build-module/utils/is-template-removable.js +2 -2
  336. package/build-module/utils/is-template-removable.js.map +1 -1
  337. package/build-module/utils/is-template-revertable.js +2 -2
  338. package/build-module/utils/is-template-revertable.js.map +1 -1
  339. package/build-module/utils/template-part-create.js +6 -1
  340. package/build-module/utils/template-part-create.js.map +1 -1
  341. package/build-style/style-rtl.css +23 -0
  342. package/build-style/style.css +23 -0
  343. package/package.json +40 -40
  344. package/src/components/add-new-pattern/index.js +3 -3
  345. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +70 -0
  346. package/src/components/block-editor/block-editor-provider/index.js +29 -0
  347. package/src/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  348. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +87 -0
  349. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +77 -0
  350. package/src/components/block-editor/index.js +1 -14
  351. package/src/components/block-editor/site-editor-canvas.js +5 -2
  352. package/src/components/create-template-part-modal/index.js +11 -12
  353. package/src/components/editor/index.js +6 -2
  354. package/src/components/global-styles/font-families.js +5 -1
  355. package/src/components/global-styles/font-family-item.js +2 -2
  356. package/src/components/global-styles/font-library-modal/collection-font-details.js +56 -0
  357. package/src/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  358. package/src/components/global-styles/font-library-modal/context.js +33 -2
  359. package/src/components/global-styles/font-library-modal/font-card.js +9 -4
  360. package/src/components/global-styles/font-library-modal/font-collection.js +257 -0
  361. package/src/components/global-styles/font-library-modal/font-demo.js +36 -10
  362. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +50 -0
  363. package/src/components/global-styles/font-library-modal/index.js +30 -5
  364. package/src/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  365. package/src/components/global-styles/font-library-modal/library-font-card.js +1 -8
  366. package/src/components/global-styles/font-library-modal/library-font-details.js +2 -3
  367. package/src/components/global-styles/font-library-modal/resolvers.js +16 -0
  368. package/src/components/global-styles/font-library-modal/style.scss +26 -0
  369. package/src/components/global-styles/font-library-modal/tab-layout.js +2 -2
  370. package/src/components/global-styles/font-library-modal/utils/constants.js +1 -9
  371. package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +18 -0
  372. package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +21 -0
  373. package/src/components/global-styles/font-library-modal/utils/index.js +9 -69
  374. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +86 -0
  375. package/src/components/global-styles/font-library-modal/utils/sort-font-faces.js +33 -0
  376. package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +69 -0
  377. package/src/components/global-styles/font-library-modal/utils/test/fonts-outline.spec.js +109 -0
  378. package/src/components/global-styles/font-library-modal/utils/test/{getPreviewStyle.spec.js → preview-styles.spec.js} +49 -9
  379. package/src/components/global-styles/font-library-modal/utils/test/sort-font-faces.js +74 -0
  380. package/src/components/global-styles/screen-typography.js +4 -1
  381. package/src/components/header-edit-mode/document-actions/index.js +17 -8
  382. package/src/components/header-edit-mode/index.js +2 -1
  383. package/src/components/layout/index.js +10 -1
  384. package/src/components/list/added-by.js +29 -11
  385. package/src/components/list/index.js +7 -1
  386. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -8
  387. package/src/components/page-patterns/duplicate-menu-item.js +5 -5
  388. package/src/components/page-patterns/grid-item.js +5 -5
  389. package/src/components/page-patterns/index.js +1 -1
  390. package/src/components/page-patterns/search-items.js +7 -1
  391. package/src/components/page-patterns/use-patterns.js +190 -134
  392. package/src/components/page-template-parts/add-new-template-part.js +5 -2
  393. package/src/components/page-template-parts/index.js +2 -1
  394. package/src/components/page-templates/index.js +3 -2
  395. package/src/components/save-hub/index.js +2 -1
  396. package/src/components/secondary-sidebar/list-view-sidebar.js +31 -26
  397. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +48 -20
  398. package/src/components/sidebar-edit-mode/page-panels/hooks.js +9 -4
  399. package/src/components/sidebar-edit-mode/page-panels/style.scss +6 -0
  400. package/src/components/sidebar-edit-mode/settings-header/index.js +4 -7
  401. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  402. package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  403. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  404. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  405. package/src/components/sidebar-navigation-screen-page/page-details.js +2 -1
  406. package/src/components/sidebar-navigation-screen-pages/index.js +5 -4
  407. package/src/components/sidebar-navigation-screen-pattern/index.js +2 -1
  408. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +8 -2
  409. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +7 -1
  410. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  411. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +18 -8
  412. package/src/components/sidebar-navigation-screen-patterns/index.js +8 -4
  413. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +16 -3
  414. package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +12 -2
  415. package/src/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  416. package/src/components/sidebar-navigation-screen-templates/index.js +4 -3
  417. package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -2
  418. package/src/components/start-template-options/index.js +39 -2
  419. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -4
  420. package/src/components/sync-state-with-url/use-sync-path-with-url.js +8 -3
  421. package/src/components/template-actions/index.js +2 -1
  422. package/src/components/template-actions/rename-menu-item.js +8 -3
  423. package/src/hooks/commands/use-edit-mode-commands.js +4 -3
  424. package/src/hooks/navigation-menu-edit.js +2 -1
  425. package/src/hooks/template-part-edit.js +2 -1
  426. package/src/store/actions.js +18 -10
  427. package/src/store/constants.js +0 -5
  428. package/src/store/private-actions.js +19 -0
  429. package/src/store/private-selectors.js +22 -0
  430. package/src/store/reducer.js +18 -0
  431. package/src/store/selectors.js +6 -3
  432. package/src/store/test/reducer.js +18 -0
  433. package/src/utils/constants.js +17 -1
  434. package/src/utils/is-template-removable.js +2 -2
  435. package/src/utils/is-template-revertable.js +2 -2
  436. package/src/utils/template-part-create.js +6 -1
  437. package/build/components/block-editor/get-block-editor-provider.js +0 -35
  438. package/build/components/block-editor/get-block-editor-provider.js.map +0 -1
  439. package/build/components/block-editor/providers/default-block-editor-provider.js +0 -49
  440. package/build/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  441. package/build/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  442. package/build-module/components/block-editor/get-block-editor-provider.js +0 -28
  443. package/build-module/components/block-editor/get-block-editor-provider.js.map +0 -1
  444. package/build-module/components/block-editor/providers/default-block-editor-provider.js +0 -41
  445. package/build-module/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  446. package/build-module/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  447. package/src/components/block-editor/get-block-editor-provider.js +0 -29
  448. package/src/components/block-editor/providers/default-block-editor-provider.js +0 -44
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","isTemplateRevertable","template","source","TEMPLATE_CUSTOM_SOURCE","has_theme_file"],"sources":["@wordpress/edit-site/src/utils/is-template-revertable.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { TEMPLATE_CUSTOM_SOURCE } from './constants';\n\n/**\n * Check if a template is revertable to its original theme-provided template file.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is revertable.\n */\nexport default function isTemplateRevertable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t/* eslint-disable camelcase */\n\treturn (\n\t\ttemplate?.source === TEMPLATE_CUSTOM_SOURCE && template?.has_theme_file\n\t);\n\t/* eslint-enable camelcase */\n}\n"],"mappings":";;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,oBAAoBA,CAAEC,QAAQ,EAAG;EACxD,IAAK,CAAEA,QAAQ,EAAG;IACjB,OAAO,KAAK;EACb;EACA;EACA,OACCA,QAAQ,EAAEC,MAAM,KAAKC,iCAAsB,IAAIF,QAAQ,EAAEG,cAAc;EAExE;AACD"}
1
+ {"version":3,"names":["_constants","require","isTemplateRevertable","template","source","TEMPLATE_ORIGINS","custom","has_theme_file"],"sources":["@wordpress/edit-site/src/utils/is-template-revertable.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { TEMPLATE_ORIGINS } from './constants';\n\n/**\n * Check if a template is revertable to its original theme-provided template file.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is revertable.\n */\nexport default function isTemplateRevertable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t/* eslint-disable camelcase */\n\treturn (\n\t\ttemplate?.source === TEMPLATE_ORIGINS.custom && template?.has_theme_file\n\t);\n\t/* eslint-enable camelcase */\n}\n"],"mappings":";;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,oBAAoBA,CAAEC,QAAQ,EAAG;EACxD,IAAK,CAAEA,QAAQ,EAAG;IACjB,OAAO,KAAK;EACb;EACA;EACA,OACCA,QAAQ,EAAEC,MAAM,KAAKC,2BAAgB,CAACC,MAAM,IAAIH,QAAQ,EAAEI,cAAc;EAEzE;AACD"}
@@ -7,6 +7,7 @@ exports.useExistingTemplateParts = exports.getUniqueTemplatePartTitle = exports.
7
7
  var _changeCase = require("change-case");
8
8
  var _data = require("@wordpress/data");
9
9
  var _coreData = require("@wordpress/core-data");
10
+ var _constants = require("./constants");
10
11
  /**
11
12
  * External dependencies
12
13
  */
@@ -15,8 +16,12 @@ var _coreData = require("@wordpress/core-data");
15
16
  * WordPress dependencies
16
17
  */
17
18
 
19
+ /**
20
+ * Internal dependencies
21
+ */
22
+
18
23
  const useExistingTemplateParts = () => {
19
- return (0, _data.useSelect)(select => select(_coreData.store).getEntityRecords('postType', 'wp_template_part', {
24
+ return (0, _data.useSelect)(select => select(_coreData.store).getEntityRecords('postType', _constants.TEMPLATE_PART_POST_TYPE, {
20
25
  per_page: -1
21
26
  }), []);
22
27
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_changeCase","require","_data","_coreData","useExistingTemplateParts","useSelect","select","coreStore","getEntityRecords","per_page","exports","getUniqueTemplatePartTitle","title","templateParts","lowercaseTitle","toLowerCase","existingTitles","map","templatePart","rendered","includes","suffix","getCleanTemplatePartSlug","kebabCase","replace"],"sources":["@wordpress/edit-site/src/utils/template-part-create.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport const useExistingTemplateParts = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\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\n/**\n * Return a unique template part title based on\n * the given title and existing template parts.\n *\n * @param {string} title The original template part title.\n * @param {Object} templateParts The array of template part entities.\n * @return {string} A unique template part title.\n */\nexport const getUniqueTemplatePartTitle = ( title, templateParts ) => {\n\tconst lowercaseTitle = title.toLowerCase();\n\tconst existingTitles = templateParts.map( ( templatePart ) =>\n\t\ttemplatePart.title.rendered.toLowerCase()\n\t);\n\n\tif ( ! existingTitles.includes( lowercaseTitle ) ) {\n\t\treturn title;\n\t}\n\n\tlet suffix = 2;\n\twhile ( existingTitles.includes( `${ lowercaseTitle } ${ suffix }` ) ) {\n\t\tsuffix++;\n\t}\n\n\treturn `${ title } ${ suffix }`;\n};\n\n/**\n * Get a valid slug for a template part.\n * Currently template parts only allow latin chars.\n * The fallback slug will receive suffix by default.\n *\n * @param {string} title The template part title.\n * @return {string} A valid template part slug.\n */\nexport const getCleanTemplatePartSlug = ( title ) => {\n\treturn kebabCase( title ).replace( /[^\\w-]+/g, '' ) || 'wp-custom-part';\n};\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIO,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;EAC7C,OAAO,IAAAC,eAAS,EACbC,MAAM,IACPA,MAAM,CAAEC,eAAU,CAAC,CAACC,gBAAgB,CACnC,UAAU,EACV,kBAAkB,EAClB;IACCC,QAAQ,EAAE,CAAC;EACZ,CACD,CAAC,EACF,EACD,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAC,OAAA,CAAAN,wBAAA,GAAAA,wBAAA;AAQO,MAAMO,0BAA0B,GAAGA,CAAEC,KAAK,EAAEC,aAAa,KAAM;EACrE,MAAMC,cAAc,GAAGF,KAAK,CAACG,WAAW,CAAC,CAAC;EAC1C,MAAMC,cAAc,GAAGH,aAAa,CAACI,GAAG,CAAIC,YAAY,IACvDA,YAAY,CAACN,KAAK,CAACO,QAAQ,CAACJ,WAAW,CAAC,CACzC,CAAC;EAED,IAAK,CAAEC,cAAc,CAACI,QAAQ,CAAEN,cAAe,CAAC,EAAG;IAClD,OAAOF,KAAK;EACb;EAEA,IAAIS,MAAM,GAAG,CAAC;EACd,OAAQL,cAAc,CAACI,QAAQ,CAAG,GAAGN,cAAgB,IAAIO,MAAQ,EAAE,CAAC,EAAG;IACtEA,MAAM,EAAE;EACT;EAEA,OAAQ,GAAGT,KAAO,IAAIS,MAAQ,EAAC;AAChC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAX,OAAA,CAAAC,0BAAA,GAAAA,0BAAA;AAQO,MAAMW,wBAAwB,GAAKV,KAAK,IAAM;EACpD,OAAO,IAAAW,qBAAS,EAAEX,KAAM,CAAC,CAACY,OAAO,CAAE,UAAU,EAAE,EAAG,CAAC,IAAI,gBAAgB;AACxE,CAAC;AAACd,OAAA,CAAAY,wBAAA,GAAAA,wBAAA"}
1
+ {"version":3,"names":["_changeCase","require","_data","_coreData","_constants","useExistingTemplateParts","useSelect","select","coreStore","getEntityRecords","TEMPLATE_PART_POST_TYPE","per_page","exports","getUniqueTemplatePartTitle","title","templateParts","lowercaseTitle","toLowerCase","existingTitles","map","templatePart","rendered","includes","suffix","getCleanTemplatePartSlug","kebabCase","replace"],"sources":["@wordpress/edit-site/src/utils/template-part-create.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE } from './constants';\n\nexport const useExistingTemplateParts = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_PART_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\n/**\n * Return a unique template part title based on\n * the given title and existing template parts.\n *\n * @param {string} title The original template part title.\n * @param {Object} templateParts The array of template part entities.\n * @return {string} A unique template part title.\n */\nexport const getUniqueTemplatePartTitle = ( title, templateParts ) => {\n\tconst lowercaseTitle = title.toLowerCase();\n\tconst existingTitles = templateParts.map( ( templatePart ) =>\n\t\ttemplatePart.title.rendered.toLowerCase()\n\t);\n\n\tif ( ! existingTitles.includes( lowercaseTitle ) ) {\n\t\treturn title;\n\t}\n\n\tlet suffix = 2;\n\twhile ( existingTitles.includes( `${ lowercaseTitle } ${ suffix }` ) ) {\n\t\tsuffix++;\n\t}\n\n\treturn `${ title } ${ suffix }`;\n};\n\n/**\n * Get a valid slug for a template part.\n * Currently template parts only allow latin chars.\n * The fallback slug will receive suffix by default.\n *\n * @param {string} title The template part title.\n * @return {string} A valid template part slug.\n */\nexport const getCleanTemplatePartSlug = ( title ) => {\n\treturn kebabCase( title ).replace( /[^\\w-]+/g, '' ) || 'wp-custom-part';\n};\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAKA,IAAAG,UAAA,GAAAH,OAAA;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAGO,MAAMI,wBAAwB,GAAGA,CAAA,KAAM;EAC7C,OAAO,IAAAC,eAAS,EACbC,MAAM,IACPA,MAAM,CAAEC,eAAU,CAAC,CAACC,gBAAgB,CACnC,UAAU,EACVC,kCAAuB,EACvB;IACCC,QAAQ,EAAE,CAAC;EACZ,CACD,CAAC,EACF,EACD,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAC,OAAA,CAAAP,wBAAA,GAAAA,wBAAA;AAQO,MAAMQ,0BAA0B,GAAGA,CAAEC,KAAK,EAAEC,aAAa,KAAM;EACrE,MAAMC,cAAc,GAAGF,KAAK,CAACG,WAAW,CAAC,CAAC;EAC1C,MAAMC,cAAc,GAAGH,aAAa,CAACI,GAAG,CAAIC,YAAY,IACvDA,YAAY,CAACN,KAAK,CAACO,QAAQ,CAACJ,WAAW,CAAC,CACzC,CAAC;EAED,IAAK,CAAEC,cAAc,CAACI,QAAQ,CAAEN,cAAe,CAAC,EAAG;IAClD,OAAOF,KAAK;EACb;EAEA,IAAIS,MAAM,GAAG,CAAC;EACd,OAAQL,cAAc,CAACI,QAAQ,CAAG,GAAGN,cAAgB,IAAIO,MAAQ,EAAE,CAAC,EAAG;IACtEA,MAAM,EAAE;EACT;EAEA,OAAQ,GAAGT,KAAO,IAAIS,MAAQ,EAAC;AAChC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAX,OAAA,CAAAC,0BAAA,GAAAA,0BAAA;AAQO,MAAMW,wBAAwB,GAAKV,KAAK,IAAM;EACpD,OAAO,IAAAW,qBAAS,EAAEX,KAAM,CAAC,CAACY,OAAO,CAAE,UAAU,EAAE,EAAG,CAAC,IAAI,gBAAgB;AACxE,CAAC;AAACd,OAAA,CAAAY,wBAAA,GAAAA,wBAAA"}
@@ -56,8 +56,8 @@ export default function AddNewPattern() {
56
56
  setShowPatternModal(false);
57
57
  history.push({
58
58
  postId: pattern.id,
59
- postType: 'wp_block',
60
- categoryType: 'wp_block',
59
+ postType: PATTERN_TYPES.user,
60
+ categoryType: PATTERN_TYPES.user,
61
61
  categoryId,
62
62
  canvas: 'edit'
63
63
  });
@@ -68,7 +68,7 @@ export default function AddNewPattern() {
68
68
  // Navigate to the created template part editor.
69
69
  history.push({
70
70
  postId: templatePart.id,
71
- postType: 'wp_template_part',
71
+ postType: TEMPLATE_PART_POST_TYPE,
72
72
  canvas: 'edit'
73
73
  });
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"names":["DropdownMenu","useState","useRef","__","sprintf","plus","symbol","symbolFilled","useSelect","useDispatch","privateApis","routerPrivateApis","editPatternsPrivateApis","store","patternsStore","noticesStore","CreateTemplatePartModal","SidebarButton","unlock","editSiteStore","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","TEMPLATE_PART_POST_TYPE","usePatternCategories","useHistory","useLocation","CreatePatternModal","AddNewPattern","history","params","showPatternModal","setShowPatternModal","showTemplatePartModal","setShowTemplatePartModal","isTemplatePartsMode","select","settings","getSettings","supportsTemplatePartsMode","createPatternFromFile","createSuccessNotice","createErrorNotice","patternUploadInputRef","patternCategories","handleCreatePattern","pattern","categoryId","push","postId","id","postType","categoryType","canvas","handleCreateTemplatePart","templatePart","handleError","controls","icon","onClick","title","current","click","createElement","Fragment","toggleProps","as","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","currentCategoryId","find","category","name","undefined","path","theme","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { plus, symbol, symbolFilled } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport SidebarButton from '../sidebar-button';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal } = unlock( editPatternsPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\tconst settings = select( editSiteStore ).getSettings();\n\t\treturn !! settings.supportsTemplatePartsMode;\n\t}, [] );\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst { patternCategories } = usePatternCategories();\n\n\tfunction handleCreatePattern( { pattern, categoryId } ) {\n\t\tsetShowPatternModal( false );\n\n\t\thistory.push( {\n\t\t\tpostId: pattern.id,\n\t\t\tpostType: 'wp_block',\n\t\t\tcategoryType: 'wp_block',\n\t\t\tcategoryId,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\n\t\t// Navigate to the created template part editor.\n\t\thistory.push( {\n\t\t\tpostId: templatePart.id,\n\t\t\tpostType: 'wp_template_part',\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [\n\t\t{\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: __( 'Create pattern' ),\n\t\t},\n\t];\n\n\t// Remove condition when command palette issues are resolved.\n\t// See: https://github.com/WordPress/gutenberg/issues/52154.\n\tif ( ! isTemplatePartsMode ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: __( 'Create template part' ),\n\t\t} );\n\t}\n\n\tcontrols.push( {\n\t\ticon: symbol,\n\t\tonClick: () => {\n\t\t\tpatternUploadInputRef.current.click();\n\t\t},\n\t\ttitle: __( 'Import pattern from JSON' ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\tcontrols={ controls }\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tas: SidebarButton,\n\t\t\t\t} }\n\t\t\t\ticon={ plus }\n\t\t\t\tlabel={ __( 'Create pattern' ) }\n\t\t\t/>\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) return;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst currentCategoryId =\n\t\t\t\t\t\t\tparams.categoryType !== TEMPLATE_PART_POST_TYPE &&\n\t\t\t\t\t\t\tpatternCategories.find(\n\t\t\t\t\t\t\t\t( category ) =>\n\t\t\t\t\t\t\t\t\tcategory.name === params.categoryId\n\t\t\t\t\t\t\t)?.id;\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already.\n\t\t\t\t\t\tif ( ! currentCategoryId ) {\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpath: `/patterns`,\n\t\t\t\t\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\t\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["DropdownMenu","useState","useRef","__","sprintf","plus","symbol","symbolFilled","useSelect","useDispatch","privateApis","routerPrivateApis","editPatternsPrivateApis","store","patternsStore","noticesStore","CreateTemplatePartModal","SidebarButton","unlock","editSiteStore","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","TEMPLATE_PART_POST_TYPE","usePatternCategories","useHistory","useLocation","CreatePatternModal","AddNewPattern","history","params","showPatternModal","setShowPatternModal","showTemplatePartModal","setShowTemplatePartModal","isTemplatePartsMode","select","settings","getSettings","supportsTemplatePartsMode","createPatternFromFile","createSuccessNotice","createErrorNotice","patternUploadInputRef","patternCategories","handleCreatePattern","pattern","categoryId","push","postId","id","postType","user","categoryType","canvas","handleCreateTemplatePart","templatePart","handleError","controls","icon","onClick","title","current","click","createElement","Fragment","toggleProps","as","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","currentCategoryId","find","category","name","undefined","path","theme","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { plus, symbol, symbolFilled } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport SidebarButton from '../sidebar-button';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal } = unlock( editPatternsPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\tconst settings = select( editSiteStore ).getSettings();\n\t\treturn !! settings.supportsTemplatePartsMode;\n\t}, [] );\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst { patternCategories } = usePatternCategories();\n\n\tfunction handleCreatePattern( { pattern, categoryId } ) {\n\t\tsetShowPatternModal( false );\n\n\t\thistory.push( {\n\t\t\tpostId: pattern.id,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tcategoryType: PATTERN_TYPES.user,\n\t\t\tcategoryId,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\n\t\t// Navigate to the created template part editor.\n\t\thistory.push( {\n\t\t\tpostId: templatePart.id,\n\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [\n\t\t{\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: __( 'Create pattern' ),\n\t\t},\n\t];\n\n\t// Remove condition when command palette issues are resolved.\n\t// See: https://github.com/WordPress/gutenberg/issues/52154.\n\tif ( ! isTemplatePartsMode ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: __( 'Create template part' ),\n\t\t} );\n\t}\n\n\tcontrols.push( {\n\t\ticon: symbol,\n\t\tonClick: () => {\n\t\t\tpatternUploadInputRef.current.click();\n\t\t},\n\t\ttitle: __( 'Import pattern from JSON' ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\tcontrols={ controls }\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tas: SidebarButton,\n\t\t\t\t} }\n\t\t\t\ticon={ plus }\n\t\t\t\tlabel={ __( 'Create pattern' ) }\n\t\t\t/>\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) return;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst currentCategoryId =\n\t\t\t\t\t\t\tparams.categoryType !== TEMPLATE_PART_POST_TYPE &&\n\t\t\t\t\t\t\tpatternCategories.find(\n\t\t\t\t\t\t\t\t( category ) =>\n\t\t\t\t\t\t\t\t\tcategory.name === params.categoryId\n\t\t\t\t\t\t\t)?.id;\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already.\n\t\t\t\t\t\tif ( ! currentCategoryId ) {\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpath: `/patterns`,\n\t\t\t\t\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\t\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { createElement } from "@wordpress/element";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { useEntityBlockEditor } from '@wordpress/core-data';
6
+ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
7
+ import { useSelect } from '@wordpress/data';
8
+
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import { store as editSiteStore } from '../../../store';
13
+ import { unlock } from '../../../lock-unlock';
14
+ import useSiteEditorSettings from '../use-site-editor-settings';
15
+ import usePageContentBlocks from './use-page-content-blocks';
16
+ const {
17
+ ExperimentalBlockEditorProvider
18
+ } = unlock(blockEditorPrivateApis);
19
+ const noop = () => {};
20
+
21
+ /**
22
+ * The default block editor provider for the site editor. Typically used when
23
+ * the post type is `'wp_template_part'` or `'wp_template'` and allows editing
24
+ * of the template and its nested entities.
25
+ *
26
+ * If the page content focus type is `'hideTemplate'`, the provider will provide
27
+ * a set of page content blocks wrapped in a container that, together,
28
+ * mimic the look and feel of the post editor and
29
+ * allow editing of the page content only.
30
+ *
31
+ * @param {Object} props
32
+ * @param {WPElement} props.children
33
+ */
34
+ export default function DefaultBlockEditorProvider({
35
+ children
36
+ }) {
37
+ const settings = useSiteEditorSettings();
38
+ const {
39
+ templateType,
40
+ isTemplateHidden
41
+ } = useSelect(select => {
42
+ const {
43
+ getEditedPostType
44
+ } = select(editSiteStore);
45
+ const {
46
+ getPageContentFocusType,
47
+ getCanvasMode
48
+ } = unlock(select(editSiteStore));
49
+ return {
50
+ templateType: getEditedPostType(),
51
+ isTemplateHidden: getCanvasMode() === 'edit' && getPageContentFocusType() === 'hideTemplate',
52
+ canvasMode: unlock(select(editSiteStore)).getCanvasMode()
53
+ };
54
+ }, []);
55
+ const [blocks, onInput, onChange] = useEntityBlockEditor('postType', templateType);
56
+ const pageContentBlock = usePageContentBlocks(blocks, isTemplateHidden);
57
+ return createElement(ExperimentalBlockEditorProvider, {
58
+ settings: settings,
59
+ value: isTemplateHidden && pageContentBlock.length ? pageContentBlock : blocks,
60
+ onInput: isTemplateHidden ? noop : onInput,
61
+ onChange: isTemplateHidden ? noop : onChange,
62
+ useSubRegistry: false
63
+ }, children);
64
+ }
65
+ //# sourceMappingURL=default-block-editor-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEntityBlockEditor","privateApis","blockEditorPrivateApis","useSelect","store","editSiteStore","unlock","useSiteEditorSettings","usePageContentBlocks","ExperimentalBlockEditorProvider","noop","DefaultBlockEditorProvider","children","settings","templateType","isTemplateHidden","select","getEditedPostType","getPageContentFocusType","getCanvasMode","canvasMode","blocks","onInput","onChange","pageContentBlock","createElement","value","length","useSubRegistry"],"sources":["@wordpress/edit-site/src/components/block-editor/block-editor-provider/default-block-editor-provider.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\nimport useSiteEditorSettings from '../use-site-editor-settings';\nimport usePageContentBlocks from './use-page-content-blocks';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nconst noop = () => {};\n\n/**\n * The default block editor provider for the site editor. Typically used when\n * the post type is `'wp_template_part'` or `'wp_template'` and allows editing\n * of the template and its nested entities.\n *\n * If the page content focus type is `'hideTemplate'`, the provider will provide\n * a set of page content blocks wrapped in a container that, together,\n * mimic the look and feel of the post editor and\n * allow editing of the page content only.\n *\n * @param {Object} props\n * @param {WPElement} props.children\n */\nexport default function DefaultBlockEditorProvider( { children } ) {\n\tconst settings = useSiteEditorSettings();\n\n\tconst { templateType, isTemplateHidden } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType } = select( editSiteStore );\n\t\tconst { getPageContentFocusType, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\treturn {\n\t\t\ttemplateType: getEditedPostType(),\n\t\t\tisTemplateHidden:\n\t\t\t\tgetCanvasMode() === 'edit' &&\n\t\t\t\tgetPageContentFocusType() === 'hideTemplate',\n\t\t\tcanvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t};\n\t}, [] );\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\ttemplateType\n\t);\n\tconst pageContentBlock = usePageContentBlocks( blocks, isTemplateHidden );\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tsettings={ settings }\n\t\t\tvalue={\n\t\t\t\tisTemplateHidden && pageContentBlock.length\n\t\t\t\t\t? pageContentBlock\n\t\t\t\t\t: blocks\n\t\t\t}\n\t\t\tonInput={ isTemplateHidden ? noop : onInput }\n\t\t\tonChange={ isTemplateHidden ? noop : onChange }\n\t\t\tuseSubRegistry={ false }\n\t\t>\n\t\t\t{ children }\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,oBAAoB,QAAQ,sBAAsB;AAC3D,SAASC,WAAW,IAAIC,sBAAsB,QAAQ,yBAAyB;AAC/E,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,aAAa,QAAQ,gBAAgB;AACvD,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,OAAOC,qBAAqB,MAAM,6BAA6B;AAC/D,OAAOC,oBAAoB,MAAM,2BAA2B;AAE5D,MAAM;EAAEC;AAAgC,CAAC,GAAGH,MAAM,CAAEJ,sBAAuB,CAAC;AAE5E,MAAMQ,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,0BAA0BA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAClE,MAAMC,QAAQ,GAAGN,qBAAqB,CAAC,CAAC;EAExC,MAAM;IAAEO,YAAY;IAAEC;EAAiB,CAAC,GAAGZ,SAAS,CAAIa,MAAM,IAAM;IACnE,MAAM;MAAEC;IAAkB,CAAC,GAAGD,MAAM,CAAEX,aAAc,CAAC;IACrD,MAAM;MAAEa,uBAAuB;MAAEC;IAAc,CAAC,GAAGb,MAAM,CACxDU,MAAM,CAAEX,aAAc,CACvB,CAAC;IACD,OAAO;MACNS,YAAY,EAAEG,iBAAiB,CAAC,CAAC;MACjCF,gBAAgB,EACfI,aAAa,CAAC,CAAC,KAAK,MAAM,IAC1BD,uBAAuB,CAAC,CAAC,KAAK,cAAc;MAC7CE,UAAU,EAAEd,MAAM,CAAEU,MAAM,CAAEX,aAAc,CAAE,CAAC,CAACc,aAAa,CAAC;IAC7D,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM,CAAEE,MAAM,EAAEC,OAAO,EAAEC,QAAQ,CAAE,GAAGvB,oBAAoB,CACzD,UAAU,EACVc,YACD,CAAC;EACD,MAAMU,gBAAgB,GAAGhB,oBAAoB,CAAEa,MAAM,EAAEN,gBAAiB,CAAC;EACzE,OACCU,aAAA,CAAChB,+BAA+B;IAC/BI,QAAQ,EAAGA,QAAU;IACrBa,KAAK,EACJX,gBAAgB,IAAIS,gBAAgB,CAACG,MAAM,GACxCH,gBAAgB,GAChBH,MACH;IACDC,OAAO,EAAGP,gBAAgB,GAAGL,IAAI,GAAGY,OAAS;IAC7CC,QAAQ,EAAGR,gBAAgB,GAAGL,IAAI,GAAGa,QAAU;IAC/CK,cAAc,EAAG;EAAO,GAEtBhB,QAC8B,CAAC;AAEpC"}
@@ -0,0 +1,23 @@
1
+ import { createElement } from "@wordpress/element";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { useSelect } from '@wordpress/data';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { store as editSiteStore } from '../../../store';
11
+ import DefaultBlockEditorProvider from './default-block-editor-provider';
12
+ import NavigationBlockEditorProvider from './navigation-block-editor-provider';
13
+ import { NAVIGATION_POST_TYPE } from '../../../utils/constants';
14
+ export default function BlockEditorProvider({
15
+ children
16
+ }) {
17
+ const entityType = useSelect(select => select(editSiteStore).getEditedPostType(), []);
18
+ if (entityType === NAVIGATION_POST_TYPE) {
19
+ return createElement(NavigationBlockEditorProvider, null, children);
20
+ }
21
+ return createElement(DefaultBlockEditorProvider, null, children);
22
+ }
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSelect","store","editSiteStore","DefaultBlockEditorProvider","NavigationBlockEditorProvider","NAVIGATION_POST_TYPE","BlockEditorProvider","children","entityType","select","getEditedPostType","createElement"],"sources":["@wordpress/edit-site/src/components/block-editor/block-editor-provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport DefaultBlockEditorProvider from './default-block-editor-provider';\nimport NavigationBlockEditorProvider from './navigation-block-editor-provider';\nimport { NAVIGATION_POST_TYPE } from '../../../utils/constants';\n\nexport default function BlockEditorProvider( { children } ) {\n\tconst entityType = useSelect(\n\t\t( select ) => select( editSiteStore ).getEditedPostType(),\n\t\t[]\n\t);\n\tif ( entityType === NAVIGATION_POST_TYPE ) {\n\t\treturn (\n\t\t\t<NavigationBlockEditorProvider>\n\t\t\t\t{ children }\n\t\t\t</NavigationBlockEditorProvider>\n\t\t);\n\t}\n\treturn (\n\t\t<DefaultBlockEditorProvider>{ children }</DefaultBlockEditorProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,aAAa,QAAQ,gBAAgB;AACvD,OAAOC,0BAA0B,MAAM,iCAAiC;AACxE,OAAOC,6BAA6B,MAAM,oCAAoC;AAC9E,SAASC,oBAAoB,QAAQ,0BAA0B;AAE/D,eAAe,SAASC,mBAAmBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC3D,MAAMC,UAAU,GAAGR,SAAS,CACzBS,MAAM,IAAMA,MAAM,CAAEP,aAAc,CAAC,CAACQ,iBAAiB,CAAC,CAAC,EACzD,EACD,CAAC;EACD,IAAKF,UAAU,KAAKH,oBAAoB,EAAG;IAC1C,OACCM,aAAA,CAACP,6BAA6B,QAC3BG,QAC4B,CAAC;EAElC;EACA,OACCI,aAAA,CAACR,0BAA0B,QAAGI,QAAsC,CAAC;AAEvE"}
@@ -14,6 +14,7 @@ import { createBlock } from '@wordpress/blocks';
14
14
  import { unlock } from '../../../lock-unlock';
15
15
  import useSiteEditorSettings from '../use-site-editor-settings';
16
16
  import { store as editSiteStore } from '../../../store';
17
+ import { NAVIGATION_POST_TYPE } from '../../../utils/constants';
17
18
  const {
18
19
  ExperimentalBlockEditorProvider
19
20
  } = unlock(blockEditorPrivateApis);
@@ -36,7 +37,7 @@ export default function NavigationBlockEditorProvider({
36
37
  children
37
38
  }) {
38
39
  const defaultSettings = useSiteEditorSettings();
39
- const navigationMenuId = useEntityId('postType', 'wp_navigation');
40
+ const navigationMenuId = useEntityId('postType', NAVIGATION_POST_TYPE);
40
41
  const blocks = useMemo(() => {
41
42
  return [createBlock('core/navigation', {
42
43
  ref: navigationMenuId,
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSelect","useDispatch","useMemo","useEffect","useEntityId","store","blockEditorStore","privateApis","blockEditorPrivateApis","createBlock","unlock","useSiteEditorSettings","editSiteStore","NAVIGATION_POST_TYPE","ExperimentalBlockEditorProvider","noop","NavigationBlockEditorProvider","children","defaultSettings","navigationMenuId","blocks","ref","templateLock","isEditMode","select","getCanvasMode","selectBlock","setBlockEditingMode","unsetBlockEditingMode","navigationBlockClientId","clientId","settings","template","createElement","value","onInput","onChange","useSubRegistry"],"sources":["@wordpress/edit-site/src/components/block-editor/block-editor-provider/navigation-block-editor-provider.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useEffect } from '@wordpress/element';\nimport { useEntityId } from '@wordpress/core-data';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nimport useSiteEditorSettings from '../use-site-editor-settings';\nimport { store as editSiteStore } from '../../../store';\nimport { NAVIGATION_POST_TYPE } from '../../../utils/constants';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nconst noop = () => {};\n\n/**\n * Block editor component for editing navigation menus.\n *\n * Note: Navigation entities require a wrapping Navigation block to provide\n * them with some basic layout and styling. Therefore we create a \"ghost\" block\n * and provide it will a reference to the navigation entity ID being edited.\n *\n * In this scenario it is the **block** that handles syncing the entity content\n * whereas for other entities this is handled by entity block editor.\n *\n * @param {number} navigationMenuId the navigation menu ID\n * @return {[WPBlock[], Function, Function]} The block array and setters.\n */\nexport default function NavigationBlockEditorProvider( { children } ) {\n\tconst defaultSettings = useSiteEditorSettings();\n\n\tconst navigationMenuId = useEntityId( 'postType', NAVIGATION_POST_TYPE );\n\n\tconst blocks = useMemo( () => {\n\t\treturn [\n\t\t\tcreateBlock( 'core/navigation', {\n\t\t\t\tref: navigationMenuId,\n\t\t\t\t// As the parent editor is locked with `templateLock`, the template locking\n\t\t\t\t// must be explicitly \"unset\" on the block itself to allow the user to modify\n\t\t\t\t// the block's content.\n\t\t\t\ttemplateLock: false,\n\t\t\t} ),\n\t\t];\n\t}, [ navigationMenuId ] );\n\n\tconst { isEditMode } = useSelect( ( select ) => {\n\t\tconst { getCanvasMode } = unlock( select( editSiteStore ) );\n\n\t\treturn {\n\t\t\tisEditMode: getCanvasMode() === 'edit',\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock, setBlockEditingMode, unsetBlockEditingMode } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst navigationBlockClientId = blocks && blocks[ 0 ]?.clientId;\n\n\tconst settings = useMemo( () => {\n\t\treturn {\n\t\t\t...defaultSettings,\n\t\t\t// Lock the editor to allow the root (\"ghost\") Navigation block only.\n\t\t\ttemplateLock: 'insert',\n\t\t\ttemplate: [ [ 'core/navigation', {}, [] ] ],\n\t\t};\n\t}, [ defaultSettings ] );\n\n\t// Auto-select the Navigation block when entering Navigation focus mode.\n\tuseEffect( () => {\n\t\tif ( navigationBlockClientId && isEditMode ) {\n\t\t\tselectBlock( navigationBlockClientId );\n\t\t}\n\t}, [ navigationBlockClientId, isEditMode, selectBlock ] );\n\n\t// Set block editing mode to contentOnly when entering Navigation focus mode.\n\t// This ensures that non-content controls on the block will be hidden and thus\n\t// the user can focus on editing the Navigation Menu content only.\n\tuseEffect( () => {\n\t\tif ( ! navigationBlockClientId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockEditingMode( navigationBlockClientId, 'contentOnly' );\n\n\t\treturn () => {\n\t\t\tunsetBlockEditingMode( navigationBlockClientId );\n\t\t};\n\t}, [\n\t\tnavigationBlockClientId,\n\t\tunsetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t] );\n\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tsettings={ settings }\n\t\t\tvalue={ blocks }\n\t\t\tonInput={ noop }\n\t\t\tonChange={ noop }\n\t\t\tuseSubRegistry={ false }\n\t\t>\n\t\t\t{ children }\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,OAAO,EAAEC,SAAS,QAAQ,oBAAoB;AACvD,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SACCC,KAAK,IAAIC,gBAAgB,EACzBC,WAAW,IAAIC,sBAAsB,QAC/B,yBAAyB;AAChC,SAASC,WAAW,QAAQ,mBAAmB;;AAE/C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,OAAOC,qBAAqB,MAAM,6BAA6B;AAC/D,SAASN,KAAK,IAAIO,aAAa,QAAQ,gBAAgB;AACvD,SAASC,oBAAoB,QAAQ,0BAA0B;AAE/D,MAAM;EAAEC;AAAgC,CAAC,GAAGJ,MAAM,CAAEF,sBAAuB,CAAC;AAE5E,MAAMO,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,6BAA6BA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACrE,MAAMC,eAAe,GAAGP,qBAAqB,CAAC,CAAC;EAE/C,MAAMQ,gBAAgB,GAAGf,WAAW,CAAE,UAAU,EAAES,oBAAqB,CAAC;EAExE,MAAMO,MAAM,GAAGlB,OAAO,CAAE,MAAM;IAC7B,OAAO,CACNO,WAAW,CAAE,iBAAiB,EAAE;MAC/BY,GAAG,EAAEF,gBAAgB;MACrB;MACA;MACA;MACAG,YAAY,EAAE;IACf,CAAE,CAAC,CACH;EACF,CAAC,EAAE,CAAEH,gBAAgB,CAAG,CAAC;EAEzB,MAAM;IAAEI;EAAW,CAAC,GAAGvB,SAAS,CAAIwB,MAAM,IAAM;IAC/C,MAAM;MAAEC;IAAc,CAAC,GAAGf,MAAM,CAAEc,MAAM,CAAEZ,aAAc,CAAE,CAAC;IAE3D,OAAO;MACNW,UAAU,EAAEE,aAAa,CAAC,CAAC,KAAK;IACjC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM;IAAEC,WAAW;IAAEC,mBAAmB;IAAEC;EAAsB,CAAC,GAChE3B,WAAW,CAAEK,gBAAiB,CAAC;EAEhC,MAAMuB,uBAAuB,GAAGT,MAAM,IAAIA,MAAM,CAAE,CAAC,CAAE,EAAEU,QAAQ;EAE/D,MAAMC,QAAQ,GAAG7B,OAAO,CAAE,MAAM;IAC/B,OAAO;MACN,GAAGgB,eAAe;MAClB;MACAI,YAAY,EAAE,QAAQ;MACtBU,QAAQ,EAAE,CAAE,CAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAE;IAC1C,CAAC;EACF,CAAC,EAAE,CAAEd,eAAe,CAAG,CAAC;;EAExB;EACAf,SAAS,CAAE,MAAM;IAChB,IAAK0B,uBAAuB,IAAIN,UAAU,EAAG;MAC5CG,WAAW,CAAEG,uBAAwB,CAAC;IACvC;EACD,CAAC,EAAE,CAAEA,uBAAuB,EAAEN,UAAU,EAAEG,WAAW,CAAG,CAAC;;EAEzD;EACA;EACA;EACAvB,SAAS,CAAE,MAAM;IAChB,IAAK,CAAE0B,uBAAuB,EAAG;MAChC;IACD;IAEAF,mBAAmB,CAAEE,uBAAuB,EAAE,aAAc,CAAC;IAE7D,OAAO,MAAM;MACZD,qBAAqB,CAAEC,uBAAwB,CAAC;IACjD,CAAC;EACF,CAAC,EAAE,CACFA,uBAAuB,EACvBD,qBAAqB,EACrBD,mBAAmB,CAClB,CAAC;EAEH,OACCM,aAAA,CAACnB,+BAA+B;IAC/BiB,QAAQ,EAAGA,QAAU;IACrBG,KAAK,EAAGd,MAAQ;IAChBe,OAAO,EAAGpB,IAAM;IAChBqB,QAAQ,EAAGrB,IAAM;IACjBsB,cAAc,EAAG;EAAO,GAEtBpB,QAC8B,CAAC;AAEpC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useMemo } from '@wordpress/element';
5
+ import { createBlock } from '@wordpress/blocks';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { PAGE_CONTENT_BLOCK_TYPES } from '../../../utils/constants';
11
+
12
+ /**
13
+ * Helper method to iterate through all blocks, recursing into allowed inner blocks.
14
+ * Returns a flattened object of transformed blocks.
15
+ *
16
+ * @param {Array} blocks Blocks to flatten.
17
+ * @param {Function} transform Transforming function to be applied to each block. If transform returns `undefined`, the block is skipped.
18
+ *
19
+ * @return {Array} Flattened object.
20
+ */
21
+ function flattenBlocks(blocks, transform) {
22
+ const result = [];
23
+ for (let i = 0; i < blocks.length; i++) {
24
+ // Since the Query Block could contain PAGE_CONTENT_BLOCK_TYPES block types,
25
+ // we skip it because we only want to render stand-alone page content blocks in the block list.
26
+ if (['core/query'].includes(blocks[i].name)) {
27
+ continue;
28
+ }
29
+ const transformedBlock = transform(blocks[i]);
30
+ if (transformedBlock) {
31
+ result.push(transformedBlock);
32
+ }
33
+ result.push(...flattenBlocks(blocks[i].innerBlocks, transform));
34
+ }
35
+ return result;
36
+ }
37
+
38
+ /**
39
+ * Returns a memoized array of blocks that contain only page content blocks,
40
+ * surrounded by a group block to mimic the post editor.
41
+ *
42
+ * @param {Array} blocks Block list.
43
+ * @param {boolean} isPageContentFocused Whether the page content has focus. If `true` return page content blocks. Default `false`.
44
+ *
45
+ * @return {Array} Page content blocks.
46
+ */
47
+ export default function usePageContentBlocks(blocks, isPageContentFocused = false) {
48
+ return useMemo(() => {
49
+ if (!isPageContentFocused || !blocks || !blocks.length) {
50
+ return [];
51
+ }
52
+ return [createBlock('core/group', {
53
+ layout: {
54
+ type: 'constrained'
55
+ },
56
+ style: {
57
+ spacing: {
58
+ margin: {
59
+ top: '4em' // Mimics the post editor.
60
+ }
61
+ }
62
+ }
63
+ }, flattenBlocks(blocks, block => {
64
+ if (PAGE_CONTENT_BLOCK_TYPES[block.name]) {
65
+ return createBlock(block.name);
66
+ }
67
+ }))];
68
+ }, [blocks, isPageContentFocused]);
69
+ }
70
+ //# sourceMappingURL=use-page-content-blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","createBlock","PAGE_CONTENT_BLOCK_TYPES","flattenBlocks","blocks","transform","result","i","length","includes","name","transformedBlock","push","innerBlocks","usePageContentBlocks","isPageContentFocused","layout","type","style","spacing","margin","top","block"],"sources":["@wordpress/edit-site/src/components/block-editor/block-editor-provider/use-page-content-blocks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { PAGE_CONTENT_BLOCK_TYPES } from '../../../utils/constants';\n\n/**\n * Helper method to iterate through all blocks, recursing into allowed inner blocks.\n * Returns a flattened object of transformed blocks.\n *\n * @param {Array} blocks Blocks to flatten.\n * @param {Function} transform Transforming function to be applied to each block. If transform returns `undefined`, the block is skipped.\n *\n * @return {Array} Flattened object.\n */\nfunction flattenBlocks( blocks, transform ) {\n\tconst result = [];\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\t// Since the Query Block could contain PAGE_CONTENT_BLOCK_TYPES block types,\n\t\t// we skip it because we only want to render stand-alone page content blocks in the block list.\n\t\tif ( [ 'core/query' ].includes( blocks[ i ].name ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst transformedBlock = transform( blocks[ i ] );\n\t\tif ( transformedBlock ) {\n\t\t\tresult.push( transformedBlock );\n\t\t}\n\t\tresult.push( ...flattenBlocks( blocks[ i ].innerBlocks, transform ) );\n\t}\n\n\treturn result;\n}\n\n/**\n * Returns a memoized array of blocks that contain only page content blocks,\n * surrounded by a group block to mimic the post editor.\n *\n * @param {Array} blocks Block list.\n * @param {boolean} isPageContentFocused Whether the page content has focus. If `true` return page content blocks. Default `false`.\n *\n * @return {Array} Page content blocks.\n */\nexport default function usePageContentBlocks(\n\tblocks,\n\tisPageContentFocused = false\n) {\n\treturn useMemo( () => {\n\t\tif ( ! isPageContentFocused || ! blocks || ! blocks.length ) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [\n\t\t\tcreateBlock(\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: { type: 'constrained' },\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\t\ttop: '4em', // Mimics the post editor.\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\tflattenBlocks( blocks, ( block ) => {\n\t\t\t\t\tif ( PAGE_CONTENT_BLOCK_TYPES[ block.name ] ) {\n\t\t\t\t\t\treturn createBlock( block.name );\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t),\n\t\t];\n\t}, [ blocks, isPageContentFocused ] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,WAAW,QAAQ,mBAAmB;;AAE/C;AACA;AACA;AACA,SAASC,wBAAwB,QAAQ,0BAA0B;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAAEC,MAAM,EAAEC,SAAS,EAAG;EAC3C,MAAMC,MAAM,GAAG,EAAE;EACjB,KAAM,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,MAAM,CAACI,MAAM,EAAED,CAAC,EAAE,EAAG;IACzC;IACA;IACA,IAAK,CAAE,YAAY,CAAE,CAACE,QAAQ,CAAEL,MAAM,CAAEG,CAAC,CAAE,CAACG,IAAK,CAAC,EAAG;MACpD;IACD;IACA,MAAMC,gBAAgB,GAAGN,SAAS,CAAED,MAAM,CAAEG,CAAC,CAAG,CAAC;IACjD,IAAKI,gBAAgB,EAAG;MACvBL,MAAM,CAACM,IAAI,CAAED,gBAAiB,CAAC;IAChC;IACAL,MAAM,CAACM,IAAI,CAAE,GAAGT,aAAa,CAAEC,MAAM,CAAEG,CAAC,CAAE,CAACM,WAAW,EAAER,SAAU,CAAE,CAAC;EACtE;EAEA,OAAOC,MAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASQ,oBAAoBA,CAC3CV,MAAM,EACNW,oBAAoB,GAAG,KAAK,EAC3B;EACD,OAAOf,OAAO,CAAE,MAAM;IACrB,IAAK,CAAEe,oBAAoB,IAAI,CAAEX,MAAM,IAAI,CAAEA,MAAM,CAACI,MAAM,EAAG;MAC5D,OAAO,EAAE;IACV;IACA,OAAO,CACNP,WAAW,CACV,YAAY,EACZ;MACCe,MAAM,EAAE;QAAEC,IAAI,EAAE;MAAc,CAAC;MAC/BC,KAAK,EAAE;QACNC,OAAO,EAAE;UACRC,MAAM,EAAE;YACPC,GAAG,EAAE,KAAK,CAAE;UACb;QACD;MACD;IACD,CAAC,EACDlB,aAAa,CAAEC,MAAM,EAAIkB,KAAK,IAAM;MACnC,IAAKpB,wBAAwB,CAAEoB,KAAK,CAACZ,IAAI,CAAE,EAAG;QAC7C,OAAOT,WAAW,CAAEqB,KAAK,CAACZ,IAAK,CAAC;MACjC;IACD,CAAE,CACH,CAAC,CACD;EACF,CAAC,EAAE,CAAEN,MAAM,EAAEW,oBAAoB,CAAG,CAAC;AACtC"}
@@ -2,7 +2,6 @@ import { createElement } from "@wordpress/element";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
- import { useSelect } from '@wordpress/data';
6
5
  import { BlockInspector } from '@wordpress/block-editor';
7
6
  import { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';
8
7
 
@@ -11,19 +10,13 @@ import { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';
11
10
  */
12
11
  import TemplatePartConverter from '../template-part-converter';
13
12
  import { SidebarInspectorFill } from '../sidebar-edit-mode';
14
- import { store as editSiteStore } from '../../store';
15
13
  import SiteEditorCanvas from './site-editor-canvas';
16
- import getBlockEditorProvider from './get-block-editor-provider';
14
+ import BlockEditorProvider from './block-editor-provider';
17
15
  import { unlock } from '../../lock-unlock';
18
16
  const {
19
17
  PatternsMenuItems
20
18
  } = unlock(editPatternsPrivateApis);
21
19
  export default function BlockEditor() {
22
- const entityType = useSelect(select => select(editSiteStore).getEditedPostType(), []);
23
-
24
- // Choose the provider based on the entity type currently
25
- // being edited.
26
- const BlockEditorProvider = getBlockEditorProvider(entityType);
27
20
  return createElement(BlockEditorProvider, null, createElement(TemplatePartConverter, null), createElement(SidebarInspectorFill, null, createElement(BlockInspector, null)), createElement(SiteEditorCanvas, null), createElement(PatternsMenuItems, null));
28
21
  }
29
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","BlockInspector","privateApis","editPatternsPrivateApis","TemplatePartConverter","SidebarInspectorFill","store","editSiteStore","SiteEditorCanvas","getBlockEditorProvider","unlock","PatternsMenuItems","BlockEditor","entityType","select","getEditedPostType","BlockEditorProvider","createElement"],"sources":["@wordpress/edit-site/src/components/block-editor/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { BlockInspector } from '@wordpress/block-editor';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartConverter from '../template-part-converter';\nimport { SidebarInspectorFill } from '../sidebar-edit-mode';\nimport { store as editSiteStore } from '../../store';\nimport SiteEditorCanvas from './site-editor-canvas';\nimport getBlockEditorProvider from './get-block-editor-provider';\n\nimport { unlock } from '../../lock-unlock';\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\nexport default function BlockEditor() {\n\tconst entityType = useSelect(\n\t\t( select ) => select( editSiteStore ).getEditedPostType(),\n\t\t[]\n\t);\n\n\t// Choose the provider based on the entity type currently\n\t// being edited.\n\tconst BlockEditorProvider = getBlockEditorProvider( entityType );\n\n\treturn (\n\t\t<BlockEditorProvider>\n\t\t\t<TemplatePartConverter />\n\t\t\t<SidebarInspectorFill>\n\t\t\t\t<BlockInspector />\n\t\t\t</SidebarInspectorFill>\n\n\t\t\t<SiteEditorCanvas />\n\n\t\t\t<PatternsMenuItems />\n\t\t</BlockEditorProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,WAAW,IAAIC,uBAAuB,QAAQ,qBAAqB;;AAE5E;AACA;AACA;AACA,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,SAASC,oBAAoB,QAAQ,sBAAsB;AAC3D,SAASC,KAAK,IAAIC,aAAa,QAAQ,aAAa;AACpD,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,OAAOC,sBAAsB,MAAM,6BAA6B;AAEhE,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,MAAM;EAAEC;AAAkB,CAAC,GAAGD,MAAM,CAAEP,uBAAwB,CAAC;AAC/D,eAAe,SAASS,WAAWA,CAAA,EAAG;EACrC,MAAMC,UAAU,GAAGb,SAAS,CACzBc,MAAM,IAAMA,MAAM,CAAEP,aAAc,CAAC,CAACQ,iBAAiB,CAAC,CAAC,EACzD,EACD,CAAC;;EAED;EACA;EACA,MAAMC,mBAAmB,GAAGP,sBAAsB,CAAEI,UAAW,CAAC;EAEhE,OACCI,aAAA,CAACD,mBAAmB,QACnBC,aAAA,CAACb,qBAAqB,MAAE,CAAC,EACzBa,aAAA,CAACZ,oBAAoB,QACpBY,aAAA,CAAChB,cAAc,MAAE,CACI,CAAC,EAEvBgB,aAAA,CAACT,gBAAgB,MAAE,CAAC,EAEpBS,aAAA,CAACN,iBAAiB,MAAE,CACA,CAAC;AAExB"}
1
+ {"version":3,"names":["BlockInspector","privateApis","editPatternsPrivateApis","TemplatePartConverter","SidebarInspectorFill","SiteEditorCanvas","BlockEditorProvider","unlock","PatternsMenuItems","BlockEditor","createElement"],"sources":["@wordpress/edit-site/src/components/block-editor/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockInspector } from '@wordpress/block-editor';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartConverter from '../template-part-converter';\nimport { SidebarInspectorFill } from '../sidebar-edit-mode';\nimport SiteEditorCanvas from './site-editor-canvas';\nimport BlockEditorProvider from './block-editor-provider';\n\nimport { unlock } from '../../lock-unlock';\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\nexport default function BlockEditor() {\n\treturn (\n\t\t<BlockEditorProvider>\n\t\t\t<TemplatePartConverter />\n\t\t\t<SidebarInspectorFill>\n\t\t\t\t<BlockInspector />\n\t\t\t</SidebarInspectorFill>\n\t\t\t<SiteEditorCanvas />\n\t\t\t<PatternsMenuItems />\n\t\t</BlockEditorProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,cAAc,QAAQ,yBAAyB;AACxD,SAASC,WAAW,IAAIC,uBAAuB,QAAQ,qBAAqB;;AAE5E;AACA;AACA;AACA,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,SAASC,oBAAoB,QAAQ,sBAAsB;AAC3D,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,OAAOC,mBAAmB,MAAM,yBAAyB;AAEzD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,MAAM;EAAEC;AAAkB,CAAC,GAAGD,MAAM,CAAEL,uBAAwB,CAAC;AAC/D,eAAe,SAASO,WAAWA,CAAA,EAAG;EACrC,OACCC,aAAA,CAACJ,mBAAmB,QACnBI,aAAA,CAACP,qBAAqB,MAAE,CAAC,EACzBO,aAAA,CAACN,oBAAoB,QACpBM,aAAA,CAACV,cAAc,MAAE,CACI,CAAC,EACvBU,aAAA,CAACL,gBAAgB,MAAE,CAAC,EACpBK,aAAA,CAACF,iBAAiB,MAAE,CACA,CAAC;AAExB"}
@@ -19,7 +19,7 @@ import EditorCanvas from './editor-canvas';
19
19
  import EditorCanvasContainer from '../editor-canvas-container';
20
20
  import useSiteEditorSettings from './use-site-editor-settings';
21
21
  import { store as editSiteStore } from '../../store';
22
- import { FOCUSABLE_ENTITIES } from '../../utils/constants';
22
+ import { FOCUSABLE_ENTITIES, NAVIGATION_POST_TYPE } from '../../utils/constants';
23
23
  import { unlock } from '../../lock-unlock';
24
24
  import PageContentFocusManager from '../page-content-focus-manager';
25
25
  const LAYOUT = {
@@ -65,7 +65,7 @@ export default function SiteEditorCanvas() {
65
65
  // Disable resizing in mobile viewport.
66
66
  !isMobileViewport;
67
67
  const contentRef = useRef();
68
- const isTemplateTypeNavigation = templateType === 'wp_navigation';
68
+ const isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;
69
69
  const isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;
70
70
 
71
71
  // Hide the appender when:
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useSelect","useDispatch","useRef","BlockList","BlockTools","store","blockEditorStore","useViewportMatch","useResizeObserver","BackButton","ResizableEditor","EditorCanvas","EditorCanvasContainer","useSiteEditorSettings","editSiteStore","FOCUSABLE_ENTITIES","unlock","PageContentFocusManager","LAYOUT","type","alignments","SiteEditorCanvas","clearSelectedBlock","templateType","isFocusMode","isViewMode","select","getEditedPostType","getCanvasMode","_templateType","includes","resizeObserver","sizes","settings","hasBlocks","getBlockCount","blocks","isMobileViewport","enableResizing","contentRef","isTemplateTypeNavigation","isNavigationFocusMode","showBlockAppender","undefined","forceFullHeight","createElement","Fragment","Slot","editorCanvasView","className","__unstableContentRef","onClick","event","target","currentTarget","height","layout","renderAppender"],"sources":["@wordpress/edit-site/src/components/block-editor/site-editor-canvas.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport {\n\tBlockList,\n\tBlockTools,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useViewportMatch, useResizeObserver } from '@wordpress/compose';\n/**\n * Internal dependencies\n */\nimport BackButton from './back-button';\nimport ResizableEditor from './resizable-editor';\nimport EditorCanvas from './editor-canvas';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport useSiteEditorSettings from './use-site-editor-settings';\nimport { store as editSiteStore } from '../../store';\nimport { FOCUSABLE_ENTITIES } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport PageContentFocusManager from '../page-content-focus-manager';\n\nconst LAYOUT = {\n\ttype: 'default',\n\t// At the root level of the site editor, no alignments should be allowed.\n\talignments: [],\n};\n\nexport default function SiteEditorCanvas() {\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst { templateType, isFocusMode, isViewMode } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\n\t\tconst _templateType = getEditedPostType();\n\n\t\treturn {\n\t\t\ttemplateType: _templateType,\n\t\t\tisFocusMode: FOCUSABLE_ENTITIES.includes( _templateType ),\n\t\t\tisViewMode: getCanvasMode() === 'view',\n\t\t};\n\t}, [] );\n\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\n\tconst settings = useSiteEditorSettings();\n\n\tconst { hasBlocks } = useSelect( ( select ) => {\n\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\tconst blocks = getBlockCount();\n\n\t\treturn {\n\t\t\thasBlocks: !! blocks,\n\t\t};\n\t}, [] );\n\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst enableResizing =\n\t\tisFocusMode &&\n\t\t! isViewMode &&\n\t\t// Disable resizing in mobile viewport.\n\t\t! isMobileViewport;\n\n\tconst contentRef = useRef();\n\tconst isTemplateTypeNavigation = templateType === 'wp_navigation';\n\n\tconst isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;\n\n\t// Hide the appender when:\n\t// - In navigation focus mode (should only allow the root Nav block).\n\t// - In view mode (i.e. not editing).\n\tconst showBlockAppender =\n\t\t( isNavigationFocusMode && hasBlocks ) || isViewMode\n\t\t\t? false\n\t\t\t: undefined;\n\n\tconst forceFullHeight = isNavigationFocusMode;\n\n\treturn (\n\t\t<>\n\t\t\t<EditorCanvasContainer.Slot>\n\t\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t\t<div className=\"edit-site-visual-editor is-focus-mode\">\n\t\t\t\t\t\t\t{ editorCanvasView }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<BlockTools\n\t\t\t\t\t\t\tclassName={ classnames( 'edit-site-visual-editor', {\n\t\t\t\t\t\t\t\t'is-focus-mode':\n\t\t\t\t\t\t\t\t\tisFocusMode || !! editorCanvasView,\n\t\t\t\t\t\t\t\t'is-view-mode': isViewMode,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t__unstableContentRef={ contentRef }\n\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t// Clear selected block when clicking on the gray background.\n\t\t\t\t\t\t\t\tif ( event.target === event.currentTarget ) {\n\t\t\t\t\t\t\t\t\tclearSelectedBlock();\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<BackButton />\n\t\t\t\t\t\t\t<ResizableEditor\n\t\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\t\theight={\n\t\t\t\t\t\t\t\t\tsizes.height && ! forceFullHeight\n\t\t\t\t\t\t\t\t\t\t? sizes.height\n\t\t\t\t\t\t\t\t\t\t: '100%'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<EditorCanvas\n\t\t\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ resizeObserver }\n\t\t\t\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t\t'edit-site-block-editor__block-list wp-site-blocks',\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t'is-navigation-block':\n\t\t\t\t\t\t\t\t\t\t\t\t\tisTemplateTypeNavigation,\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlayout={ LAYOUT }\n\t\t\t\t\t\t\t\t\t\trenderAppender={ showBlockAppender }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</EditorCanvas>\n\t\t\t\t\t\t\t</ResizableEditor>\n\t\t\t\t\t\t</BlockTools>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</EditorCanvasContainer.Slot>\n\t\t\t<PageContentFocusManager contentRef={ contentRef } />\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useSelect","useDispatch","useRef","BlockList","BlockTools","store","blockEditorStore","useViewportMatch","useResizeObserver","BackButton","ResizableEditor","EditorCanvas","EditorCanvasContainer","useSiteEditorSettings","editSiteStore","FOCUSABLE_ENTITIES","NAVIGATION_POST_TYPE","unlock","PageContentFocusManager","LAYOUT","type","alignments","SiteEditorCanvas","clearSelectedBlock","templateType","isFocusMode","isViewMode","select","getEditedPostType","getCanvasMode","_templateType","includes","resizeObserver","sizes","settings","hasBlocks","getBlockCount","blocks","isMobileViewport","enableResizing","contentRef","isTemplateTypeNavigation","isNavigationFocusMode","showBlockAppender","undefined","forceFullHeight","createElement","Fragment","Slot","editorCanvasView","className","__unstableContentRef","onClick","event","target","currentTarget","height","layout","renderAppender"],"sources":["@wordpress/edit-site/src/components/block-editor/site-editor-canvas.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport {\n\tBlockList,\n\tBlockTools,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useViewportMatch, useResizeObserver } from '@wordpress/compose';\n/**\n * Internal dependencies\n */\nimport BackButton from './back-button';\nimport ResizableEditor from './resizable-editor';\nimport EditorCanvas from './editor-canvas';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport useSiteEditorSettings from './use-site-editor-settings';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tFOCUSABLE_ENTITIES,\n\tNAVIGATION_POST_TYPE,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport PageContentFocusManager from '../page-content-focus-manager';\n\nconst LAYOUT = {\n\ttype: 'default',\n\t// At the root level of the site editor, no alignments should be allowed.\n\talignments: [],\n};\n\nexport default function SiteEditorCanvas() {\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst { templateType, isFocusMode, isViewMode } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\n\t\tconst _templateType = getEditedPostType();\n\n\t\treturn {\n\t\t\ttemplateType: _templateType,\n\t\t\tisFocusMode: FOCUSABLE_ENTITIES.includes( _templateType ),\n\t\t\tisViewMode: getCanvasMode() === 'view',\n\t\t};\n\t}, [] );\n\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\n\tconst settings = useSiteEditorSettings();\n\n\tconst { hasBlocks } = useSelect( ( select ) => {\n\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\tconst blocks = getBlockCount();\n\n\t\treturn {\n\t\t\thasBlocks: !! blocks,\n\t\t};\n\t}, [] );\n\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst enableResizing =\n\t\tisFocusMode &&\n\t\t! isViewMode &&\n\t\t// Disable resizing in mobile viewport.\n\t\t! isMobileViewport;\n\n\tconst contentRef = useRef();\n\tconst isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;\n\n\tconst isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;\n\n\t// Hide the appender when:\n\t// - In navigation focus mode (should only allow the root Nav block).\n\t// - In view mode (i.e. not editing).\n\tconst showBlockAppender =\n\t\t( isNavigationFocusMode && hasBlocks ) || isViewMode\n\t\t\t? false\n\t\t\t: undefined;\n\n\tconst forceFullHeight = isNavigationFocusMode;\n\n\treturn (\n\t\t<>\n\t\t\t<EditorCanvasContainer.Slot>\n\t\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t\t<div className=\"edit-site-visual-editor is-focus-mode\">\n\t\t\t\t\t\t\t{ editorCanvasView }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<BlockTools\n\t\t\t\t\t\t\tclassName={ classnames( 'edit-site-visual-editor', {\n\t\t\t\t\t\t\t\t'is-focus-mode':\n\t\t\t\t\t\t\t\t\tisFocusMode || !! editorCanvasView,\n\t\t\t\t\t\t\t\t'is-view-mode': isViewMode,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t__unstableContentRef={ contentRef }\n\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t// Clear selected block when clicking on the gray background.\n\t\t\t\t\t\t\t\tif ( event.target === event.currentTarget ) {\n\t\t\t\t\t\t\t\t\tclearSelectedBlock();\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<BackButton />\n\t\t\t\t\t\t\t<ResizableEditor\n\t\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\t\theight={\n\t\t\t\t\t\t\t\t\tsizes.height && ! forceFullHeight\n\t\t\t\t\t\t\t\t\t\t? sizes.height\n\t\t\t\t\t\t\t\t\t\t: '100%'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<EditorCanvas\n\t\t\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ resizeObserver }\n\t\t\t\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t\t'edit-site-block-editor__block-list wp-site-blocks',\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t'is-navigation-block':\n\t\t\t\t\t\t\t\t\t\t\t\t\tisTemplateTypeNavigation,\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlayout={ LAYOUT }\n\t\t\t\t\t\t\t\t\t\trenderAppender={ showBlockAppender }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</EditorCanvas>\n\t\t\t\t\t\t\t</ResizableEditor>\n\t\t\t\t\t\t</BlockTools>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</EditorCanvasContainer.Slot>\n\t\t\t<PageContentFocusManager contentRef={ contentRef } />\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;AACnC;AACA;AACA;AACA,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SACCC,SAAS,EACTC,UAAU,EACVC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,oBAAoB;AACxE;AACA;AACA;AACA,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,SAASR,KAAK,IAAIS,aAAa,QAAQ,aAAa;AACpD,SACCC,kBAAkB,EAClBC,oBAAoB,QACd,uBAAuB;AAC9B,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,uBAAuB,MAAM,+BAA+B;AAEnE,MAAMC,MAAM,GAAG;EACdC,IAAI,EAAE,SAAS;EACf;EACAC,UAAU,EAAE;AACb,CAAC;AAED,eAAe,SAASC,gBAAgBA,CAAA,EAAG;EAC1C,MAAM;IAAEC;EAAmB,CAAC,GAAGtB,WAAW,CAAEK,gBAAiB,CAAC;EAE9D,MAAM;IAAEkB,YAAY;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAG1B,SAAS,CAAI2B,MAAM,IAAM;IAC1E,MAAM;MAAEC,iBAAiB;MAAEC;IAAc,CAAC,GAAGZ,MAAM,CAClDU,MAAM,CAAEb,aAAc,CACvB,CAAC;IAED,MAAMgB,aAAa,GAAGF,iBAAiB,CAAC,CAAC;IAEzC,OAAO;MACNJ,YAAY,EAAEM,aAAa;MAC3BL,WAAW,EAAEV,kBAAkB,CAACgB,QAAQ,CAAED,aAAc,CAAC;MACzDJ,UAAU,EAAEG,aAAa,CAAC,CAAC,KAAK;IACjC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM,CAAEG,cAAc,EAAEC,KAAK,CAAE,GAAGzB,iBAAiB,CAAC,CAAC;EAErD,MAAM0B,QAAQ,GAAGrB,qBAAqB,CAAC,CAAC;EAExC,MAAM;IAAEsB;EAAU,CAAC,GAAGnC,SAAS,CAAI2B,MAAM,IAAM;IAC9C,MAAM;MAAES;IAAc,CAAC,GAAGT,MAAM,CAAErB,gBAAiB,CAAC;IAEpD,MAAM+B,MAAM,GAAGD,aAAa,CAAC,CAAC;IAE9B,OAAO;MACND,SAAS,EAAE,CAAC,CAAEE;IACf,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,gBAAgB,GAAG/B,gBAAgB,CAAE,OAAO,EAAE,GAAI,CAAC;EACzD,MAAMgC,cAAc,GACnBd,WAAW,IACX,CAAEC,UAAU;EACZ;EACA,CAAEY,gBAAgB;EAEnB,MAAME,UAAU,GAAGtC,MAAM,CAAC,CAAC;EAC3B,MAAMuC,wBAAwB,GAAGjB,YAAY,KAAKR,oBAAoB;EAEtE,MAAM0B,qBAAqB,GAAGD,wBAAwB,IAAIhB,WAAW;;EAErE;EACA;EACA;EACA,MAAMkB,iBAAiB,GACpBD,qBAAqB,IAAIP,SAAS,IAAMT,UAAU,GACjD,KAAK,GACLkB,SAAS;EAEb,MAAMC,eAAe,GAAGH,qBAAqB;EAE7C,OACCI,aAAA,CAAAC,QAAA,QACCD,aAAA,CAAClC,qBAAqB,CAACoC,IAAI,QACxB,CAAE,CAAEC,gBAAgB,CAAE,KACvBA,gBAAgB,GACfH,aAAA;IAAKI,SAAS,EAAC;EAAuC,GACnDD,gBACE,CAAC,GAENH,aAAA,CAAC1C,UAAU;IACV8C,SAAS,EAAGnD,UAAU,CAAE,yBAAyB,EAAE;MAClD,eAAe,EACd0B,WAAW,IAAI,CAAC,CAAEwB,gBAAgB;MACnC,cAAc,EAAEvB;IACjB,CAAE,CAAG;IACLyB,oBAAoB,EAAGX,UAAY;IACnCY,OAAO,EAAKC,KAAK,IAAM;MACtB;MACA,IAAKA,KAAK,CAACC,MAAM,KAAKD,KAAK,CAACE,aAAa,EAAG;QAC3ChC,kBAAkB,CAAC,CAAC;MACrB;IACD;EAAG,GAEHuB,aAAA,CAACrC,UAAU,MAAE,CAAC,EACdqC,aAAA,CAACpC,eAAe;IACf6B,cAAc,EAAGA,cAAgB;IACjCiB,MAAM,EACLvB,KAAK,CAACuB,MAAM,IAAI,CAAEX,eAAe,GAC9BZ,KAAK,CAACuB,MAAM,GACZ;EACH,GAEDV,aAAA,CAACnC,YAAY;IACZ4B,cAAc,EAAGA,cAAgB;IACjCL,QAAQ,EAAGA,QAAU;IACrBM,UAAU,EAAGA;EAAY,GAEvBR,cAAc,EAChBc,aAAA,CAAC3C,SAAS;IACT+C,SAAS,EAAGnD,UAAU,CACrB,mDAAmD,EACnD;MACC,qBAAqB,EACpB0C;IACF,CACD,CAAG;IACHgB,MAAM,EAAGtC,MAAQ;IACjBuC,cAAc,EAAGf;EAAmB,CACpC,CACY,CACE,CACN,CAGa,CAAC,EAC7BG,aAAA,CAAC5B,uBAAuB;IAACsB,UAAU,EAAGA;EAAY,CAAE,CACnD,CAAC;AAEL"}
@@ -16,7 +16,7 @@ import { serialize } from '@wordpress/blocks';
16
16
  /**
17
17
  * Internal dependencies
18
18
  */
19
- import { TEMPLATE_PART_AREA_GENERAL } from '../../store/constants';
19
+ import { TEMPLATE_PART_POST_TYPE, TEMPLATE_PART_AREA_DEFAULT_CATEGORY } from '../../utils/constants';
20
20
  import { useExistingTemplateParts, getUniqueTemplatePartTitle, getCleanTemplatePartSlug } from '../../utils/template-part-create';
21
21
  export default function CreateTemplatePartModal({
22
22
  closeModal,
@@ -32,21 +32,19 @@ export default function CreateTemplatePartModal({
32
32
  } = useDispatch(coreStore);
33
33
  const existingTemplateParts = useExistingTemplateParts();
34
34
  const [title, setTitle] = useState('');
35
- const [area, setArea] = useState(TEMPLATE_PART_AREA_GENERAL);
35
+ const [area, setArea] = useState(TEMPLATE_PART_AREA_DEFAULT_CATEGORY);
36
36
  const [isSubmitting, setIsSubmitting] = useState(false);
37
37
  const instanceId = useInstanceId(CreateTemplatePartModal);
38
38
  const templatePartAreas = useSelect(select => select(editorStore).__experimentalGetDefaultTemplatePartAreas(), []);
39
39
  async function createTemplatePart() {
40
- if (!title) {
41
- createErrorNotice(__('Please enter a title.'), {
42
- type: 'snackbar'
43
- });
40
+ if (!title || isSubmitting) {
44
41
  return;
45
42
  }
46
43
  try {
44
+ setIsSubmitting(true);
47
45
  const uniqueTitle = getUniqueTemplatePartTitle(title, existingTemplateParts);
48
46
  const cleanSlug = getCleanTemplatePartSlug(uniqueTitle);
49
- const templatePart = await saveEntityRecord('postType', 'wp_template_part', {
47
+ const templatePart = await saveEntityRecord('postType', TEMPLATE_PART_POST_TYPE, {
50
48
  slug: cleanSlug,
51
49
  title: uniqueTitle,
52
50
  content: serialize(blocks),
@@ -63,6 +61,8 @@ export default function CreateTemplatePartModal({
63
61
  type: 'snackbar'
64
62
  });
65
63
  onError?.();
64
+ } finally {
65
+ setIsSubmitting(false);
66
66
  }
67
67
  }
68
68
  return createElement(Modal, {
@@ -72,10 +72,6 @@ export default function CreateTemplatePartModal({
72
72
  }, createElement("form", {
73
73
  onSubmit: async event => {
74
74
  event.preventDefault();
75
- if (!title) {
76
- return;
77
- }
78
- setIsSubmitting(true);
79
75
  await createTemplatePart();
80
76
  }
81
77
  }, createElement(VStack, {
@@ -126,7 +122,7 @@ export default function CreateTemplatePartModal({
126
122
  }, __('Cancel')), createElement(Button, {
127
123
  variant: "primary",
128
124
  type: "submit",
129
- disabled: !title,
125
+ "aria-disabled": !title || isSubmitting,
130
126
  isBusy: isSubmitting
131
127
  }, __('Create'))))));
132
128
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","Icon","BaseControl","TextControl","Flex","FlexItem","FlexBlock","Button","Modal","__experimentalRadioGroup","RadioGroup","__experimentalRadio","Radio","__experimentalHStack","HStack","__experimentalVStack","VStack","__","useState","useInstanceId","store","editorStore","noticesStore","coreStore","check","serialize","TEMPLATE_PART_AREA_GENERAL","useExistingTemplateParts","getUniqueTemplatePartTitle","getCleanTemplatePartSlug","CreateTemplatePartModal","closeModal","blocks","onCreate","onError","createErrorNotice","saveEntityRecord","existingTemplateParts","title","setTitle","area","setArea","isSubmitting","setIsSubmitting","instanceId","templatePartAreas","select","__experimentalGetDefaultTemplatePartAreas","createTemplatePart","type","uniqueTitle","cleanSlug","templatePart","slug","content","throwOnError","error","errorMessage","message","code","createElement","onRequestClose","overlayClassName","onSubmit","event","preventDefault","spacing","__nextHasNoMarginBottom","label","value","onChange","required","id","className","checked","map","icon","description","key","align","justify","variant","onClick","disabled","isBusy"],"sources":["@wordpress/edit-site/src/components/create-template-part-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tIcon,\n\tBaseControl,\n\tTextControl,\n\tFlex,\n\tFlexItem,\n\tFlexBlock,\n\tButton,\n\tModal,\n\t__experimentalRadioGroup as RadioGroup,\n\t__experimentalRadio as Radio,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { check } from '@wordpress/icons';\nimport { serialize } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_AREA_GENERAL } from '../../store/constants';\nimport {\n\tuseExistingTemplateParts,\n\tgetUniqueTemplatePartTitle,\n\tgetCleanTemplatePartSlug,\n} from '../../utils/template-part-create';\n\nexport default function CreateTemplatePartModal( {\n\tcloseModal,\n\tblocks = [],\n\tonCreate,\n\tonError,\n} ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst existingTemplateParts = useExistingTemplateParts();\n\n\tconst [ title, setTitle ] = useState( '' );\n\tconst [ area, setArea ] = useState( TEMPLATE_PART_AREA_GENERAL );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst instanceId = useInstanceId( CreateTemplatePartModal );\n\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\n\tasync function createTemplatePart() {\n\t\tif ( ! title ) {\n\t\t\tcreateErrorNotice( __( 'Please enter a title.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst uniqueTitle = getUniqueTemplatePartTitle(\n\t\t\t\ttitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst cleanSlug = getCleanTemplatePartSlug( uniqueTitle );\n\n\t\t\tconst templatePart = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t{\n\t\t\t\t\tslug: cleanSlug,\n\t\t\t\t\ttitle: uniqueTitle,\n\t\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\t\tarea,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tawait onCreate( templatePart );\n\n\t\t\t// TODO: Add a success notice?\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: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\n\t\t\tonError?.();\n\t\t}\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Create template part' ) }\n\t\t\tonRequestClose={ closeModal }\n\t\t\toverlayClassName=\"edit-site-create-template-part-modal\"\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ async ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! title ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsetIsSubmitting( true );\n\t\t\t\t\tawait createTemplatePart();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"4\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Area' ) }\n\t\t\t\t\t\tid={ `edit-site-create-template-part-modal__area-selection-${ instanceId }` }\n\t\t\t\t\t\tclassName=\"edit-site-create-template-part-modal__area-base-control\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\t\tlabel={ __( 'Area' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-create-template-part-modal__area-radio-group\"\n\t\t\t\t\t\t\tid={ `edit-site-create-template-part-modal__area-selection-${ instanceId }` }\n\t\t\t\t\t\t\tonChange={ setArea }\n\t\t\t\t\t\t\tchecked={ area }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ templatePartAreas.map(\n\t\t\t\t\t\t\t\t( {\n\t\t\t\t\t\t\t\t\ticon,\n\t\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\t\tarea: value,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t} ) => (\n\t\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\t\tkey={ label }\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-create-template-part-modal__area-radio\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Flex align=\"start\" justify=\"start\">\n\t\t\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t<FlexBlock className=\"edit-site-create-template-part-modal__option-label\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t\t\t\t<div>{ description }</div>\n\t\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\n\t\t\t\t\t\t\t\t\t\t\t<FlexItem className=\"edit-site-create-template-part-modal__checkbox\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ area === value && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t\t\t</Radio>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\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\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tdisabled={ ! title }\n\t\t\t\t\t\t\tisBusy={ isSubmitting }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create' ) }\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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"}
1
+ {"version":3,"names":["useSelect","useDispatch","Icon","BaseControl","TextControl","Flex","FlexItem","FlexBlock","Button","Modal","__experimentalRadioGroup","RadioGroup","__experimentalRadio","Radio","__experimentalHStack","HStack","__experimentalVStack","VStack","__","useState","useInstanceId","store","editorStore","noticesStore","coreStore","check","serialize","TEMPLATE_PART_POST_TYPE","TEMPLATE_PART_AREA_DEFAULT_CATEGORY","useExistingTemplateParts","getUniqueTemplatePartTitle","getCleanTemplatePartSlug","CreateTemplatePartModal","closeModal","blocks","onCreate","onError","createErrorNotice","saveEntityRecord","existingTemplateParts","title","setTitle","area","setArea","isSubmitting","setIsSubmitting","instanceId","templatePartAreas","select","__experimentalGetDefaultTemplatePartAreas","createTemplatePart","uniqueTitle","cleanSlug","templatePart","slug","content","throwOnError","error","errorMessage","message","code","type","createElement","onRequestClose","overlayClassName","onSubmit","event","preventDefault","spacing","__nextHasNoMarginBottom","label","value","onChange","required","id","className","checked","map","icon","description","key","align","justify","variant","onClick","isBusy"],"sources":["@wordpress/edit-site/src/components/create-template-part-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tIcon,\n\tBaseControl,\n\tTextControl,\n\tFlex,\n\tFlexItem,\n\tFlexBlock,\n\tButton,\n\tModal,\n\t__experimentalRadioGroup as RadioGroup,\n\t__experimentalRadio as Radio,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { check } from '@wordpress/icons';\nimport { serialize } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport {\n\tuseExistingTemplateParts,\n\tgetUniqueTemplatePartTitle,\n\tgetCleanTemplatePartSlug,\n} from '../../utils/template-part-create';\n\nexport default function CreateTemplatePartModal( {\n\tcloseModal,\n\tblocks = [],\n\tonCreate,\n\tonError,\n} ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst existingTemplateParts = useExistingTemplateParts();\n\n\tconst [ title, setTitle ] = useState( '' );\n\tconst [ area, setArea ] = useState( TEMPLATE_PART_AREA_DEFAULT_CATEGORY );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst instanceId = useInstanceId( CreateTemplatePartModal );\n\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\n\tasync function createTemplatePart() {\n\t\tif ( ! title || isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSubmitting( true );\n\t\t\tconst uniqueTitle = getUniqueTemplatePartTitle(\n\t\t\t\ttitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst cleanSlug = getCleanTemplatePartSlug( uniqueTitle );\n\n\t\t\tconst templatePart = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tslug: cleanSlug,\n\t\t\t\t\ttitle: uniqueTitle,\n\t\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\t\tarea,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tawait onCreate( templatePart );\n\n\t\t\t// TODO: Add a success notice?\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: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\n\t\t\tonError?.();\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Create template part' ) }\n\t\t\tonRequestClose={ closeModal }\n\t\t\toverlayClassName=\"edit-site-create-template-part-modal\"\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ async ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tawait createTemplatePart();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"4\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Area' ) }\n\t\t\t\t\t\tid={ `edit-site-create-template-part-modal__area-selection-${ instanceId }` }\n\t\t\t\t\t\tclassName=\"edit-site-create-template-part-modal__area-base-control\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\t\tlabel={ __( 'Area' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-create-template-part-modal__area-radio-group\"\n\t\t\t\t\t\t\tid={ `edit-site-create-template-part-modal__area-selection-${ instanceId }` }\n\t\t\t\t\t\t\tonChange={ setArea }\n\t\t\t\t\t\t\tchecked={ area }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ templatePartAreas.map(\n\t\t\t\t\t\t\t\t( {\n\t\t\t\t\t\t\t\t\ticon,\n\t\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\t\tarea: value,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t} ) => (\n\t\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\t\tkey={ label }\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-create-template-part-modal__area-radio\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Flex align=\"start\" justify=\"start\">\n\t\t\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t<FlexBlock className=\"edit-site-create-template-part-modal__option-label\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t\t\t\t<div>{ description }</div>\n\t\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\n\t\t\t\t\t\t\t\t\t\t\t<FlexItem className=\"edit-site-create-template-part-modal__checkbox\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ area === value && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t\t\t</Radio>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\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\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\taria-disabled={ ! title || isSubmitting }\n\t\t\t\t\t\t\tisBusy={ isSubmitting }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create' ) }\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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"}