@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":["paramCase","kebabCase","useSelect","store","coreStore","useExistingTemplateParts","select","getEntityRecords","per_page","getUniqueTemplatePartTitle","title","templateParts","lowercaseTitle","toLowerCase","existingTitles","map","templatePart","rendered","includes","suffix","getCleanTemplatePartSlug","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":"AAAA;AACA;AACA;AACA,SAASA,SAAS,IAAIC,SAAS,QAAQ,aAAa;;AAEpD;AACA;AACA;AACA,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AAEzD,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC7C,OAAOH,SAAS,CACbI,MAAM,IACPA,MAAM,CAAEF,SAAU,CAAC,CAACG,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;AACA,OAAO,MAAMC,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;AACA,OAAO,MAAMC,wBAAwB,GAAKV,KAAK,IAAM;EACpD,OAAOT,SAAS,CAAES,KAAM,CAAC,CAACW,OAAO,CAAE,UAAU,EAAE,EAAG,CAAC,IAAI,gBAAgB;AACxE,CAAC"}
1
+ {"version":3,"names":["paramCase","kebabCase","useSelect","store","coreStore","TEMPLATE_PART_POST_TYPE","useExistingTemplateParts","select","getEntityRecords","per_page","getUniqueTemplatePartTitle","title","templateParts","lowercaseTitle","toLowerCase","existingTitles","map","templatePart","rendered","includes","suffix","getCleanTemplatePartSlug","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":"AAAA;AACA;AACA;AACA,SAASA,SAAS,IAAIC,SAAS,QAAQ,aAAa;;AAEpD;AACA;AACA;AACA,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASC,uBAAuB,QAAQ,aAAa;AAErD,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC7C,OAAOJ,SAAS,CACbK,MAAM,IACPA,MAAM,CAAEH,SAAU,CAAC,CAACI,gBAAgB,CACnC,UAAU,EACVH,uBAAuB,EACvB;IACCI,QAAQ,EAAE,CAAC;EACZ,CACD,CAAC,EACF,EACD,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,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;AACA,OAAO,MAAMC,wBAAwB,GAAKV,KAAK,IAAM;EACpD,OAAOV,SAAS,CAAEU,KAAM,CAAC,CAACW,OAAO,CAAE,UAAU,EAAE,EAAG,CAAC,IAAI,gBAAgB;AACxE,CAAC"}
@@ -2321,6 +2321,10 @@ body.is-fullscreen-mode .edit-site-list-header {
2321
2321
  width: 30%;
2322
2322
  }
2323
2323
 
2324
+ .edit-site-page-panels-edit-template__dropdown .components-popover__content {
2325
+ min-width: 240px;
2326
+ }
2327
+
2324
2328
  .components-panel__header.edit-site-sidebar-edit-mode__panel-tabs {
2325
2329
  justify-content: flex-start;
2326
2330
  padding-right: 0;
@@ -3807,6 +3811,11 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
3807
3811
  width: 100%;
3808
3812
  }
3809
3813
 
3814
+ @media (min-width: 782px) {
3815
+ .font-library-modal.font-library-modal {
3816
+ width: 65vw;
3817
+ }
3818
+ }
3810
3819
  .font-library-modal .components-modal__header {
3811
3820
  border-bottom: none;
3812
3821
  }
@@ -3907,6 +3916,20 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
3907
3916
  background: linear-gradient(to left, rgba(255, 255, 255, 0), white);
3908
3917
  }
3909
3918
 
3919
+ .font-library__google-fonts-confirm {
3920
+ display: flex;
3921
+ justify-content: center;
3922
+ align-items: center;
3923
+ }
3924
+ .font-library__google-fonts-confirm h3 {
3925
+ font-size: 1.4rem;
3926
+ }
3927
+ .font-library__google-fonts-confirm .components-card {
3928
+ width: 50%;
3929
+ min-width: 250px;
3930
+ max-width: 350px;
3931
+ }
3932
+
3910
3933
  body.js #wpadminbar {
3911
3934
  display: none;
3912
3935
  }
@@ -2322,6 +2322,10 @@ body.is-fullscreen-mode .edit-site-list-header {
2322
2322
  width: 30%;
2323
2323
  }
2324
2324
 
2325
+ .edit-site-page-panels-edit-template__dropdown .components-popover__content {
2326
+ min-width: 240px;
2327
+ }
2328
+
2325
2329
  .components-panel__header.edit-site-sidebar-edit-mode__panel-tabs {
2326
2330
  justify-content: flex-start;
2327
2331
  padding-left: 0;
@@ -3808,6 +3812,11 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
3808
3812
  width: 100%;
3809
3813
  }
3810
3814
 
3815
+ @media (min-width: 782px) {
3816
+ .font-library-modal.font-library-modal {
3817
+ width: 65vw;
3818
+ }
3819
+ }
3811
3820
  .font-library-modal .components-modal__header {
3812
3821
  border-bottom: none;
3813
3822
  }
@@ -3908,6 +3917,20 @@ body:has(.edit-site-resizable-frame__inner.is-resizing) {
3908
3917
  background: linear-gradient(to right, rgba(255, 255, 255, 0), white);
3909
3918
  }
3910
3919
 
3920
+ .font-library__google-fonts-confirm {
3921
+ display: flex;
3922
+ justify-content: center;
3923
+ align-items: center;
3924
+ }
3925
+ .font-library__google-fonts-confirm h3 {
3926
+ font-size: 1.4rem;
3927
+ }
3928
+ .font-library__google-fonts-confirm .components-card {
3929
+ width: 50%;
3930
+ min-width: 250px;
3931
+ max-width: 350px;
3932
+ }
3933
+
3911
3934
  body.js #wpadminbar {
3912
3935
  display: none;
3913
3936
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-site",
3
- "version": "5.19.0",
3
+ "version": "5.19.2",
4
4
  "description": "Edit Site Page module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -27,44 +27,44 @@
27
27
  "react-native": "src/index",
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.16.0",
30
- "@wordpress/a11y": "^3.42.0",
31
- "@wordpress/api-fetch": "^6.39.0",
32
- "@wordpress/block-editor": "^12.10.0",
33
- "@wordpress/block-library": "^8.19.0",
34
- "@wordpress/blocks": "^12.19.0",
35
- "@wordpress/commands": "^0.13.0",
36
- "@wordpress/components": "^25.8.0",
37
- "@wordpress/compose": "^6.19.0",
38
- "@wordpress/core-commands": "^0.11.0",
39
- "@wordpress/core-data": "^6.19.0",
40
- "@wordpress/data": "^9.12.0",
41
- "@wordpress/date": "^4.42.0",
42
- "@wordpress/deprecated": "^3.42.0",
43
- "@wordpress/dom": "^3.42.0",
44
- "@wordpress/editor": "^13.19.0",
45
- "@wordpress/element": "^5.19.0",
46
- "@wordpress/escape-html": "^2.42.0",
47
- "@wordpress/hooks": "^3.42.0",
48
- "@wordpress/html-entities": "^3.42.0",
49
- "@wordpress/i18n": "^4.42.0",
50
- "@wordpress/icons": "^9.33.0",
51
- "@wordpress/interface": "^5.19.0",
52
- "@wordpress/keyboard-shortcuts": "^4.19.0",
53
- "@wordpress/keycodes": "^3.42.0",
54
- "@wordpress/media-utils": "^4.33.0",
55
- "@wordpress/notices": "^4.10.0",
56
- "@wordpress/patterns": "^1.3.0",
57
- "@wordpress/plugins": "^6.10.0",
58
- "@wordpress/preferences": "^3.19.0",
59
- "@wordpress/primitives": "^3.40.0",
60
- "@wordpress/private-apis": "^0.24.0",
61
- "@wordpress/reusable-blocks": "^4.19.0",
62
- "@wordpress/router": "^0.11.0",
63
- "@wordpress/style-engine": "^1.25.0",
64
- "@wordpress/url": "^3.43.0",
65
- "@wordpress/viewport": "^5.19.0",
66
- "@wordpress/widgets": "^3.19.0",
67
- "@wordpress/wordcount": "^3.42.0",
30
+ "@wordpress/a11y": "^3.42.2",
31
+ "@wordpress/api-fetch": "^6.39.2",
32
+ "@wordpress/block-editor": "^12.10.2",
33
+ "@wordpress/block-library": "^8.19.2",
34
+ "@wordpress/blocks": "^12.19.2",
35
+ "@wordpress/commands": "^0.13.2",
36
+ "@wordpress/components": "^25.8.2",
37
+ "@wordpress/compose": "^6.19.2",
38
+ "@wordpress/core-commands": "^0.11.2",
39
+ "@wordpress/core-data": "^6.19.2",
40
+ "@wordpress/data": "^9.12.2",
41
+ "@wordpress/date": "^4.42.2",
42
+ "@wordpress/deprecated": "^3.42.2",
43
+ "@wordpress/dom": "^3.42.2",
44
+ "@wordpress/editor": "^13.19.2",
45
+ "@wordpress/element": "^5.19.2",
46
+ "@wordpress/escape-html": "^2.42.2",
47
+ "@wordpress/hooks": "^3.42.2",
48
+ "@wordpress/html-entities": "^3.42.2",
49
+ "@wordpress/i18n": "^4.42.2",
50
+ "@wordpress/icons": "^9.33.2",
51
+ "@wordpress/interface": "^5.19.2",
52
+ "@wordpress/keyboard-shortcuts": "^4.19.2",
53
+ "@wordpress/keycodes": "^3.42.2",
54
+ "@wordpress/media-utils": "^4.33.2",
55
+ "@wordpress/notices": "^4.10.2",
56
+ "@wordpress/patterns": "^1.3.2",
57
+ "@wordpress/plugins": "^6.10.2",
58
+ "@wordpress/preferences": "^3.19.2",
59
+ "@wordpress/primitives": "^3.40.2",
60
+ "@wordpress/private-apis": "^0.24.2",
61
+ "@wordpress/reusable-blocks": "^4.19.2",
62
+ "@wordpress/router": "^0.11.2",
63
+ "@wordpress/style-engine": "^1.25.2",
64
+ "@wordpress/url": "^3.43.2",
65
+ "@wordpress/viewport": "^5.19.2",
66
+ "@wordpress/widgets": "^3.19.2",
67
+ "@wordpress/wordcount": "^3.42.2",
68
68
  "change-case": "^4.1.2",
69
69
  "classnames": "^2.3.1",
70
70
  "colord": "^2.9.2",
@@ -84,5 +84,5 @@
84
84
  "publishConfig": {
85
85
  "access": "public"
86
86
  },
87
- "gitHead": "cc35f517ed017ab7131319af3e87c359e8de175d"
87
+ "gitHead": "5d2e3d07cc97af8090fc32c1e5d5013a2967e752"
88
88
  }
@@ -51,8 +51,8 @@ export default function AddNewPattern() {
51
51
 
52
52
  history.push( {
53
53
  postId: pattern.id,
54
- postType: 'wp_block',
55
- categoryType: 'wp_block',
54
+ postType: PATTERN_TYPES.user,
55
+ categoryType: PATTERN_TYPES.user,
56
56
  categoryId,
57
57
  canvas: 'edit',
58
58
  } );
@@ -64,7 +64,7 @@ export default function AddNewPattern() {
64
64
  // Navigate to the created template part editor.
65
65
  history.push( {
66
66
  postId: templatePart.id,
67
- postType: 'wp_template_part',
67
+ postType: TEMPLATE_PART_POST_TYPE,
68
68
  canvas: 'edit',
69
69
  } );
70
70
  }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useEntityBlockEditor } from '@wordpress/core-data';
5
+ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
6
+ import { useSelect } from '@wordpress/data';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import { store as editSiteStore } from '../../../store';
12
+ import { unlock } from '../../../lock-unlock';
13
+ import useSiteEditorSettings from '../use-site-editor-settings';
14
+ import usePageContentBlocks from './use-page-content-blocks';
15
+
16
+ const { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );
17
+
18
+ const noop = () => {};
19
+
20
+ /**
21
+ * The default block editor provider for the site editor. Typically used when
22
+ * the post type is `'wp_template_part'` or `'wp_template'` and allows editing
23
+ * of the template and its nested entities.
24
+ *
25
+ * If the page content focus type is `'hideTemplate'`, the provider will provide
26
+ * a set of page content blocks wrapped in a container that, together,
27
+ * mimic the look and feel of the post editor and
28
+ * allow editing of the page content only.
29
+ *
30
+ * @param {Object} props
31
+ * @param {WPElement} props.children
32
+ */
33
+ export default function DefaultBlockEditorProvider( { children } ) {
34
+ const settings = useSiteEditorSettings();
35
+
36
+ const { templateType, isTemplateHidden } = useSelect( ( select ) => {
37
+ const { getEditedPostType } = select( editSiteStore );
38
+ const { getPageContentFocusType, getCanvasMode } = unlock(
39
+ select( editSiteStore )
40
+ );
41
+ return {
42
+ templateType: getEditedPostType(),
43
+ isTemplateHidden:
44
+ getCanvasMode() === 'edit' &&
45
+ getPageContentFocusType() === 'hideTemplate',
46
+ canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
47
+ };
48
+ }, [] );
49
+
50
+ const [ blocks, onInput, onChange ] = useEntityBlockEditor(
51
+ 'postType',
52
+ templateType
53
+ );
54
+ const pageContentBlock = usePageContentBlocks( blocks, isTemplateHidden );
55
+ return (
56
+ <ExperimentalBlockEditorProvider
57
+ settings={ settings }
58
+ value={
59
+ isTemplateHidden && pageContentBlock.length
60
+ ? pageContentBlock
61
+ : blocks
62
+ }
63
+ onInput={ isTemplateHidden ? noop : onInput }
64
+ onChange={ isTemplateHidden ? noop : onChange }
65
+ useSubRegistry={ false }
66
+ >
67
+ { children }
68
+ </ExperimentalBlockEditorProvider>
69
+ );
70
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useSelect } from '@wordpress/data';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { store as editSiteStore } from '../../../store';
10
+ import DefaultBlockEditorProvider from './default-block-editor-provider';
11
+ import NavigationBlockEditorProvider from './navigation-block-editor-provider';
12
+ import { NAVIGATION_POST_TYPE } from '../../../utils/constants';
13
+
14
+ export default function BlockEditorProvider( { children } ) {
15
+ const entityType = useSelect(
16
+ ( select ) => select( editSiteStore ).getEditedPostType(),
17
+ []
18
+ );
19
+ if ( entityType === NAVIGATION_POST_TYPE ) {
20
+ return (
21
+ <NavigationBlockEditorProvider>
22
+ { children }
23
+ </NavigationBlockEditorProvider>
24
+ );
25
+ }
26
+ return (
27
+ <DefaultBlockEditorProvider>{ children }</DefaultBlockEditorProvider>
28
+ );
29
+ }
@@ -16,6 +16,7 @@ import { createBlock } from '@wordpress/blocks';
16
16
  import { unlock } from '../../../lock-unlock';
17
17
  import useSiteEditorSettings from '../use-site-editor-settings';
18
18
  import { store as editSiteStore } from '../../../store';
19
+ import { NAVIGATION_POST_TYPE } from '../../../utils/constants';
19
20
 
20
21
  const { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );
21
22
 
@@ -37,7 +38,7 @@ const noop = () => {};
37
38
  export default function NavigationBlockEditorProvider( { children } ) {
38
39
  const defaultSettings = useSiteEditorSettings();
39
40
 
40
- const navigationMenuId = useEntityId( 'postType', 'wp_navigation' );
41
+ const navigationMenuId = useEntityId( 'postType', NAVIGATION_POST_TYPE );
41
42
 
42
43
  const blocks = useMemo( () => {
43
44
  return [
@@ -0,0 +1,87 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { renderHook } from '@testing-library/react';
5
+ /**
6
+ * WordPress dependencies
7
+ */
8
+ import { createBlock } from '@wordpress/blocks';
9
+
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+ import usePageContentBlocks from '../use-page-content-blocks';
14
+
15
+ jest.mock( '@wordpress/blocks', () => {
16
+ return {
17
+ __esModule: true,
18
+ ...jest.requireActual( '@wordpress/blocks' ),
19
+ createBlock( name, attributes = {}, innerBlocks = [] ) {
20
+ return {
21
+ name,
22
+ attributes,
23
+ innerBlocks,
24
+ };
25
+ },
26
+ };
27
+ } );
28
+
29
+ describe( 'usePageContentBlocks', () => {
30
+ const blocksList = [
31
+ createBlock( 'core/group', {}, [
32
+ createBlock( 'core/post-title' ),
33
+ createBlock( 'core/post-featured-image' ),
34
+ createBlock( 'core/query', {}, [
35
+ createBlock( 'core/post-title' ),
36
+ createBlock( 'core/post-featured-image' ),
37
+ createBlock( 'core/post-content' ),
38
+ ] ),
39
+ createBlock( 'core/post-content' ),
40
+ ] ),
41
+ createBlock( 'core/query' ),
42
+ createBlock( 'core/paragraph' ),
43
+ createBlock( 'core/post-content' ),
44
+ ];
45
+ it( 'should return empty array if `isPageContentFocused` is `false`', () => {
46
+ const { result } = renderHook( () =>
47
+ usePageContentBlocks( blocksList, false )
48
+ );
49
+ expect( result.current ).toEqual( [] );
50
+ } );
51
+ it( 'should return empty array if `blocks` is undefined', () => {
52
+ const { result } = renderHook( () =>
53
+ usePageContentBlocks( undefined, true )
54
+ );
55
+ expect( result.current ).toEqual( [] );
56
+ } );
57
+ it( 'should return empty array if `blocks` is an empty array', () => {
58
+ const { result } = renderHook( () => usePageContentBlocks( [], true ) );
59
+ expect( result.current ).toEqual( [] );
60
+ } );
61
+ it( 'should return new block list', () => {
62
+ const { result } = renderHook( () =>
63
+ usePageContentBlocks( blocksList, true )
64
+ );
65
+ expect( result.current ).toEqual( [
66
+ {
67
+ name: 'core/group',
68
+ attributes: {
69
+ layout: { type: 'constrained' },
70
+ style: {
71
+ spacing: {
72
+ margin: {
73
+ top: '4em', // Mimics the post editor.
74
+ },
75
+ },
76
+ },
77
+ },
78
+ innerBlocks: [
79
+ createBlock( 'core/post-title' ),
80
+ createBlock( 'core/post-featured-image' ),
81
+ createBlock( 'core/post-content' ),
82
+ createBlock( 'core/post-content' ),
83
+ ],
84
+ },
85
+ ] );
86
+ } );
87
+ } );
@@ -0,0 +1,77 @@
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
+
36
+ return result;
37
+ }
38
+
39
+ /**
40
+ * Returns a memoized array of blocks that contain only page content blocks,
41
+ * surrounded by a group block to mimic the post editor.
42
+ *
43
+ * @param {Array} blocks Block list.
44
+ * @param {boolean} isPageContentFocused Whether the page content has focus. If `true` return page content blocks. Default `false`.
45
+ *
46
+ * @return {Array} Page content blocks.
47
+ */
48
+ export default function usePageContentBlocks(
49
+ blocks,
50
+ isPageContentFocused = false
51
+ ) {
52
+ return useMemo( () => {
53
+ if ( ! isPageContentFocused || ! blocks || ! blocks.length ) {
54
+ return [];
55
+ }
56
+ return [
57
+ createBlock(
58
+ 'core/group',
59
+ {
60
+ layout: { type: 'constrained' },
61
+ style: {
62
+ spacing: {
63
+ margin: {
64
+ top: '4em', // Mimics the post editor.
65
+ },
66
+ },
67
+ },
68
+ },
69
+ flattenBlocks( blocks, ( block ) => {
70
+ if ( PAGE_CONTENT_BLOCK_TYPES[ block.name ] ) {
71
+ return createBlock( block.name );
72
+ }
73
+ } )
74
+ ),
75
+ ];
76
+ }, [ blocks, isPageContentFocused ] );
77
+ }
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useSelect } from '@wordpress/data';
5
4
  import { BlockInspector } from '@wordpress/block-editor';
6
5
  import { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';
7
6
 
@@ -10,31 +9,19 @@ import { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';
10
9
  */
11
10
  import TemplatePartConverter from '../template-part-converter';
12
11
  import { SidebarInspectorFill } from '../sidebar-edit-mode';
13
- import { store as editSiteStore } from '../../store';
14
12
  import SiteEditorCanvas from './site-editor-canvas';
15
- import getBlockEditorProvider from './get-block-editor-provider';
13
+ import BlockEditorProvider from './block-editor-provider';
16
14
 
17
15
  import { unlock } from '../../lock-unlock';
18
16
  const { PatternsMenuItems } = unlock( editPatternsPrivateApis );
19
17
  export default function BlockEditor() {
20
- const entityType = useSelect(
21
- ( select ) => select( editSiteStore ).getEditedPostType(),
22
- []
23
- );
24
-
25
- // Choose the provider based on the entity type currently
26
- // being edited.
27
- const BlockEditorProvider = getBlockEditorProvider( entityType );
28
-
29
18
  return (
30
19
  <BlockEditorProvider>
31
20
  <TemplatePartConverter />
32
21
  <SidebarInspectorFill>
33
22
  <BlockInspector />
34
23
  </SidebarInspectorFill>
35
-
36
24
  <SiteEditorCanvas />
37
-
38
25
  <PatternsMenuItems />
39
26
  </BlockEditorProvider>
40
27
  );
@@ -22,7 +22,10 @@ import EditorCanvas from './editor-canvas';
22
22
  import EditorCanvasContainer from '../editor-canvas-container';
23
23
  import useSiteEditorSettings from './use-site-editor-settings';
24
24
  import { store as editSiteStore } from '../../store';
25
- import { FOCUSABLE_ENTITIES } from '../../utils/constants';
25
+ import {
26
+ FOCUSABLE_ENTITIES,
27
+ NAVIGATION_POST_TYPE,
28
+ } from '../../utils/constants';
26
29
  import { unlock } from '../../lock-unlock';
27
30
  import PageContentFocusManager from '../page-content-focus-manager';
28
31
 
@@ -71,7 +74,7 @@ export default function SiteEditorCanvas() {
71
74
  ! isMobileViewport;
72
75
 
73
76
  const contentRef = useRef();
74
- const isTemplateTypeNavigation = templateType === 'wp_navigation';
77
+ const isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;
75
78
 
76
79
  const isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;
77
80
 
@@ -28,7 +28,10 @@ import { serialize } from '@wordpress/blocks';
28
28
  /**
29
29
  * Internal dependencies
30
30
  */
31
- import { TEMPLATE_PART_AREA_GENERAL } from '../../store/constants';
31
+ import {
32
+ TEMPLATE_PART_POST_TYPE,
33
+ TEMPLATE_PART_AREA_DEFAULT_CATEGORY,
34
+ } from '../../utils/constants';
32
35
  import {
33
36
  useExistingTemplateParts,
34
37
  getUniqueTemplatePartTitle,
@@ -46,7 +49,7 @@ export default function CreateTemplatePartModal( {
46
49
  const existingTemplateParts = useExistingTemplateParts();
47
50
 
48
51
  const [ title, setTitle ] = useState( '' );
49
- const [ area, setArea ] = useState( TEMPLATE_PART_AREA_GENERAL );
52
+ const [ area, setArea ] = useState( TEMPLATE_PART_AREA_DEFAULT_CATEGORY );
50
53
  const [ isSubmitting, setIsSubmitting ] = useState( false );
51
54
  const instanceId = useInstanceId( CreateTemplatePartModal );
52
55
 
@@ -57,14 +60,12 @@ export default function CreateTemplatePartModal( {
57
60
  );
58
61
 
59
62
  async function createTemplatePart() {
60
- if ( ! title ) {
61
- createErrorNotice( __( 'Please enter a title.' ), {
62
- type: 'snackbar',
63
- } );
63
+ if ( ! title || isSubmitting ) {
64
64
  return;
65
65
  }
66
66
 
67
67
  try {
68
+ setIsSubmitting( true );
68
69
  const uniqueTitle = getUniqueTemplatePartTitle(
69
70
  title,
70
71
  existingTemplateParts
@@ -73,7 +74,7 @@ export default function CreateTemplatePartModal( {
73
74
 
74
75
  const templatePart = await saveEntityRecord(
75
76
  'postType',
76
- 'wp_template_part',
77
+ TEMPLATE_PART_POST_TYPE,
77
78
  {
78
79
  slug: cleanSlug,
79
80
  title: uniqueTitle,
@@ -96,6 +97,8 @@ export default function CreateTemplatePartModal( {
96
97
  createErrorNotice( errorMessage, { type: 'snackbar' } );
97
98
 
98
99
  onError?.();
100
+ } finally {
101
+ setIsSubmitting( false );
99
102
  }
100
103
  }
101
104
 
@@ -108,10 +111,6 @@ export default function CreateTemplatePartModal( {
108
111
  <form
109
112
  onSubmit={ async ( event ) => {
110
113
  event.preventDefault();
111
- if ( ! title ) {
112
- return;
113
- }
114
- setIsSubmitting( true );
115
114
  await createTemplatePart();
116
115
  } }
117
116
  >
@@ -179,7 +178,7 @@ export default function CreateTemplatePartModal( {
179
178
  <Button
180
179
  variant="primary"
181
180
  type="submit"
182
- disabled={ ! title }
181
+ aria-disabled={ ! title || isSubmitting }
183
182
  isBusy={ isSubmitting }
184
183
  >
185
184
  { __( 'Create' ) }
@@ -71,7 +71,7 @@ const blockRemovalRules = {
71
71
  ),
72
72
  };
73
73
 
74
- export default function Editor( { isLoading } ) {
74
+ export default function Editor( { listViewToggleElement, isLoading } ) {
75
75
  const {
76
76
  record: editedPost,
77
77
  getTitle,
@@ -247,7 +247,11 @@ export default function Editor( { isLoading } ) {
247
247
  <InserterSidebar />
248
248
  ) ) ||
249
249
  ( shouldShowListView && (
250
- <ListViewSidebar />
250
+ <ListViewSidebar
251
+ listViewToggleElement={
252
+ listViewToggleElement
253
+ }
254
+ />
251
255
  ) ) )
252
256
  }
253
257
  sidebar={