@wordpress/edit-site 5.18.0 → 5.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-pattern/index.js +62 -1
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/add-new-template/index.js +3 -2
  5. package/build/components/add-new-template/index.js.map +1 -1
  6. package/build/components/add-new-template/new-template.js +6 -1
  7. package/build/components/add-new-template/new-template.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +6 -1
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/app/index.js +2 -7
  11. package/build/components/app/index.js.map +1 -1
  12. package/build/components/block-editor/back-button.js +3 -2
  13. package/build/components/block-editor/back-button.js.map +1 -1
  14. package/build/components/block-editor/editor-canvas.js +20 -16
  15. package/build/components/block-editor/editor-canvas.js.map +1 -1
  16. package/build/components/block-editor/site-editor-canvas.js +1 -3
  17. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  18. package/build/components/block-editor/use-site-editor-settings.js +8 -4
  19. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  20. package/build/components/canvas-loader/index.js +18 -1
  21. package/build/components/canvas-loader/index.js.map +1 -1
  22. package/build/components/editor/index.js +3 -8
  23. package/build/components/editor/index.js.map +1 -1
  24. package/build/components/global-styles/dimensions-panel.js +5 -4
  25. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  26. package/build/components/global-styles/font-families.js +68 -0
  27. package/build/components/global-styles/font-families.js.map +1 -0
  28. package/build/components/global-styles/font-family-item.js +47 -0
  29. package/build/components/global-styles/font-family-item.js.map +1 -0
  30. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +31 -0
  31. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
  32. package/build/components/global-styles/font-library-modal/context.js +285 -0
  33. package/build/components/global-styles/font-library-modal/context.js.map +1 -0
  34. package/build/components/global-styles/font-library-modal/font-card.js +58 -0
  35. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -0
  36. package/build/components/global-styles/font-library-modal/font-demo.js +69 -0
  37. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -0
  38. package/build/components/global-styles/font-library-modal/font-variant.js +51 -0
  39. package/build/components/global-styles/font-library-modal/font-variant.js.map +1 -0
  40. package/build/components/global-styles/font-library-modal/fonts-grid.js +54 -0
  41. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
  42. package/build/components/global-styles/font-library-modal/index.js +47 -0
  43. package/build/components/global-styles/font-library-modal/index.js.map +1 -0
  44. package/build/components/global-styles/font-library-modal/installed-fonts.js +128 -0
  45. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
  46. package/build/components/global-styles/font-library-modal/library-font-card.js +44 -0
  47. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
  48. package/build/components/global-styles/font-library-modal/library-font-details.js +43 -0
  49. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
  50. package/build/components/global-styles/font-library-modal/library-font-variant.js +59 -0
  51. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
  52. package/build/components/global-styles/font-library-modal/local-fonts.js +143 -0
  53. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
  54. package/build/components/global-styles/font-library-modal/resolvers.js +37 -0
  55. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -0
  56. package/build/components/global-styles/font-library-modal/tab-layout.js +45 -0
  57. package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
  58. package/build/components/global-styles/font-library-modal/utils/constants.js +37 -0
  59. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
  60. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
  61. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
  62. package/build/components/global-styles/font-library-modal/utils/index.js +205 -0
  63. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -0
  64. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +22 -0
  65. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
  66. package/build/components/global-styles/font-library-modal/utils/toggleFont.js +92 -0
  67. package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
  68. package/build/components/global-styles/global-styles-provider.js +7 -12
  69. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  70. package/build/components/global-styles/screen-block.js +34 -21
  71. package/build/components/global-styles/screen-block.js.map +1 -1
  72. package/build/components/global-styles/screen-revisions/index.js +1 -3
  73. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  74. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  75. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  76. package/build/components/global-styles/screen-typography.js +4 -72
  77. package/build/components/global-styles/screen-typography.js.map +1 -1
  78. package/build/components/global-styles/style-variations-container.js +3 -5
  79. package/build/components/global-styles/style-variations-container.js.map +1 -1
  80. package/build/components/global-styles/typogrphy-elements.js +96 -0
  81. package/build/components/global-styles/typogrphy-elements.js.map +1 -0
  82. package/build/components/page-patterns/duplicate-menu-item.js +52 -16
  83. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  84. package/build/components/page-patterns/grid-item.js +46 -20
  85. package/build/components/page-patterns/grid-item.js.map +1 -1
  86. package/build/components/page-patterns/header.js +3 -7
  87. package/build/components/page-patterns/header.js.map +1 -1
  88. package/build/components/page-patterns/index.js +3 -3
  89. package/build/components/page-patterns/index.js.map +1 -1
  90. package/build/components/page-patterns/patterns-list.js +7 -7
  91. package/build/components/page-patterns/patterns-list.js.map +1 -1
  92. package/build/components/page-patterns/rename-menu-item.js +6 -5
  93. package/build/components/page-patterns/rename-menu-item.js.map +1 -1
  94. package/build/components/page-patterns/search-items.js +8 -2
  95. package/build/components/page-patterns/search-items.js.map +1 -1
  96. package/build/components/page-patterns/use-patterns.js +53 -27
  97. package/build/components/page-patterns/use-patterns.js.map +1 -1
  98. package/build/components/page-patterns/utils.js +1 -20
  99. package/build/components/page-patterns/utils.js.map +1 -1
  100. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +33 -24
  101. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  102. package/build/components/sidebar-edit-mode/page-panels/hooks.js +64 -0
  103. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
  104. package/build/components/sidebar-edit-mode/page-panels/index.js +1 -4
  105. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  106. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  107. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  108. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +56 -0
  109. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
  110. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +91 -0
  111. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
  112. package/build/components/sidebar-edit-mode/template-panel/index.js +11 -9
  113. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  114. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +6 -4
  115. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  116. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +211 -0
  117. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
  118. package/build/components/sidebar-navigation-screen/index.js +6 -4
  119. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  120. package/build/components/sidebar-navigation-screen-details-footer/index.js +32 -4
  121. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  122. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
  123. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  124. package/build/components/sidebar-navigation-screen-global-styles/index.js +4 -31
  125. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  126. package/build/components/sidebar-navigation-screen-page/index.js +3 -3
  127. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  128. package/build/components/sidebar-navigation-screen-pattern/index.js +18 -8
  129. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  130. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
  131. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  132. package/build/components/sidebar-navigation-screen-patterns/index.js +7 -35
  133. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  134. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +38 -4
  135. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -1
  137. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-template/index.js +2 -2
  139. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-templates/index.js +1 -1
  141. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  142. package/build/components/template-actions/index.js +7 -4
  143. package/build/components/template-actions/index.js.map +1 -1
  144. package/build/components/template-actions/rename-menu-item.js +3 -2
  145. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  146. package/build/components/welcome-guide/styles.js +2 -2
  147. package/build/components/welcome-guide/styles.js.map +1 -1
  148. package/build/hooks/push-changes-to-global-styles/index.js +5 -37
  149. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  150. package/build/store/actions.js +29 -6
  151. package/build/store/actions.js.map +1 -1
  152. package/build/utils/constants.js +45 -2
  153. package/build/utils/constants.js.map +1 -1
  154. package/build/utils/is-template-removable.js +6 -1
  155. package/build/utils/is-template-removable.js.map +1 -1
  156. package/build/utils/is-template-revertable.js +6 -1
  157. package/build/utils/is-template-revertable.js.map +1 -1
  158. package/build-module/components/add-new-pattern/index.js +66 -5
  159. package/build-module/components/add-new-pattern/index.js.map +1 -1
  160. package/build-module/components/add-new-template/index.js +3 -2
  161. package/build-module/components/add-new-template/index.js.map +1 -1
  162. package/build-module/components/add-new-template/new-template.js +6 -1
  163. package/build-module/components/add-new-template/new-template.js.map +1 -1
  164. package/build-module/components/add-new-template/utils.js +6 -1
  165. package/build-module/components/add-new-template/utils.js.map +1 -1
  166. package/build-module/components/app/index.js +2 -7
  167. package/build-module/components/app/index.js.map +1 -1
  168. package/build-module/components/block-editor/back-button.js +3 -2
  169. package/build-module/components/block-editor/back-button.js.map +1 -1
  170. package/build-module/components/block-editor/editor-canvas.js +21 -17
  171. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  172. package/build-module/components/block-editor/site-editor-canvas.js +3 -5
  173. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  174. package/build-module/components/block-editor/use-site-editor-settings.js +8 -4
  175. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  176. package/build-module/components/canvas-loader/index.js +18 -1
  177. package/build-module/components/canvas-loader/index.js.map +1 -1
  178. package/build-module/components/editor/index.js +3 -8
  179. package/build-module/components/editor/index.js.map +1 -1
  180. package/build-module/components/global-styles/dimensions-panel.js +5 -4
  181. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  182. package/build-module/components/global-styles/font-families.js +58 -0
  183. package/build-module/components/global-styles/font-families.js.map +1 -0
  184. package/build-module/components/global-styles/font-family-item.js +40 -0
  185. package/build-module/components/global-styles/font-family-item.js.map +1 -0
  186. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +23 -0
  187. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
  188. package/build-module/components/global-styles/font-library-modal/context.js +276 -0
  189. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -0
  190. package/build-module/components/global-styles/font-library-modal/font-card.js +49 -0
  191. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -0
  192. package/build-module/components/global-styles/font-library-modal/font-demo.js +62 -0
  193. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -0
  194. package/build-module/components/global-styles/font-library-modal/font-variant.js +42 -0
  195. package/build-module/components/global-styles/font-library-modal/font-variant.js.map +1 -0
  196. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +47 -0
  197. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
  198. package/build-module/components/global-styles/font-library-modal/index.js +38 -0
  199. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -0
  200. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +120 -0
  201. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
  202. package/build-module/components/global-styles/font-library-modal/library-font-card.js +36 -0
  203. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
  204. package/build-module/components/global-styles/font-library-modal/library-font-details.js +34 -0
  205. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
  206. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +50 -0
  207. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
  208. package/build-module/components/global-styles/font-library-modal/local-fonts.js +135 -0
  209. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
  210. package/build-module/components/global-styles/font-library-modal/resolvers.js +28 -0
  211. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -0
  212. package/build-module/components/global-styles/font-library-modal/tab-layout.js +37 -0
  213. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
  214. package/build-module/components/global-styles/font-library-modal/utils/constants.js +26 -0
  215. package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
  216. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +52 -0
  217. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
  218. package/build-module/components/global-styles/font-library-modal/utils/index.js +190 -0
  219. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -0
  220. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +16 -0
  221. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
  222. package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js +86 -0
  223. package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
  224. package/build-module/components/global-styles/global-styles-provider.js +7 -12
  225. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  226. package/build-module/components/global-styles/screen-block.js +34 -21
  227. package/build-module/components/global-styles/screen-block.js.map +1 -1
  228. package/build-module/components/global-styles/screen-revisions/index.js +1 -3
  229. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  230. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  231. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  232. package/build-module/components/global-styles/screen-typography.js +6 -74
  233. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  234. package/build-module/components/global-styles/style-variations-container.js +3 -5
  235. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  236. package/build-module/components/global-styles/typogrphy-elements.js +87 -0
  237. package/build-module/components/global-styles/typogrphy-elements.js.map +1 -0
  238. package/build-module/components/page-patterns/duplicate-menu-item.js +51 -16
  239. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  240. package/build-module/components/page-patterns/grid-item.js +47 -21
  241. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  242. package/build-module/components/page-patterns/header.js +3 -7
  243. package/build-module/components/page-patterns/header.js.map +1 -1
  244. package/build-module/components/page-patterns/index.js +3 -3
  245. package/build-module/components/page-patterns/index.js.map +1 -1
  246. package/build-module/components/page-patterns/patterns-list.js +7 -7
  247. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  248. package/build-module/components/page-patterns/rename-menu-item.js +6 -5
  249. package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
  250. package/build-module/components/page-patterns/search-items.js +8 -2
  251. package/build-module/components/page-patterns/search-items.js.map +1 -1
  252. package/build-module/components/page-patterns/use-patterns.js +54 -28
  253. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  254. package/build-module/components/page-patterns/utils.js +0 -11
  255. package/build-module/components/page-patterns/utils.js.map +1 -1
  256. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +34 -27
  257. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  258. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +54 -0
  259. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
  260. package/build-module/components/sidebar-edit-mode/page-panels/index.js +1 -4
  261. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  262. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  263. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  264. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +49 -0
  265. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
  266. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +85 -0
  267. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
  268. package/build-module/components/sidebar-edit-mode/template-panel/index.js +12 -10
  269. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  270. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +8 -6
  271. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  272. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +202 -0
  273. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
  274. package/build-module/components/sidebar-navigation-screen/index.js +6 -4
  275. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  276. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +32 -5
  277. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  278. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
  279. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  280. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -33
  281. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  282. package/build-module/components/sidebar-navigation-screen-page/index.js +3 -3
  283. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  284. package/build-module/components/sidebar-navigation-screen-pattern/index.js +19 -9
  285. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  286. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
  287. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  288. package/build-module/components/sidebar-navigation-screen-patterns/index.js +10 -38
  289. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  290. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +38 -4
  291. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  292. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -2
  293. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  294. package/build-module/components/sidebar-navigation-screen-template/index.js +2 -2
  295. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  296. package/build-module/components/sidebar-navigation-screen-templates/index.js +1 -1
  297. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  298. package/build-module/components/template-actions/index.js +7 -4
  299. package/build-module/components/template-actions/index.js.map +1 -1
  300. package/build-module/components/template-actions/rename-menu-item.js +3 -2
  301. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  302. package/build-module/components/welcome-guide/styles.js +2 -2
  303. package/build-module/components/welcome-guide/styles.js.map +1 -1
  304. package/build-module/hooks/push-changes-to-global-styles/index.js +5 -37
  305. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  306. package/build-module/store/actions.js +30 -7
  307. package/build-module/store/actions.js.map +1 -1
  308. package/build-module/utils/constants.js +35 -1
  309. package/build-module/utils/constants.js.map +1 -1
  310. package/build-module/utils/is-template-removable.js +6 -1
  311. package/build-module/utils/is-template-removable.js.map +1 -1
  312. package/build-module/utils/is-template-revertable.js +6 -1
  313. package/build-module/utils/is-template-revertable.js.map +1 -1
  314. package/build-style/style-rtl.css +244 -37
  315. package/build-style/style.css +244 -37
  316. package/lib/inflate.js +4082 -0
  317. package/lib/lib-font.browser.js +3831 -0
  318. package/lib/unbrotli.js +2679 -0
  319. package/package.json +40 -40
  320. package/src/components/add-new-pattern/index.js +83 -5
  321. package/src/components/add-new-template/index.js +3 -2
  322. package/src/components/add-new-template/new-template.js +6 -1
  323. package/src/components/add-new-template/utils.js +12 -3
  324. package/src/components/app/index.js +9 -12
  325. package/src/components/block-editor/back-button.js +6 -2
  326. package/src/components/block-editor/editor-canvas.js +31 -19
  327. package/src/components/block-editor/site-editor-canvas.js +2 -10
  328. package/src/components/block-editor/style.scss +88 -1
  329. package/src/components/block-editor/use-site-editor-settings.js +26 -19
  330. package/src/components/canvas-loader/index.js +12 -1
  331. package/src/components/canvas-loader/style.scss +1 -1
  332. package/src/components/editor/index.js +3 -8
  333. package/src/components/global-styles/dimensions-panel.js +8 -4
  334. package/src/components/global-styles/font-families.js +71 -0
  335. package/src/components/global-styles/font-family-item.js +44 -0
  336. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +33 -0
  337. package/src/components/global-styles/font-library-modal/context.js +347 -0
  338. package/src/components/global-styles/font-library-modal/font-card.js +70 -0
  339. package/src/components/global-styles/font-library-modal/font-demo.js +57 -0
  340. package/src/components/global-styles/font-library-modal/font-variant.js +53 -0
  341. package/src/components/global-styles/font-library-modal/fonts-grid.js +55 -0
  342. package/src/components/global-styles/font-library-modal/index.js +42 -0
  343. package/src/components/global-styles/font-library-modal/installed-fonts.js +174 -0
  344. package/src/components/global-styles/font-library-modal/library-font-card.js +40 -0
  345. package/src/components/global-styles/font-library-modal/library-font-details.js +46 -0
  346. package/src/components/global-styles/font-library-modal/library-font-variant.js +54 -0
  347. package/src/components/global-styles/font-library-modal/local-fonts.js +160 -0
  348. package/src/components/global-styles/font-library-modal/resolvers.js +29 -0
  349. package/src/components/global-styles/font-library-modal/style.scss +113 -0
  350. package/src/components/global-styles/font-library-modal/tab-layout.js +50 -0
  351. package/src/components/global-styles/font-library-modal/utils/constants.js +31 -0
  352. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
  353. package/src/components/global-styles/font-library-modal/utils/index.js +213 -0
  354. package/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js +15 -0
  355. package/src/components/global-styles/font-library-modal/utils/test/getDisplaySrcFromFontFace.spec.js +53 -0
  356. package/src/components/global-styles/font-library-modal/utils/test/getFontFaceVariantName.spec.js +30 -0
  357. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +240 -0
  358. package/src/components/global-styles/font-library-modal/utils/test/getPreviewStyle.spec.js +121 -0
  359. package/src/components/global-styles/font-library-modal/utils/test/isUrlEncoded.spec.js +31 -0
  360. package/src/components/global-styles/font-library-modal/utils/test/makeFamiliesFromFaces.spec.js +57 -0
  361. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +62 -0
  362. package/src/components/global-styles/font-library-modal/utils/test/mergeFontFaces.spec.js +56 -0
  363. package/src/components/global-styles/font-library-modal/utils/test/mergeFontFamilies.spec.js +108 -0
  364. package/src/components/global-styles/font-library-modal/utils/test/setUIValuesNeeded.spec.js +41 -0
  365. package/src/components/global-styles/font-library-modal/utils/test/toggleFont.spec.js +141 -0
  366. package/src/components/global-styles/font-library-modal/utils/toggleFont.js +90 -0
  367. package/src/components/global-styles/global-styles-provider.js +2 -7
  368. package/src/components/global-styles/screen-block.js +42 -20
  369. package/src/components/global-styles/screen-revisions/index.js +0 -2
  370. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
  371. package/src/components/global-styles/screen-typography.js +7 -95
  372. package/src/components/global-styles/style-variations-container.js +0 -2
  373. package/src/components/global-styles/typogrphy-elements.js +110 -0
  374. package/src/components/list/style.scss +2 -0
  375. package/src/components/page-patterns/duplicate-menu-item.js +63 -20
  376. package/src/components/page-patterns/grid-item.js +77 -30
  377. package/src/components/page-patterns/header.js +3 -12
  378. package/src/components/page-patterns/index.js +3 -3
  379. package/src/components/page-patterns/patterns-list.js +7 -7
  380. package/src/components/page-patterns/rename-menu-item.js +18 -7
  381. package/src/components/page-patterns/search-items.js +14 -2
  382. package/src/components/page-patterns/style.scss +1 -5
  383. package/src/components/page-patterns/use-patterns.js +67 -33
  384. package/src/components/page-patterns/utils.js +0 -19
  385. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +47 -33
  386. package/src/components/sidebar-edit-mode/page-panels/hooks.js +83 -0
  387. package/src/components/sidebar-edit-mode/page-panels/index.js +0 -4
  388. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
  389. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +44 -0
  390. package/src/components/sidebar-edit-mode/page-panels/style.scss +41 -10
  391. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +82 -0
  392. package/src/components/sidebar-edit-mode/template-panel/index.js +28 -24
  393. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +19 -15
  394. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +270 -0
  395. package/src/components/sidebar-navigation-screen/index.js +4 -9
  396. package/src/components/sidebar-navigation-screen/style.scss +7 -1
  397. package/src/components/sidebar-navigation-screen-details-footer/index.js +38 -10
  398. package/src/components/sidebar-navigation-screen-details-footer/style.scss +10 -3
  399. package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +2 -0
  400. package/src/components/sidebar-navigation-screen-global-styles/index.js +6 -44
  401. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +0 -4
  402. package/src/components/sidebar-navigation-screen-page/index.js +3 -3
  403. package/src/components/sidebar-navigation-screen-pattern/index.js +20 -7
  404. package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -3
  405. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +46 -13
  406. package/src/components/sidebar-navigation-screen-patterns/index.js +14 -49
  407. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +48 -6
  408. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -5
  409. package/src/components/sidebar-navigation-screen-template/index.js +2 -4
  410. package/src/components/sidebar-navigation-screen-templates/index.js +1 -1
  411. package/src/components/template-actions/index.js +14 -8
  412. package/src/components/template-actions/rename-menu-item.js +15 -4
  413. package/src/components/welcome-guide/styles.js +2 -2
  414. package/src/hooks/push-changes-to-global-styles/index.js +6 -49
  415. package/src/store/actions.js +39 -13
  416. package/src/store/test/actions.js +0 -1
  417. package/src/store/test/reducer.js +0 -1
  418. package/src/style.scss +1 -1
  419. package/src/utils/constants.js +38 -3
  420. package/src/utils/is-template-removable.js +8 -1
  421. package/src/utils/is-template-revertable.js +8 -1
  422. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -30
  423. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
  424. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -23
  425. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
  426. package/src/components/sidebar-navigation-screen-global-styles/style.scss +0 -12
  427. package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -24
@@ -16,11 +16,14 @@ import useInitEditedEntityFromURL from '../sync-state-with-url/use-init-edited-e
16
16
  import usePatternDetails from './use-pattern-details';
17
17
  import { store as editSiteStore } from '../../store';
18
18
  import { unlock } from '../../lock-unlock';
19
+ import TemplateActions from '../template-actions';
19
20
 
20
21
  export default function SidebarNavigationScreenPattern() {
21
- const { params } = useNavigator();
22
+ const navigator = useNavigator();
23
+ const {
24
+ params: { postType, postId },
25
+ } = navigator;
22
26
  const { categoryType } = getQueryArgs( window.location.href );
23
- const { postType, postId } = params;
24
27
  const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
25
28
 
26
29
  useInitEditedEntityFromURL();
@@ -38,11 +41,21 @@ export default function SidebarNavigationScreenPattern() {
38
41
  return (
39
42
  <SidebarNavigationScreen
40
43
  actions={
41
- <SidebarButton
42
- onClick={ () => setCanvasMode( 'edit' ) }
43
- label={ __( 'Edit' ) }
44
- icon={ pencil }
45
- />
44
+ <>
45
+ <TemplateActions
46
+ postType={ postType }
47
+ postId={ postId }
48
+ toggleProps={ { as: SidebarButton } }
49
+ onRemove={ () => {
50
+ navigator.goTo( backPath );
51
+ } }
52
+ />
53
+ <SidebarButton
54
+ onClick={ () => setCanvasMode( 'edit' ) }
55
+ label={ __( 'Edit' ) }
56
+ icon={ pencil }
57
+ />
58
+ </>
46
59
  }
47
60
  backPath={ backPath }
48
61
  { ...patternDetails }
@@ -24,6 +24,3 @@
24
24
  margin-right: $grid-unit-10;
25
25
  }
26
26
 
27
- .edit-site-sidebar-navigation-screen-pattern__lock-icon {
28
- display: inline-flex;
29
- }
@@ -35,10 +35,16 @@ export default function usePatternDetails( postType, postId ) {
35
35
  select( editorStore ).__experimentalGetDefaultTemplatePartAreas(),
36
36
  []
37
37
  );
38
- const currentTheme = useSelect(
39
- ( select ) => select( coreStore ).getCurrentTheme(),
40
- []
41
- );
38
+ const { currentTheme, userPatternCategories } = useSelect( ( select ) => {
39
+ const { getCurrentTheme, getUserPatternCategories } =
40
+ select( coreStore );
41
+
42
+ return {
43
+ currentTheme: getCurrentTheme(),
44
+ userPatternCategories: getUserPatternCategories(),
45
+ };
46
+ }, [] );
47
+
42
48
  const addedBy = useAddedBy( postType, postId );
43
49
  const isAddedByActiveTheme =
44
50
  addedBy.type === 'theme' && record.theme === currentTheme?.stylesheet;
@@ -46,11 +52,18 @@ export default function usePatternDetails( postType, postId ) {
46
52
  let description = getDescription();
47
53
 
48
54
  if ( ! description && addedBy.text ) {
49
- description = sprintf(
50
- // translators: %s: pattern title e.g: "Header".
51
- __( 'This is the %s pattern.' ),
52
- getTitle()
53
- );
55
+ description =
56
+ postType === 'wp_block'
57
+ ? sprintf(
58
+ // translators: %s: pattern title e.g: "Header".
59
+ __( 'This is the %s pattern.' ),
60
+ getTitle()
61
+ )
62
+ : sprintf(
63
+ // translators: %s: template part title e.g: "Header".
64
+ __( 'This is the %s template part.' ),
65
+ getTitle()
66
+ );
54
67
  }
55
68
 
56
69
  if ( ! description && postType === 'wp_block' && record?.title ) {
@@ -61,10 +74,8 @@ export default function usePatternDetails( postType, postId ) {
61
74
  );
62
75
  }
63
76
 
64
- const footer = !! record?.modified ? (
65
- <SidebarNavigationScreenDetailsFooter
66
- lastModifiedDateTime={ record.modified }
67
- />
77
+ const footer = record?.modified ? (
78
+ <SidebarNavigationScreenDetailsFooter record={ record } />
68
79
  ) : null;
69
80
 
70
81
  const details = [];
@@ -77,6 +88,28 @@ export default function usePatternDetails( postType, postId ) {
77
88
  ? __( 'Not synced' )
78
89
  : __( 'Fully synced' ),
79
90
  } );
91
+
92
+ if ( record.wp_pattern_category?.length === 0 ) {
93
+ details.push( {
94
+ label: __( 'Categories' ),
95
+ value: __( 'Uncategorized' ),
96
+ } );
97
+ }
98
+ if ( record.wp_pattern_category?.length > 0 ) {
99
+ const patternCategories = new Map();
100
+ userPatternCategories.forEach( ( userCategory ) =>
101
+ patternCategories.set( userCategory.id, userCategory )
102
+ );
103
+
104
+ const categories = record.wp_pattern_category
105
+ .filter( ( category ) => patternCategories.get( category ) )
106
+ .map( ( category ) => patternCategories.get( category ).label );
107
+
108
+ details.push( {
109
+ label: __( 'Categories' ),
110
+ value: categories.length > 0 ? categories.join( ', ' ) : '',
111
+ } );
112
+ }
80
113
  }
81
114
 
82
115
  if ( postType === 'wp_template_part' ) {
@@ -4,16 +4,13 @@
4
4
  import {
5
5
  __experimentalItemGroup as ItemGroup,
6
6
  __experimentalItem as Item,
7
- Flex,
8
- Icon,
9
- Tooltip,
10
7
  __experimentalHeading as Heading,
11
8
  } from '@wordpress/components';
12
9
  import { useViewportMatch } from '@wordpress/compose';
13
10
  import { getTemplatePartIcon } from '@wordpress/editor';
14
- import { __, sprintf } from '@wordpress/i18n';
11
+ import { __ } from '@wordpress/i18n';
15
12
  import { getQueryArgs } from '@wordpress/url';
16
- import { file, starFilled, lockSmall } from '@wordpress/icons';
13
+ import { file } from '@wordpress/icons';
17
14
 
18
15
  /**
19
16
  * Internal dependencies
@@ -22,10 +19,9 @@ import AddNewPattern from '../add-new-pattern';
22
19
  import SidebarNavigationItem from '../sidebar-navigation-item';
23
20
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
24
21
  import CategoryItem from './category-item';
25
- import { DEFAULT_CATEGORY, DEFAULT_TYPE } from '../page-patterns/utils';
22
+ import { PATTERN_DEFAULT_CATEGORY, PATTERN_TYPES } from '../../utils/constants';
26
23
  import { useLink } from '../routes/link';
27
24
  import usePatternCategories from './use-pattern-categories';
28
- import useMyPatterns from './use-my-patterns';
29
25
  import useTemplatePartAreas from './use-template-part-areas';
30
26
 
31
27
  function TemplatePartGroup( { areas, currentArea, currentType } ) {
@@ -56,7 +52,11 @@ function TemplatePartGroup( { areas, currentArea, currentType } ) {
56
52
  );
57
53
  }
58
54
 
59
- function ThemePatternsGroup( { categories, currentCategory, currentType } ) {
55
+ function PatternCategoriesGroup( {
56
+ categories,
57
+ currentCategory,
58
+ currentType,
59
+ } ) {
60
60
  return (
61
61
  <>
62
62
  <ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
@@ -64,29 +64,14 @@ function ThemePatternsGroup( { categories, currentCategory, currentType } ) {
64
64
  <CategoryItem
65
65
  key={ category.name }
66
66
  count={ category.count }
67
- label={
68
- <Flex justify="left" align="center" gap={ 0 }>
69
- { category.label }
70
- <Tooltip
71
- position="top center"
72
- text={ sprintf(
73
- // translators: %s: The pattern category name.
74
- '"%s" patterns cannot be edited.',
75
- category.label
76
- ) }
77
- >
78
- <span className="edit-site-sidebar-navigation-screen-pattern__lock-icon">
79
- <Icon icon={ lockSmall } size={ 24 } />
80
- </span>
81
- </Tooltip>
82
- </Flex>
83
- }
67
+ label={ category.label }
84
68
  icon={ file }
85
69
  id={ category.name }
86
70
  type="pattern"
87
71
  isActive={
88
72
  currentCategory === `${ category.name }` &&
89
- currentType === 'pattern'
73
+ ( currentType === PATTERN_TYPES.theme ||
74
+ currentType === PATTERN_TYPES.user )
90
75
  }
91
76
  />
92
77
  ) ) }
@@ -98,13 +83,12 @@ function ThemePatternsGroup( { categories, currentCategory, currentType } ) {
98
83
  export default function SidebarNavigationScreenPatterns() {
99
84
  const isMobileViewport = useViewportMatch( 'medium', '<' );
100
85
  const { categoryType, categoryId } = getQueryArgs( window.location.href );
101
- const currentCategory = categoryId || DEFAULT_CATEGORY;
102
- const currentType = categoryType || DEFAULT_TYPE;
86
+ const currentCategory = categoryId || PATTERN_DEFAULT_CATEGORY;
87
+ const currentType = categoryType || PATTERN_TYPES.user;
103
88
 
104
89
  const { templatePartAreas, hasTemplateParts, isLoading } =
105
90
  useTemplatePartAreas();
106
91
  const { patternCategories, hasPatterns } = usePatternCategories();
107
- const { myPatterns } = useMyPatterns();
108
92
 
109
93
  const templatePartsLink = useLink( { path: '/wp_template_part/all' } );
110
94
  const footer = ! isMobileViewport ? (
@@ -144,27 +128,8 @@ export default function SidebarNavigationScreenPatterns() {
144
128
  </Item>
145
129
  </ItemGroup>
146
130
  ) }
147
- <ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
148
- <CategoryItem
149
- key={ myPatterns.name }
150
- count={
151
- ! myPatterns.count
152
- ? '0'
153
- : myPatterns.count
154
- }
155
- label={ myPatterns.label }
156
- icon={ starFilled }
157
- id={ myPatterns.name }
158
- type="wp_block"
159
- isActive={
160
- currentCategory ===
161
- `${ myPatterns.name }` &&
162
- currentType === 'wp_block'
163
- }
164
- />
165
- </ItemGroup>
166
131
  { hasPatterns && (
167
- <ThemePatternsGroup
132
+ <PatternCategoriesGroup
168
133
  categories={ patternCategories }
169
134
  currentCategory={ currentCategory }
170
135
  currentType={ currentType }
@@ -9,6 +9,8 @@ import { __ } from '@wordpress/i18n';
9
9
  */
10
10
  import useDefaultPatternCategories from './use-default-pattern-categories';
11
11
  import useThemePatterns from './use-theme-patterns';
12
+ import usePatterns from '../page-patterns/use-patterns';
13
+ import { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY } from '../../utils/constants';
12
14
 
13
15
  export default function usePatternCategories() {
14
16
  const defaultCategories = useDefaultPatternCategories();
@@ -17,6 +19,8 @@ export default function usePatternCategories() {
17
19
  label: __( 'Uncategorized' ),
18
20
  } );
19
21
  const themePatterns = useThemePatterns();
22
+ const { patterns: userPatterns, categories: userPatternCategories } =
23
+ usePatterns( PATTERN_TYPES.user );
20
24
 
21
25
  const patternCategories = useMemo( () => {
22
26
  const categoryMap = {};
@@ -28,6 +32,11 @@ export default function usePatternCategories() {
28
32
  categoryMap[ category.name ] = { ...category, count: 0 };
29
33
  }
30
34
  } );
35
+ userPatternCategories.forEach( ( category ) => {
36
+ if ( ! categoryMap[ category.name ] ) {
37
+ categoryMap[ category.name ] = { ...category, count: 0 };
38
+ }
39
+ } );
31
40
 
32
41
  // Update the category counts to reflect theme registered patterns.
33
42
  themePatterns.forEach( ( pattern ) => {
@@ -42,15 +51,48 @@ export default function usePatternCategories() {
42
51
  }
43
52
  } );
44
53
 
45
- // Filter categories so we only have those containing patterns.
46
- defaultCategories.forEach( ( category ) => {
47
- if ( categoryMap[ category.name ].count ) {
48
- categoriesWithCounts.push( categoryMap[ category.name ] );
54
+ // Update the category counts to reflect user registered patterns.
55
+ userPatterns.forEach( ( pattern ) => {
56
+ pattern.categories?.forEach( ( category ) => {
57
+ if ( categoryMap[ category ] ) {
58
+ categoryMap[ category ].count += 1;
59
+ }
60
+ } );
61
+ // If the pattern has no categories, add it to uncategorized.
62
+ if ( ! pattern.categories?.length ) {
63
+ categoryMap.uncategorized.count += 1;
49
64
  }
50
65
  } );
51
66
 
52
- return categoriesWithCounts;
53
- }, [ defaultCategories, themePatterns ] );
67
+ // Filter categories so we only have those containing patterns.
68
+ [ ...defaultCategories, ...userPatternCategories ].forEach(
69
+ ( category ) => {
70
+ if (
71
+ categoryMap[ category.name ].count &&
72
+ ! categoriesWithCounts.find(
73
+ ( cat ) => cat.name === category.name
74
+ )
75
+ ) {
76
+ categoriesWithCounts.push( categoryMap[ category.name ] );
77
+ }
78
+ }
79
+ );
80
+ const sortedCategories = categoriesWithCounts.sort( ( a, b ) =>
81
+ a.label.localeCompare( b.label )
82
+ );
83
+ sortedCategories.unshift( {
84
+ name: PATTERN_DEFAULT_CATEGORY,
85
+ label: __( 'All Patterns' ),
86
+ description: __( 'A list of all patterns from all sources' ),
87
+ count: themePatterns.length + userPatterns.length,
88
+ } );
89
+ return sortedCategories;
90
+ }, [
91
+ defaultCategories,
92
+ themePatterns,
93
+ userPatternCategories,
94
+ userPatterns,
95
+ ] );
54
96
 
55
97
  return { patternCategories, hasPatterns: !! patternCategories.length };
56
98
  }
@@ -8,10 +8,8 @@ import { useMemo } from '@wordpress/element';
8
8
  /**
9
9
  * Internal dependencies
10
10
  */
11
- import {
12
- CORE_PATTERN_SOURCES,
13
- filterOutDuplicatesByName,
14
- } from '../page-patterns/utils';
11
+ import { filterOutDuplicatesByName } from '../page-patterns/utils';
12
+ import { PATTERN_CORE_SOURCES } from '../../utils/constants';
15
13
  import { unlock } from '../../lock-unlock';
16
14
  import { store as editSiteStore } from '../../store';
17
15
 
@@ -34,7 +32,7 @@ export default function useThemePatterns() {
34
32
  [ ...( blockPatterns || [] ), ...( restBlockPatterns || [] ) ]
35
33
  .filter(
36
34
  ( pattern ) =>
37
- ! CORE_PATTERN_SOURCES.includes( pattern.source )
35
+ ! PATTERN_CORE_SOURCES.includes( pattern.source )
38
36
  )
39
37
  .filter( filterOutDuplicatesByName )
40
38
  .filter( ( pattern ) => pattern.inserter !== false ),
@@ -48,10 +48,8 @@ function useTemplateDetails( postType, postId ) {
48
48
  <HomeTemplateDetails />
49
49
  ) : null;
50
50
 
51
- const footer = !! record?.modified ? (
52
- <SidebarNavigationScreenDetailsFooter
53
- lastModifiedDateTime={ record.modified }
54
- />
51
+ const footer = record?.modified ? (
52
+ <SidebarNavigationScreenDetailsFooter record={ record } />
55
53
  ) : null;
56
54
 
57
55
  const description = (
@@ -49,7 +49,7 @@ export default function SidebarNavigationScreenTemplates() {
49
49
  <SidebarNavigationScreen
50
50
  title={ __( 'Templates' ) }
51
51
  description={ __(
52
- 'Express the layout of your site with templates'
52
+ 'Express the layout of your site with templates.'
53
53
  ) }
54
54
  actions={
55
55
  canCreate && (
@@ -67,10 +67,16 @@ export default function TemplateActions( {
67
67
  }
68
68
  );
69
69
  } catch ( error ) {
70
+ const fallbackErrorMessage =
71
+ template.type === 'wp_template'
72
+ ? __( 'An error occurred while reverting the template.' )
73
+ : __(
74
+ 'An error occurred while reverting the template part.'
75
+ );
70
76
  const errorMessage =
71
77
  error.message && error.code !== 'unknown_error'
72
78
  ? error.message
73
- : __( 'An error occurred while reverting the entity.' );
79
+ : fallbackErrorMessage;
74
80
 
75
81
  createErrorNotice( errorMessage, { type: 'snackbar' } );
76
82
  }
@@ -97,7 +103,7 @@ export default function TemplateActions( {
97
103
  onRemove?.();
98
104
  onClose();
99
105
  } }
100
- isTemplate={ template.type === 'wp_template' }
106
+ title={ template.title.rendered }
101
107
  />
102
108
  </>
103
109
  ) }
@@ -120,7 +126,7 @@ export default function TemplateActions( {
120
126
  );
121
127
  }
122
128
 
123
- function DeleteMenuItem( { onRemove, isTemplate } ) {
129
+ function DeleteMenuItem( { onRemove, title } ) {
124
130
  const [ isModalOpen, setIsModalOpen ] = useState( false );
125
131
  return (
126
132
  <>
@@ -133,11 +139,11 @@ function DeleteMenuItem( { onRemove, isTemplate } ) {
133
139
  onCancel={ () => setIsModalOpen( false ) }
134
140
  confirmButtonText={ __( 'Delete' ) }
135
141
  >
136
- { isTemplate
137
- ? __( 'Are you sure you want to delete this template?' )
138
- : __(
139
- 'Are you sure you want to delete this template part?'
140
- ) }
142
+ { sprintf(
143
+ // translators: %s: The template or template part's title.
144
+ __( 'Are you sure you want to delete "%s"?' ),
145
+ decodeEntities( title )
146
+ ) }
141
147
  </ConfirmDialog>
142
148
  </>
143
149
  );
@@ -56,14 +56,25 @@ export default function RenameMenuItem( { template, onClose } ) {
56
56
  }
57
57
  );
58
58
 
59
- createSuccessNotice( __( 'Entity renamed.' ), {
60
- type: 'snackbar',
61
- } );
59
+ createSuccessNotice(
60
+ template.type === 'wp_template'
61
+ ? __( 'Template renamed.' )
62
+ : __( 'Template part renamed.' ),
63
+ {
64
+ type: 'snackbar',
65
+ }
66
+ );
62
67
  } catch ( error ) {
68
+ const fallbackErrorMessage =
69
+ template.type === 'wp_template'
70
+ ? __( 'An error occurred while renaming the template.' )
71
+ : __(
72
+ 'An error occurred while renaming the template part.'
73
+ );
63
74
  const errorMessage =
64
75
  error.message && error.code !== 'unknown_error'
65
76
  ? error.message
66
- : __( 'An error occurred while renaming the entity.' );
77
+ : fallbackErrorMessage;
67
78
 
68
79
  createErrorNotice( errorMessage, { type: 'snackbar' } );
69
80
  }
@@ -77,7 +77,7 @@ export default function WelcomeGuideStyles() {
77
77
  </h1>
78
78
  <p className="edit-site-welcome-guide__text">
79
79
  { __(
80
- 'You can customize your site as much as you like with different colors, typography, and layouts. Or if you prefer, just leave it up to your theme to handle! '
80
+ 'You can customize your site as much as you like with different colors, typography, and layouts. Or if you prefer, just leave it up to your theme to handle!'
81
81
  ) }
82
82
  </p>
83
83
  </>
@@ -117,7 +117,7 @@ export default function WelcomeGuideStyles() {
117
117
  </h1>
118
118
  <p className="edit-site-welcome-guide__text">
119
119
  { __(
120
- 'New to block themes and styling your site? '
120
+ 'New to block themes and styling your site?'
121
121
  ) }
122
122
  <ExternalLink
123
123
  href={ __(
@@ -26,12 +26,9 @@ import { store as noticesStore } from '@wordpress/notices';
26
26
  import { useSupportedStyles } from '../../components/global-styles/hooks';
27
27
  import { unlock } from '../../lock-unlock';
28
28
 
29
- const {
30
- cleanEmptyObject,
31
- GlobalStylesContext,
32
- __experimentalUseGlobalBehaviors: useGlobalBehaviors,
33
- __experimentalUseHasBehaviorsPanel: useHasBehaviorsPanel,
34
- } = unlock( blockEditorPrivateApis );
29
+ const { cleanEmptyObject, GlobalStylesContext } = unlock(
30
+ blockEditorPrivateApis
31
+ );
35
32
 
36
33
  // Block Gap is a special case and isn't defined within the blocks
37
34
  // style properties config. We'll add it here to allow it to be pushed
@@ -286,10 +283,6 @@ function PushChangesToGlobalStylesControl( {
286
283
  attributes,
287
284
  setAttributes,
288
285
  } ) {
289
- const hasBehaviorsPanel = useHasBehaviorsPanel( attributes, name, {
290
- blockSupportOnly: true,
291
- } );
292
-
293
286
  const { user: userConfig, setUserConfig } =
294
287
  useContext( GlobalStylesContext );
295
288
 
@@ -299,13 +292,8 @@ function PushChangesToGlobalStylesControl( {
299
292
  useDispatch( blockEditorStore );
300
293
  const { createSuccessNotice } = useDispatch( noticesStore );
301
294
 
302
- const { inheritedBehaviors, setBehavior } = useGlobalBehaviors( name );
303
-
304
- const userHasEditedBehaviors =
305
- attributes.hasOwnProperty( 'behaviors' ) && hasBehaviorsPanel;
306
-
307
295
  const pushChanges = useCallback( () => {
308
- if ( changes.length === 0 && ! userHasEditedBehaviors ) {
296
+ if ( changes.length === 0 ) {
309
297
  return;
310
298
  }
311
299
 
@@ -364,46 +352,15 @@ function PushChangesToGlobalStylesControl( {
364
352
  }
365
353
  );
366
354
  }
367
-
368
- if ( userHasEditedBehaviors ) {
369
- __unstableMarkNextChangeAsNotPersistent();
370
- setAttributes( { behaviors: undefined } );
371
- setBehavior( attributes.behaviors );
372
- createSuccessNotice(
373
- sprintf(
374
- // translators: %s: Title of the block e.g. 'Heading'.
375
- __( '%s behaviors applied.' ),
376
- getBlockType( name ).title
377
- ),
378
- {
379
- type: 'snackbar',
380
- actions: [
381
- {
382
- label: __( 'Undo' ),
383
- onClick() {
384
- __unstableMarkNextChangeAsNotPersistent();
385
- setBehavior( inheritedBehaviors );
386
- setUserConfig( () => userConfig, {
387
- undoIgnore: true,
388
- } );
389
- },
390
- },
391
- ],
392
- }
393
- );
394
- }
395
355
  }, [
396
356
  __unstableMarkNextChangeAsNotPersistent,
397
357
  attributes,
398
358
  changes,
399
359
  createSuccessNotice,
400
- inheritedBehaviors,
401
360
  name,
402
361
  setAttributes,
403
- setBehavior,
404
362
  setUserConfig,
405
363
  userConfig,
406
- userHasEditedBehaviors,
407
364
  ] );
408
365
 
409
366
  return (
@@ -412,7 +369,7 @@ function PushChangesToGlobalStylesControl( {
412
369
  help={ sprintf(
413
370
  // translators: %s: Title of the block e.g. 'Heading'.
414
371
  __(
415
- 'Apply this block’s typography, spacing, dimensions, color styles, and behaviors to all %s blocks.'
372
+ 'Apply this block’s typography, spacing, dimensions, and color styles to all %s blocks.'
416
373
  ),
417
374
  getBlockType( name ).title
418
375
  ) }
@@ -422,7 +379,7 @@ function PushChangesToGlobalStylesControl( {
422
379
  </BaseControl.VisualLabel>
423
380
  <Button
424
381
  variant="primary"
425
- disabled={ changes.length === 0 && ! userHasEditedBehaviors }
382
+ disabled={ changes.length === 0 }
426
383
  onClick={ pushChanges }
427
384
  >
428
385
  { __( 'Apply globally' ) }
@@ -4,7 +4,7 @@
4
4
  import apiFetch from '@wordpress/api-fetch';
5
5
  import { parse, __unstableSerializeAndClean } from '@wordpress/blocks';
6
6
  import deprecated from '@wordpress/deprecated';
7
- import { addQueryArgs, getPathAndQueryString } from '@wordpress/url';
7
+ import { addQueryArgs } from '@wordpress/url';
8
8
  import { __, sprintf } from '@wordpress/i18n';
9
9
  import { store as noticesStore } from '@wordpress/notices';
10
10
  import { store as coreStore } from '@wordpress/core-data';
@@ -233,7 +233,7 @@ export function setHomeTemplateId() {
233
233
  *
234
234
  * @param {Object} context The context object.
235
235
  *
236
- * @return {number} The resolved template ID for the page route.
236
+ * @return {Object} Action object.
237
237
  */
238
238
  export function setEditedPostContext( context ) {
239
239
  return {
@@ -257,22 +257,48 @@ export function setEditedPostContext( context ) {
257
257
  export const setPage =
258
258
  ( page ) =>
259
259
  async ( { dispatch, registry } ) => {
260
- if ( ! page.path && page.context?.postId ) {
261
- const entity = await registry
260
+ let template;
261
+ const getDefaultTemplate = async ( slug ) =>
262
+ apiFetch( {
263
+ path: addQueryArgs( '/wp/v2/templates/lookup', {
264
+ slug: `page-${ slug }`,
265
+ } ),
266
+ } );
267
+
268
+ if ( page.path ) {
269
+ template = await registry
270
+ .resolveSelect( coreStore )
271
+ .__experimentalGetTemplateForLink( page.path );
272
+ } else {
273
+ const editedEntity = await registry
262
274
  .resolveSelect( coreStore )
263
- .getEntityRecord(
275
+ .getEditedEntityRecord(
264
276
  'postType',
265
- page.context.postType || 'post',
266
- page.context.postId
277
+ page.context?.postType || 'post',
278
+ page.context?.postId
267
279
  );
268
- // If the entity is undefined for some reason, path will resolve to "/"
269
- page.path = getPathAndQueryString( entity?.link );
280
+ const currentTemplateSlug = editedEntity?.template;
281
+ if ( currentTemplateSlug ) {
282
+ const currentTemplate = (
283
+ await registry
284
+ .resolveSelect( coreStore )
285
+ .getEntityRecords( 'postType', 'wp_template', {
286
+ per_page: -1,
287
+ } )
288
+ )?.find( ( { slug } ) => slug === currentTemplateSlug );
289
+ if ( currentTemplate ) {
290
+ template = currentTemplate;
291
+ } else {
292
+ // If a page has a `template` set and is not included in the list
293
+ // of the current theme's templates, query for current theme's default template.
294
+ template = await getDefaultTemplate( editedEntity?.slug );
295
+ }
296
+ } else {
297
+ // Page's `template` is empty, that indicates we need to use the default template for the page.
298
+ template = await getDefaultTemplate( editedEntity?.slug );
299
+ }
270
300
  }
271
301
 
272
- const template = await registry
273
- .resolveSelect( coreStore )
274
- .__experimentalGetTemplateForLink( page.path );
275
-
276
302
  if ( ! template ) {
277
303
  return;
278
304
  }