@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,12 +1,12 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
- import { getPreviewStyle } from '../index';
4
+ import { getFamilyPreviewStyle, formatFontFamily } from '../preview-styles';
5
5
 
6
- describe( 'getPreviewStyle', () => {
6
+ describe( 'getFamilyPreviewStyle', () => {
7
7
  it( 'should return default fontStyle and fontWeight if fontFace is not provided', () => {
8
8
  const family = { fontFamily: 'Rosario' };
9
- const result = getPreviewStyle( family );
9
+ const result = getFamilyPreviewStyle( family );
10
10
  const expected = {
11
11
  fontFamily: 'Rosario',
12
12
  fontWeight: '400',
@@ -23,7 +23,7 @@ describe( 'getPreviewStyle', () => {
23
23
  { fontStyle: 'normal', fontWeight: '600' },
24
24
  ],
25
25
  };
26
- const result = getPreviewStyle( family );
26
+ const result = getFamilyPreviewStyle( family );
27
27
  const expected = {
28
28
  fontFamily: 'Rosario',
29
29
  fontStyle: 'normal',
@@ -40,7 +40,7 @@ describe( 'getPreviewStyle', () => {
40
40
  { fontStyle: 'italic', fontWeight: '600' },
41
41
  ],
42
42
  };
43
- const result = getPreviewStyle( family );
43
+ const result = getFamilyPreviewStyle( family );
44
44
  const expected = {
45
45
  fontFamily: 'Rosario',
46
46
  fontStyle: 'italic',
@@ -57,7 +57,7 @@ describe( 'getPreviewStyle', () => {
57
57
  { fontStyle: 'normal', fontWeight: '700' },
58
58
  ],
59
59
  };
60
- const result = getPreviewStyle( family );
60
+ const result = getFamilyPreviewStyle( family );
61
61
  const expected = {
62
62
  fontFamily: 'Rosario',
63
63
  fontStyle: 'normal',
@@ -74,7 +74,7 @@ describe( 'getPreviewStyle', () => {
74
74
  { fontStyle: 'normal', fontWeight: '400' },
75
75
  ],
76
76
  };
77
- const result = getPreviewStyle( family );
77
+ const result = getFamilyPreviewStyle( family );
78
78
  const expected = {
79
79
  fontFamily: 'Rosario',
80
80
  fontStyle: 'normal',
@@ -92,7 +92,7 @@ describe( 'getPreviewStyle', () => {
92
92
  { fontStyle: 'normal', fontWeight: '600' },
93
93
  ],
94
94
  };
95
- const result = getPreviewStyle( family );
95
+ const result = getFamilyPreviewStyle( family );
96
96
  const expected = {
97
97
  fontFamily: 'Rosario',
98
98
  fontStyle: 'normal',
@@ -110,7 +110,7 @@ describe( 'getPreviewStyle', () => {
110
110
  { fontStyle: 'italic', fontWeight: '200 900' },
111
111
  ],
112
112
  };
113
- const result = getPreviewStyle( family );
113
+ const result = getFamilyPreviewStyle( family );
114
114
  const expected = {
115
115
  fontFamily: 'Rosario',
116
116
  fontStyle: 'normal',
@@ -119,3 +119,43 @@ describe( 'getPreviewStyle', () => {
119
119
  expect( result ).toEqual( expected );
120
120
  } );
121
121
  } );
122
+
123
+ describe( 'formatFontFamily', () => {
124
+ it( 'should transform "Baloo 2, system-ui" correctly', () => {
125
+ expect( formatFontFamily( 'Baloo 2, system-ui' ) ).toBe(
126
+ "'Baloo 2', system-ui"
127
+ );
128
+ } );
129
+
130
+ it( 'should ignore extra spaces', () => {
131
+ expect( formatFontFamily( ' Baloo 2 , system-ui' ) ).toBe(
132
+ "'Baloo 2', system-ui"
133
+ );
134
+ } );
135
+
136
+ it( 'should keep quoted strings unchanged', () => {
137
+ expect(
138
+ formatFontFamily(
139
+ "Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif"
140
+ )
141
+ ).toBe(
142
+ "Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif"
143
+ );
144
+ } );
145
+
146
+ it( 'should wrap single font name with spaces in quotes', () => {
147
+ expect( formatFontFamily( 'Baloo 2' ) ).toBe( "'Baloo 2'" );
148
+ } );
149
+
150
+ it( 'should wrap multiple font names with spaces in quotes', () => {
151
+ expect( formatFontFamily( 'Baloo Bhai 2, Baloo 2' ) ).toBe(
152
+ "'Baloo Bhai 2', 'Baloo 2'"
153
+ );
154
+ } );
155
+
156
+ it( 'should wrap only those font names with spaces which are not already quoted', () => {
157
+ expect( formatFontFamily( 'Baloo Bhai 2, Arial' ) ).toBe(
158
+ "'Baloo Bhai 2', Arial"
159
+ );
160
+ } );
161
+ } );
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { sortFontFaces } from '../sort-font-faces';
5
+
6
+ describe( 'sortFontFaces', () => {
7
+ it( 'should prioritize "normal" fontStyle and then sort by numeric fontWeight values', () => {
8
+ const input = [
9
+ { fontStyle: 'normal', fontWeight: '500' },
10
+ { fontStyle: 'normal', fontWeight: '400' },
11
+ ];
12
+ const expected = [
13
+ { fontStyle: 'normal', fontWeight: '400' },
14
+ { fontStyle: 'normal', fontWeight: '500' },
15
+ ];
16
+ expect( sortFontFaces( input ) ).toEqual( expected );
17
+ } );
18
+
19
+ it( 'should correctly sort named fontWeight values within the same fontStyle', () => {
20
+ const input = [
21
+ { fontStyle: 'italic', fontWeight: 'bold' },
22
+ { fontStyle: 'italic', fontWeight: 'normal' },
23
+ ];
24
+ const expected = [
25
+ { fontStyle: 'italic', fontWeight: 'normal' },
26
+ { fontStyle: 'italic', fontWeight: 'bold' },
27
+ ];
28
+ expect( sortFontFaces( input ) ).toEqual( expected );
29
+ } );
30
+
31
+ it( 'should prioritize fontStyle "normal" over other styles', () => {
32
+ const input = [
33
+ { fontStyle: 'italic', fontWeight: '400' },
34
+ { fontStyle: 'normal', fontWeight: '500' },
35
+ ];
36
+ const expected = [
37
+ { fontStyle: 'normal', fontWeight: '500' },
38
+ { fontStyle: 'italic', fontWeight: '400' },
39
+ ];
40
+ expect( sortFontFaces( input ) ).toEqual( expected );
41
+ } );
42
+
43
+ it( 'should sort other fontStyles alphabetically after "normal"', () => {
44
+ const input = [
45
+ { fontStyle: 'oblique', fontWeight: '500' },
46
+ { fontStyle: 'italic', fontWeight: '500' },
47
+ ];
48
+ const expected = [
49
+ { fontStyle: 'italic', fontWeight: '500' },
50
+ { fontStyle: 'oblique', fontWeight: '500' },
51
+ ];
52
+ expect( sortFontFaces( input ) ).toEqual( expected );
53
+ } );
54
+
55
+ it( 'should correctly handle multiple test cases', () => {
56
+ const input = [
57
+ { fontStyle: 'oblique', fontWeight: '300' },
58
+ { fontStyle: 'normal', fontWeight: '400' },
59
+ { fontStyle: 'italic', fontWeight: '500' },
60
+ { fontStyle: 'italic', fontWeight: 'bold' },
61
+ { fontStyle: 'italic', fontWeight: '600 900' },
62
+ { fontStyle: 'normal', fontWeight: '500' },
63
+ ];
64
+ const expected = [
65
+ { fontStyle: 'normal', fontWeight: '400' },
66
+ { fontStyle: 'normal', fontWeight: '500' },
67
+ { fontStyle: 'italic', fontWeight: '500' },
68
+ { fontStyle: 'italic', fontWeight: '600 900' },
69
+ { fontStyle: 'italic', fontWeight: 'bold' },
70
+ { fontStyle: 'oblique', fontWeight: '300' },
71
+ ];
72
+ expect( sortFontFaces( input ) ).toEqual( expected );
73
+ } );
74
+ } );
@@ -22,7 +22,10 @@ function ScreenTypography() {
22
22
  />
23
23
  <div className="edit-site-global-styles-screen-typography">
24
24
  <VStack spacing={ 6 }>
25
- { window.__experimentalFontLibrary && <FontFamilies /> }
25
+ { FontFamilies &&
26
+ ! window.__experimentalDisableFontLibrary && (
27
+ <FontFamilies />
28
+ ) }
26
29
  <TypographyElements />
27
30
  </VStack>
28
31
  </div>
@@ -32,12 +32,19 @@ import { store as coreStore } from '@wordpress/core-data';
32
32
  */
33
33
  import useEditedEntityRecord from '../../use-edited-entity-record';
34
34
  import { store as editSiteStore } from '../../../store';
35
+ import {
36
+ TEMPLATE_POST_TYPE,
37
+ NAVIGATION_POST_TYPE,
38
+ TEMPLATE_PART_POST_TYPE,
39
+ PATTERN_TYPES,
40
+ PATTERN_SYNC_TYPES,
41
+ } from '../../../utils/constants';
35
42
 
36
43
  const typeLabels = {
37
- wp_block: __( 'Editing pattern:' ),
38
- wp_navigation: __( 'Editing navigation menu:' ),
39
- wp_template: __( 'Editing template:' ),
40
- wp_template_part: __( 'Editing template part:' ),
44
+ [ PATTERN_TYPES.user ]: __( 'Editing pattern:' ),
45
+ [ NAVIGATION_POST_TYPE ]: __( 'Editing navigation menu:' ),
46
+ [ TEMPLATE_POST_TYPE ]: __( 'Editing template:' ),
47
+ [ TEMPLATE_PART_POST_TYPE ]: __( 'Editing template part:' ),
41
48
  };
42
49
 
43
50
  export default function DocumentActions() {
@@ -129,9 +136,9 @@ function TemplateDocumentActions( { className, onBack } ) {
129
136
  }
130
137
 
131
138
  let typeIcon = icon;
132
- if ( record.type === 'wp_navigation' ) {
139
+ if ( record.type === NAVIGATION_POST_TYPE ) {
133
140
  typeIcon = navigationIcon;
134
- } else if ( record.type === 'wp_block' ) {
141
+ } else if ( record.type === PATTERN_TYPES.user ) {
135
142
  typeIcon = symbol;
136
143
  }
137
144
 
@@ -139,13 +146,15 @@ function TemplateDocumentActions( { className, onBack } ) {
139
146
  <BaseDocumentActions
140
147
  className={ classnames( className, {
141
148
  'is-synced-entity':
142
- record.wp_pattern_sync_status !== 'unsynced',
149
+ record.wp_pattern_sync_status !==
150
+ PATTERN_SYNC_TYPES.unsynced,
143
151
  } ) }
144
152
  icon={ typeIcon }
145
153
  onBack={ onBack }
146
154
  >
147
155
  <VisuallyHidden as="span">
148
- { typeLabels[ record.type ] ?? typeLabels.wp_template }
156
+ { typeLabels[ record.type ] ??
157
+ typeLabels[ TEMPLATE_POST_TYPE ] }
149
158
  </VisuallyHidden>
150
159
  { getTitle() }
151
160
  </BaseDocumentActions>
@@ -53,7 +53,7 @@ const preventDefault = ( event ) => {
53
53
  event.preventDefault();
54
54
  };
55
55
 
56
- export default function HeaderEditMode() {
56
+ export default function HeaderEditMode( { setListViewToggleElement } ) {
57
57
  const inserterButton = useRef();
58
58
  const {
59
59
  deviceType,
@@ -259,6 +259,7 @@ export default function HeaderEditMode() {
259
259
  /* translators: button label text should, if possible, be under 16 characters. */
260
260
  label={ __( 'List View' ) }
261
261
  onClick={ toggleListView }
262
+ ref={ setListViewToggleElement }
262
263
  shortcut={ listViewShortcut }
263
264
  showTooltip={ ! showIconLabels }
264
265
  variant={
@@ -127,6 +127,8 @@ export default function Layout() {
127
127
  const isEditorLoading = useIsSiteEditorLoading();
128
128
  const [ isResizableFrameOversized, setIsResizableFrameOversized ] =
129
129
  useState( false );
130
+ const [ listViewToggleElement, setListViewToggleElement ] =
131
+ useState( null );
130
132
 
131
133
  // This determines which animation variant should apply to the header.
132
134
  // There is also a `isDistractionFreeHovering` state that gets priority
@@ -256,7 +258,11 @@ export default function Layout() {
256
258
  ease: 'easeOut',
257
259
  } }
258
260
  >
259
- <Header />
261
+ <Header
262
+ setListViewToggleElement={
263
+ setListViewToggleElement
264
+ }
265
+ />
260
266
  </NavigableRegion>
261
267
  ) }
262
268
  </AnimatePresence>
@@ -369,6 +375,9 @@ export default function Layout() {
369
375
  } }
370
376
  >
371
377
  <Editor
378
+ listViewToggleElement={
379
+ listViewToggleElement
380
+ }
372
381
  isLoading={
373
382
  isEditorLoading
374
383
  }
@@ -19,10 +19,22 @@ import {
19
19
  } from '@wordpress/icons';
20
20
  import { _x } from '@wordpress/i18n';
21
21
 
22
+ /**
23
+ * Internal dependencies
24
+ */
25
+ import {
26
+ TEMPLATE_POST_TYPE,
27
+ TEMPLATE_PART_POST_TYPE,
28
+ TEMPLATE_ORIGINS,
29
+ } from '../../utils/constants';
30
+
22
31
  /** @typedef {'wp_template'|'wp_template_part'} TemplateType */
23
32
 
24
33
  /** @type {TemplateType} */
25
- const TEMPLATE_POST_TYPE_NAMES = [ 'wp_template', 'wp_template_part' ];
34
+ const TEMPLATE_POST_TYPE_NAMES = [
35
+ TEMPLATE_POST_TYPE,
36
+ TEMPLATE_PART_POST_TYPE,
37
+ ];
26
38
 
27
39
  /**
28
40
  * @typedef {'theme'|'plugin'|'site'|'user'} AddedByType
@@ -64,11 +76,12 @@ export function useAddedBy( postType, postId ) {
64
76
  // or 'custom' source.
65
77
  if (
66
78
  template.has_theme_file &&
67
- ( template.origin === 'theme' ||
79
+ ( template.origin === TEMPLATE_ORIGINS.theme ||
68
80
  ( ! template.origin &&
69
- [ 'theme', 'custom' ].includes(
70
- template.source
71
- ) ) )
81
+ [
82
+ TEMPLATE_ORIGINS.theme,
83
+ TEMPLATE_ORIGINS.custom,
84
+ ].includes( template.source ) ) )
72
85
  ) {
73
86
  return {
74
87
  type: 'theme',
@@ -76,18 +89,23 @@ export function useAddedBy( postType, postId ) {
76
89
  text:
77
90
  getTheme( template.theme )?.name?.rendered ||
78
91
  template.theme,
79
- isCustomized: template.source === 'custom',
92
+ isCustomized:
93
+ template.source === TEMPLATE_ORIGINS.custom,
80
94
  };
81
95
  }
82
96
 
83
97
  // Added by plugin.
84
- if ( template.has_theme_file && template.origin === 'plugin' ) {
98
+ if (
99
+ template.has_theme_file &&
100
+ template.origin === TEMPLATE_ORIGINS.plugin
101
+ ) {
85
102
  return {
86
- type: 'plugin',
103
+ type: TEMPLATE_ORIGINS.plugin,
87
104
  icon: pluginIcon,
88
105
  text:
89
106
  getPlugin( template.theme )?.name || template.theme,
90
- isCustomized: template.source === 'custom',
107
+ isCustomized:
108
+ template.source === TEMPLATE_ORIGINS.custom,
91
109
  };
92
110
  }
93
111
 
@@ -97,7 +115,7 @@ export function useAddedBy( postType, postId ) {
97
115
  // site logo and title.
98
116
  if (
99
117
  ! template.has_theme_file &&
100
- template.source === 'custom' &&
118
+ template.source === TEMPLATE_ORIGINS.custom &&
101
119
  ! template.author
102
120
  ) {
103
121
  const siteData = getEntityRecord(
@@ -176,7 +194,7 @@ export default function AddedBy( { postType, postId } ) {
176
194
  { text }
177
195
  { isCustomized && (
178
196
  <span className="edit-site-list-added-by__customized-info">
179
- { postType === 'wp_template'
197
+ { postType === TEMPLATE_POST_TYPE
180
198
  ? _x( 'Customized', 'template' )
181
199
  : _x( 'Customized', 'template part' ) }
182
200
  </span>
@@ -17,6 +17,10 @@ import Header from './header';
17
17
  import Table from './table';
18
18
  import useTitle from '../routes/use-title';
19
19
  import { unlock } from '../../lock-unlock';
20
+ import {
21
+ TEMPLATE_POST_TYPE,
22
+ TEMPLATE_PART_POST_TYPE,
23
+ } from '../../utils/constants';
20
24
 
21
25
  const { useLocation } = unlock( routerPrivateApis );
22
26
 
@@ -25,7 +29,9 @@ export default function List() {
25
29
  params: { path },
26
30
  } = useLocation();
27
31
  const templateType =
28
- path === '/wp_template/all' ? 'wp_template' : 'wp_template_part';
32
+ path === '/wp_template/all'
33
+ ? TEMPLATE_POST_TYPE
34
+ : TEMPLATE_PART_POST_TYPE;
29
35
 
30
36
  useRegisterShortcuts();
31
37
 
@@ -9,12 +9,7 @@ import { useEffect } from '@wordpress/element';
9
9
  /**
10
10
  * Internal dependencies
11
11
  */
12
-
13
- const PAGE_CONTENT_BLOCK_TYPES = [
14
- 'core/post-title',
15
- 'core/post-featured-image',
16
- 'core/post-content',
17
- ];
12
+ import { PAGE_CONTENT_BLOCK_TYPES } from '../../utils/constants';
18
13
 
19
14
  /**
20
15
  * Component that when rendered, makes it so that the site editor allows only
@@ -48,8 +43,7 @@ const withDisableNonPageContentBlocks = createHigherOrderComponent(
48
43
  ( BlockEdit ) => ( props ) => {
49
44
  const isDescendentOfQueryLoop = props.context.queryId !== undefined;
50
45
  const isPageContent =
51
- PAGE_CONTENT_BLOCK_TYPES.includes( props.name ) &&
52
- ! isDescendentOfQueryLoop;
46
+ PAGE_CONTENT_BLOCK_TYPES[ props.name ] && ! isDescendentOfQueryLoop;
53
47
  const mode = isPageContent ? 'contentOnly' : undefined;
54
48
  useBlockEditingMode( mode );
55
49
  return <BlockEdit { ...props } />;
@@ -70,7 +70,7 @@ export default function DuplicateMenuItem( {
70
70
 
71
71
  const result = await saveEntityRecord(
72
72
  'postType',
73
- 'wp_template_part',
73
+ TEMPLATE_PART_POST_TYPE,
74
74
  { slug, title, content, area },
75
75
  { throwOnError: true }
76
76
  );
@@ -156,13 +156,13 @@ export default function DuplicateMenuItem( {
156
156
  const title = sprintf(
157
157
  /* translators: %s: Existing pattern title */
158
158
  __( '%s (Copy)' ),
159
- item.title
159
+ item.title || item.name
160
160
  );
161
- const categories = await getCategories( item.categories );
161
+ const categories = await getCategories( item.categories || [] );
162
162
 
163
163
  const result = await saveEntityRecord(
164
164
  'postType',
165
- 'wp_block',
165
+ PATTERN_TYPES.user,
166
166
  {
167
167
  content: isThemePattern
168
168
  ? item.content
@@ -179,7 +179,7 @@ export default function DuplicateMenuItem( {
179
179
  sprintf(
180
180
  // translators: %s: The new pattern's title e.g. 'Call to action (copy)'.
181
181
  __( '"%s" duplicated.' ),
182
- item.title
182
+ item.title || item.name
183
183
  ),
184
184
  {
185
185
  type: 'snackbar',
@@ -75,7 +75,7 @@ function GridItem( { categoryId, item, ...props } ) {
75
75
  postType: item.type,
76
76
  postId: isUserPattern ? item.id : item.name,
77
77
  categoryId,
78
- categoryType: item.type,
78
+ categoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,
79
79
  } );
80
80
 
81
81
  const isEmpty = ! item.blocks?.length;
@@ -113,14 +113,14 @@ function GridItem( { categoryId, item, ...props } ) {
113
113
  const exportAsJSON = () => {
114
114
  const json = {
115
115
  __file: item.type,
116
- title: item.title,
116
+ title: item.title || item.name,
117
117
  content: item.patternBlock.content.raw,
118
118
  syncStatus: item.patternBlock.wp_pattern_sync_status,
119
119
  };
120
120
 
121
121
  return downloadjs(
122
122
  JSON.stringify( json, null, 2 ),
123
- `${ kebabCase( item.title ) }.json`,
123
+ `${ kebabCase( item.title || item.name ) }.json`,
124
124
  'application/json'
125
125
  );
126
126
  };
@@ -160,7 +160,7 @@ function GridItem( { categoryId, item, ...props } ) {
160
160
  : sprintf(
161
161
  // translators: %s: The pattern or template part's title e.g. 'Call to action'.
162
162
  __( 'Are you sure you want to delete "%s"?' ),
163
- item.title
163
+ item.title || item.name
164
164
  );
165
165
 
166
166
  const additionalStyles = ! backgroundColor
@@ -246,7 +246,7 @@ function GridItem( { categoryId, item, ...props } ) {
246
246
  // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
247
247
  tabIndex="-1"
248
248
  >
249
- { item.title }
249
+ { item.title || item.name }
250
250
  </Button>
251
251
  </Heading>
252
252
  ) }
@@ -18,7 +18,7 @@ const { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );
18
18
 
19
19
  export default function PagePatterns() {
20
20
  const { categoryType, categoryId } = getQueryArgs( window.location.href );
21
- const type = categoryType || PATTERN_TYPES.user;
21
+ const type = categoryType || PATTERN_TYPES.theme;
22
22
  const category = categoryId || PATTERN_DEFAULT_CATEGORY;
23
23
  const settings = usePatternSettings();
24
24
 
@@ -7,7 +7,11 @@ import { noCase } from 'change-case';
7
7
  /**
8
8
  * Internal dependencies
9
9
  */
10
- import { PATTERN_DEFAULT_CATEGORY } from '../../utils/constants';
10
+ import {
11
+ PATTERN_DEFAULT_CATEGORY,
12
+ PATTERN_USER_CATEGORY,
13
+ PATTERN_TYPES,
14
+ } from '../../utils/constants';
11
15
 
12
16
  // Default search helpers.
13
17
  const defaultGetName = ( item ) => item.name || '';
@@ -141,6 +145,8 @@ function getItemSearchRank( item, searchTerm, config ) {
141
145
 
142
146
  let rank =
143
147
  categoryId === PATTERN_DEFAULT_CATEGORY ||
148
+ ( categoryId === PATTERN_USER_CATEGORY &&
149
+ item.type === PATTERN_TYPES.user ) ||
144
150
  hasCategory( item, categoryId )
145
151
  ? 1
146
152
  : 0;