@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-site",
3
- "version": "5.18.0",
3
+ "version": "5.19.0",
4
4
  "description": "Edit Site Page module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -27,44 +27,44 @@
27
27
  "react-native": "src/index",
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.16.0",
30
- "@wordpress/a11y": "^3.41.0",
31
- "@wordpress/api-fetch": "^6.38.0",
32
- "@wordpress/block-editor": "^12.9.0",
33
- "@wordpress/block-library": "^8.18.0",
34
- "@wordpress/blocks": "^12.18.0",
35
- "@wordpress/commands": "^0.12.0",
36
- "@wordpress/components": "^25.7.0",
37
- "@wordpress/compose": "^6.18.0",
38
- "@wordpress/core-commands": "^0.10.0",
39
- "@wordpress/core-data": "^6.18.0",
40
- "@wordpress/data": "^9.11.0",
41
- "@wordpress/date": "^4.41.0",
42
- "@wordpress/deprecated": "^3.41.0",
43
- "@wordpress/dom": "^3.41.0",
44
- "@wordpress/editor": "^13.18.0",
45
- "@wordpress/element": "^5.18.0",
46
- "@wordpress/escape-html": "^2.41.0",
47
- "@wordpress/hooks": "^3.41.0",
48
- "@wordpress/html-entities": "^3.41.0",
49
- "@wordpress/i18n": "^4.41.0",
50
- "@wordpress/icons": "^9.32.0",
51
- "@wordpress/interface": "^5.18.0",
52
- "@wordpress/keyboard-shortcuts": "^4.18.0",
53
- "@wordpress/keycodes": "^3.41.0",
54
- "@wordpress/media-utils": "^4.32.0",
55
- "@wordpress/notices": "^4.9.0",
56
- "@wordpress/patterns": "^1.2.0",
57
- "@wordpress/plugins": "^6.9.0",
58
- "@wordpress/preferences": "^3.18.0",
59
- "@wordpress/primitives": "^3.39.0",
60
- "@wordpress/private-apis": "^0.23.0",
61
- "@wordpress/reusable-blocks": "^4.18.0",
62
- "@wordpress/router": "^0.10.0",
63
- "@wordpress/style-engine": "^1.24.0",
64
- "@wordpress/url": "^3.42.0",
65
- "@wordpress/viewport": "^5.18.0",
66
- "@wordpress/widgets": "^3.18.0",
67
- "@wordpress/wordcount": "^3.41.0",
30
+ "@wordpress/a11y": "^3.42.0",
31
+ "@wordpress/api-fetch": "^6.39.0",
32
+ "@wordpress/block-editor": "^12.10.0",
33
+ "@wordpress/block-library": "^8.19.0",
34
+ "@wordpress/blocks": "^12.19.0",
35
+ "@wordpress/commands": "^0.13.0",
36
+ "@wordpress/components": "^25.8.0",
37
+ "@wordpress/compose": "^6.19.0",
38
+ "@wordpress/core-commands": "^0.11.0",
39
+ "@wordpress/core-data": "^6.19.0",
40
+ "@wordpress/data": "^9.12.0",
41
+ "@wordpress/date": "^4.42.0",
42
+ "@wordpress/deprecated": "^3.42.0",
43
+ "@wordpress/dom": "^3.42.0",
44
+ "@wordpress/editor": "^13.19.0",
45
+ "@wordpress/element": "^5.19.0",
46
+ "@wordpress/escape-html": "^2.42.0",
47
+ "@wordpress/hooks": "^3.42.0",
48
+ "@wordpress/html-entities": "^3.42.0",
49
+ "@wordpress/i18n": "^4.42.0",
50
+ "@wordpress/icons": "^9.33.0",
51
+ "@wordpress/interface": "^5.19.0",
52
+ "@wordpress/keyboard-shortcuts": "^4.19.0",
53
+ "@wordpress/keycodes": "^3.42.0",
54
+ "@wordpress/media-utils": "^4.33.0",
55
+ "@wordpress/notices": "^4.10.0",
56
+ "@wordpress/patterns": "^1.3.0",
57
+ "@wordpress/plugins": "^6.10.0",
58
+ "@wordpress/preferences": "^3.19.0",
59
+ "@wordpress/primitives": "^3.40.0",
60
+ "@wordpress/private-apis": "^0.24.0",
61
+ "@wordpress/reusable-blocks": "^4.19.0",
62
+ "@wordpress/router": "^0.11.0",
63
+ "@wordpress/style-engine": "^1.25.0",
64
+ "@wordpress/url": "^3.43.0",
65
+ "@wordpress/viewport": "^5.19.0",
66
+ "@wordpress/widgets": "^3.19.0",
67
+ "@wordpress/wordcount": "^3.42.0",
68
68
  "change-case": "^4.1.2",
69
69
  "classnames": "^2.3.1",
70
70
  "colord": "^2.9.2",
@@ -84,5 +84,5 @@
84
84
  "publishConfig": {
85
85
  "access": "public"
86
86
  },
87
- "gitHead": "5eac1734bcdca2301fdd37ec8cfe2a45e722a2c4"
87
+ "gitHead": "cc35f517ed017ab7131319af3e87c359e8de175d"
88
88
  }
@@ -2,12 +2,16 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { DropdownMenu } from '@wordpress/components';
5
- import { useState } from '@wordpress/element';
6
- import { __ } from '@wordpress/i18n';
5
+ import { useState, useRef } from '@wordpress/element';
6
+ import { __, sprintf } from '@wordpress/i18n';
7
7
  import { plus, symbol, symbolFilled } from '@wordpress/icons';
8
- import { useSelect } from '@wordpress/data';
8
+ import { useSelect, useDispatch } from '@wordpress/data';
9
9
  import { privateApis as routerPrivateApis } from '@wordpress/router';
10
- import { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';
10
+ import {
11
+ privateApis as editPatternsPrivateApis,
12
+ store as patternsStore,
13
+ } from '@wordpress/patterns';
14
+ import { store as noticesStore } from '@wordpress/notices';
11
15
 
12
16
  /**
13
17
  * Internal dependencies
@@ -16,12 +20,19 @@ import CreateTemplatePartModal from '../create-template-part-modal';
16
20
  import SidebarButton from '../sidebar-button';
17
21
  import { unlock } from '../../lock-unlock';
18
22
  import { store as editSiteStore } from '../../store';
23
+ import {
24
+ PATTERN_TYPES,
25
+ PATTERN_DEFAULT_CATEGORY,
26
+ TEMPLATE_PART_POST_TYPE,
27
+ } from '../../utils/constants';
28
+ import usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';
19
29
 
20
- const { useHistory } = unlock( routerPrivateApis );
30
+ const { useHistory, useLocation } = unlock( routerPrivateApis );
21
31
  const { CreatePatternModal } = unlock( editPatternsPrivateApis );
22
32
 
23
33
  export default function AddNewPattern() {
24
34
  const history = useHistory();
35
+ const { params } = useLocation();
25
36
  const [ showPatternModal, setShowPatternModal ] = useState( false );
26
37
  const [ showTemplatePartModal, setShowTemplatePartModal ] =
27
38
  useState( false );
@@ -29,6 +40,11 @@ export default function AddNewPattern() {
29
40
  const settings = select( editSiteStore ).getSettings();
30
41
  return !! settings.supportsTemplatePartsMode;
31
42
  }, [] );
43
+ const { createPatternFromFile } = unlock( useDispatch( patternsStore ) );
44
+ const { createSuccessNotice, createErrorNotice } =
45
+ useDispatch( noticesStore );
46
+ const patternUploadInputRef = useRef();
47
+ const { patternCategories } = usePatternCategories();
32
48
 
33
49
  function handleCreatePattern( { pattern, categoryId } ) {
34
50
  setShowPatternModal( false );
@@ -76,6 +92,14 @@ export default function AddNewPattern() {
76
92
  } );
77
93
  }
78
94
 
95
+ controls.push( {
96
+ icon: symbol,
97
+ onClick: () => {
98
+ patternUploadInputRef.current.click();
99
+ },
100
+ title: __( 'Import pattern from JSON' ),
101
+ } );
102
+
79
103
  return (
80
104
  <>
81
105
  <DropdownMenu
@@ -101,6 +125,60 @@ export default function AddNewPattern() {
101
125
  onError={ handleError }
102
126
  />
103
127
  ) }
128
+
129
+ <input
130
+ type="file"
131
+ accept=".json"
132
+ hidden
133
+ ref={ patternUploadInputRef }
134
+ onChange={ async ( event ) => {
135
+ const file = event.target.files?.[ 0 ];
136
+ if ( ! file ) return;
137
+ try {
138
+ const currentCategoryId =
139
+ params.categoryType !== TEMPLATE_PART_POST_TYPE &&
140
+ patternCategories.find(
141
+ ( category ) =>
142
+ category.name === params.categoryId
143
+ )?.id;
144
+ const pattern = await createPatternFromFile(
145
+ file,
146
+ currentCategoryId
147
+ ? [ currentCategoryId ]
148
+ : undefined
149
+ );
150
+
151
+ // Navigate to the All patterns category for the newly created pattern
152
+ // if we're not on that page already.
153
+ if ( ! currentCategoryId ) {
154
+ history.push( {
155
+ path: `/patterns`,
156
+ categoryType: PATTERN_TYPES.theme,
157
+ categoryId: PATTERN_DEFAULT_CATEGORY,
158
+ } );
159
+ }
160
+
161
+ createSuccessNotice(
162
+ sprintf(
163
+ // translators: %s: The imported pattern's title.
164
+ __( 'Imported "%s" from JSON.' ),
165
+ pattern.title.raw
166
+ ),
167
+ {
168
+ type: 'snackbar',
169
+ id: 'import-pattern-success',
170
+ }
171
+ );
172
+ } catch ( err ) {
173
+ createErrorNotice( err.message, {
174
+ type: 'snackbar',
175
+ id: 'import-pattern-error',
176
+ } );
177
+ } finally {
178
+ event.target.value = '';
179
+ }
180
+ } }
181
+ />
104
182
  </>
105
183
  );
106
184
  }
@@ -8,9 +8,10 @@ import { store as coreStore } from '@wordpress/core-data';
8
8
  * Internal dependencies
9
9
  */
10
10
  import NewTemplate from './new-template';
11
+ import { TEMPLATE_POST_TYPE } from '../../utils/constants';
11
12
 
12
13
  export default function AddNewTemplate( {
13
- templateType = 'wp_template',
14
+ templateType = TEMPLATE_POST_TYPE,
14
15
  ...props
15
16
  } ) {
16
17
  const postType = useSelect(
@@ -22,7 +23,7 @@ export default function AddNewTemplate( {
22
23
  return null;
23
24
  }
24
25
 
25
- if ( templateType === 'wp_template' ) {
26
+ if ( templateType === TEMPLATE_POST_TYPE ) {
26
27
  return <NewTemplate { ...props } postType={ postType } />;
27
28
  }
28
29
 
@@ -42,6 +42,11 @@ import { __, sprintf } from '@wordpress/i18n';
42
42
  import { store as noticesStore } from '@wordpress/notices';
43
43
  import { privateApis as routerPrivateApis } from '@wordpress/router';
44
44
 
45
+ /**
46
+ * Internal dependencies
47
+ */
48
+ import { TEMPLATE_POST_TYPE } from '../../utils/constants';
49
+
45
50
  /**
46
51
  * Internal dependencies
47
52
  */
@@ -190,7 +195,7 @@ export default function NewTemplate( {
190
195
  const { title, description, slug } = template;
191
196
  const newTemplate = await saveEntityRecord(
192
197
  'postType',
193
- 'wp_template',
198
+ TEMPLATE_POST_TYPE,
194
199
  {
195
200
  description,
196
201
  // Slugs need to be strings, so this is for template `404`
@@ -9,6 +9,11 @@ import { useMemo, useCallback } from '@wordpress/element';
9
9
  import { __, sprintf } from '@wordpress/i18n';
10
10
  import { blockMeta, post, archive } from '@wordpress/icons';
11
11
 
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ import { TEMPLATE_POST_TYPE } from '../../utils/constants';
16
+
12
17
  /**
13
18
  * @typedef IHasNameAndId
14
19
  * @property {string|number} id The entity's id.
@@ -48,9 +53,13 @@ export const mapToIHasNameAndId = ( entities, path ) => {
48
53
  export const useExistingTemplates = () => {
49
54
  return useSelect(
50
55
  ( select ) =>
51
- select( coreStore ).getEntityRecords( 'postType', 'wp_template', {
52
- per_page: -1,
53
- } ),
56
+ select( coreStore ).getEntityRecords(
57
+ 'postType',
58
+ TEMPLATE_POST_TYPE,
59
+ {
60
+ per_page: -1,
61
+ }
62
+ ),
54
63
  []
55
64
  );
56
65
  };
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { SlotFillProvider } from '@wordpress/components';
5
5
  import { UnsavedChangesWarning } from '@wordpress/editor';
6
- import { ShortcutProvider } from '@wordpress/keyboard-shortcuts';
7
6
  import { store as noticesStore } from '@wordpress/notices';
8
7
  import { useDispatch } from '@wordpress/data';
9
8
  import { __, sprintf } from '@wordpress/i18n';
@@ -35,16 +34,14 @@ export default function App() {
35
34
  }
36
35
 
37
36
  return (
38
- <ShortcutProvider style={ { height: '100%' } }>
39
- <SlotFillProvider>
40
- <GlobalStylesProvider>
41
- <UnsavedChangesWarning />
42
- <RouterProvider>
43
- <Layout />
44
- <PluginArea onError={ onPluginAreaError } />
45
- </RouterProvider>
46
- </GlobalStylesProvider>
47
- </SlotFillProvider>
48
- </ShortcutProvider>
37
+ <SlotFillProvider>
38
+ <GlobalStylesProvider>
39
+ <UnsavedChangesWarning />
40
+ <RouterProvider>
41
+ <Layout />
42
+ <PluginArea onError={ onPluginAreaError } />
43
+ </RouterProvider>
44
+ </GlobalStylesProvider>
45
+ </SlotFillProvider>
49
46
  );
50
47
  }
@@ -9,6 +9,10 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
9
9
  /**
10
10
  * Internal dependencies
11
11
  */
12
+ import {
13
+ TEMPLATE_PART_POST_TYPE,
14
+ NAVIGATION_POST_TYPE,
15
+ } from '../../utils/constants';
12
16
  import { unlock } from '../../lock-unlock';
13
17
 
14
18
  const { useLocation, useHistory } = unlock( routerPrivateApis );
@@ -16,8 +20,8 @@ const { useLocation, useHistory } = unlock( routerPrivateApis );
16
20
  function BackButton() {
17
21
  const location = useLocation();
18
22
  const history = useHistory();
19
- const isTemplatePart = location.params.postType === 'wp_template_part';
20
- const isNavigationMenu = location.params.postType === 'wp_navigation';
23
+ const isTemplatePart = location.params.postType === TEMPLATE_PART_POST_TYPE;
24
+ const isNavigationMenu = location.params.postType === NAVIGATION_POST_TYPE;
21
25
  const previousTemplateId = location.state?.fromTemplateId;
22
26
 
23
27
  const isFocusMode = isTemplatePart || isNavigationMenu;
@@ -8,9 +8,7 @@ import classnames from 'classnames';
8
8
  */
9
9
  import {
10
10
  __experimentalUseResizeCanvas as useResizeCanvas,
11
- __unstableEditorStyles as EditorStyles,
12
- __unstableIframe as Iframe,
13
- __unstableUseMouseMoveTypingReset as useMouseMoveTypingReset,
11
+ privateApis as blockEditorPrivateApis,
14
12
  store as blockEditorStore,
15
13
  } from '@wordpress/block-editor';
16
14
  import { useSelect, useDispatch } from '@wordpress/data';
@@ -24,7 +22,17 @@ import { __ } from '@wordpress/i18n';
24
22
  import { unlock } from '../../lock-unlock';
25
23
  import { store as editSiteStore } from '../../store';
26
24
 
27
- function EditorCanvas( { enableResizing, settings, children, ...props } ) {
25
+ const { ExperimentalBlockCanvas: BlockCanvas } = unlock(
26
+ blockEditorPrivateApis
27
+ );
28
+
29
+ function EditorCanvas( {
30
+ enableResizing,
31
+ settings,
32
+ children,
33
+ contentRef,
34
+ ...props
35
+ } ) {
28
36
  const { canvasMode, deviceType, isZoomOutMode } = useSelect(
29
37
  ( select ) => ( {
30
38
  deviceType:
@@ -38,7 +46,6 @@ function EditorCanvas( { enableResizing, settings, children, ...props } ) {
38
46
  );
39
47
  const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
40
48
  const deviceStyles = useResizeCanvas( deviceType );
41
- const mouseMoveTypingRef = useMouseMoveTypingReset();
42
49
  const [ isFocused, setIsFocused ] = useState( false );
43
50
 
44
51
  useEffect( () => {
@@ -65,20 +72,25 @@ function EditorCanvas( { enableResizing, settings, children, ...props } ) {
65
72
  };
66
73
 
67
74
  return (
68
- <Iframe
69
- expand={ isZoomOutMode }
70
- scale={ ( isZoomOutMode && 0.45 ) || undefined }
71
- frameSize={ isZoomOutMode ? 100 : undefined }
72
- style={ enableResizing ? {} : deviceStyles }
73
- ref={ mouseMoveTypingRef }
74
- name="editor-canvas"
75
- className={ classnames( 'edit-site-visual-editor__editor-canvas', {
76
- 'is-focused': isFocused && canvasMode === 'view',
77
- } ) }
78
- { ...props }
79
- { ...( canvasMode === 'view' ? viewModeProps : {} ) }
75
+ <BlockCanvas
76
+ height="100%"
77
+ iframeProps={ {
78
+ expand: isZoomOutMode,
79
+ scale: isZoomOutMode ? 0.45 : undefined,
80
+ frameSize: isZoomOutMode ? 100 : undefined,
81
+ style: enableResizing ? {} : deviceStyles,
82
+ className: classnames(
83
+ 'edit-site-visual-editor__editor-canvas',
84
+ {
85
+ 'is-focused': isFocused && canvasMode === 'view',
86
+ }
87
+ ),
88
+ ...props,
89
+ ...( canvasMode === 'view' ? viewModeProps : {} ),
90
+ } }
91
+ styles={ settings.styles }
92
+ contentRef={ contentRef }
80
93
  >
81
- <EditorStyles styles={ settings.styles } />
82
94
  <style>{
83
95
  // Forming a "block formatting context" to prevent margin collapsing.
84
96
  // @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context
@@ -93,7 +105,7 @@ function EditorCanvas( { enableResizing, settings, children, ...props } ) {
93
105
  }}}`
94
106
  }</style>
95
107
  { children }
96
- </Iframe>
108
+ </BlockCanvas>
97
109
  );
98
110
  }
99
111
 
@@ -10,14 +10,9 @@ import { useRef } from '@wordpress/element';
10
10
  import {
11
11
  BlockList,
12
12
  BlockTools,
13
- __unstableUseClipboardHandler as useClipboardHandler,
14
13
  store as blockEditorStore,
15
14
  } from '@wordpress/block-editor';
16
- import {
17
- useMergeRefs,
18
- useViewportMatch,
19
- useResizeObserver,
20
- } from '@wordpress/compose';
15
+ import { useViewportMatch, useResizeObserver } from '@wordpress/compose';
21
16
  /**
22
17
  * Internal dependencies
23
18
  */
@@ -76,8 +71,6 @@ export default function SiteEditorCanvas() {
76
71
  ! isMobileViewport;
77
72
 
78
73
  const contentRef = useRef();
79
- const mergedRefs = useMergeRefs( [ contentRef, useClipboardHandler() ] );
80
-
81
74
  const isTemplateTypeNavigation = templateType === 'wp_navigation';
82
75
 
83
76
  const isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;
@@ -127,8 +120,7 @@ export default function SiteEditorCanvas() {
127
120
  <EditorCanvas
128
121
  enableResizing={ enableResizing }
129
122
  settings={ settings }
130
- contentRef={ mergedRefs }
131
- readonly={ isViewMode }
123
+ contentRef={ contentRef }
132
124
  >
133
125
  { resizeObserver }
134
126
  <BlockList
@@ -31,6 +31,7 @@
31
31
  display: block;
32
32
  width: 100%;
33
33
  height: 100%;
34
+ background: $white;
34
35
  }
35
36
 
36
37
  .edit-site-visual-editor__editor-canvas {
@@ -76,7 +77,7 @@
76
77
  contextual toolbar has been redesigned.
77
78
  See: https://github.com/WordPress/gutenberg/issues/40450
78
79
  */
79
- .block-editor-block-contextual-toolbar {
80
+ .block-editor-block-contextual-toolbar.is-fixed {
80
81
  display: none;
81
82
  }
82
83
  }
@@ -172,3 +173,89 @@
172
173
  }
173
174
  }
174
175
 
176
+ // Fixed contextual toolbar
177
+ @include editor-left(".edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed");
178
+
179
+ .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed {
180
+ position: sticky;
181
+ top: 0;
182
+ z-index: z-index(".block-editor-block-popover");
183
+ display: block;
184
+ width: 100%;
185
+
186
+ // on desktop and tablet viewports the toolbar is fixed
187
+ // on top of interface header
188
+ $toolbar-margin: $grid-unit-80 * 3 - 2 * $grid-unit + $grid-unit-05;
189
+
190
+ @include break-medium() {
191
+ // leave room for block inserter, undo and redo, list view
192
+ margin-left: $toolbar-margin;
193
+ // position on top of interface header
194
+ position: fixed;
195
+ top: $admin-bar-height;
196
+ // Don't fill up when empty
197
+ min-height: initial;
198
+ // has to be flex for collapse button to fit
199
+ display: flex;
200
+
201
+ // Mimic the height of the parent, vertically align center, and provide a max-height.
202
+ height: $header-height;
203
+ align-items: center;
204
+
205
+
206
+ // on tablet viewports the toolbar is fixed
207
+ // on top of interface header and covers the whole header
208
+ // except for the inserter on the left
209
+ width: calc(100% - #{$toolbar-margin});
210
+
211
+ &.is-collapsed {
212
+ width: initial;
213
+ }
214
+
215
+ &:empty {
216
+ width: initial;
217
+ }
218
+
219
+ .is-fullscreen-mode & {
220
+ // leave room for block inserter, undo and redo, list view
221
+ // and some margin left
222
+ margin-left: $grid-unit-80 * 4 - 2 * $grid-unit;
223
+
224
+ top: 0;
225
+
226
+ &.is-collapsed {
227
+ width: initial;
228
+ }
229
+
230
+ &:empty {
231
+ width: initial;
232
+ }
233
+ }
234
+
235
+ .show-icon-labels & {
236
+ margin-left: $grid-unit-80 + 2 * $grid-unit; // inserter and margin
237
+ width: calc(100% + 40px - #{$toolbar-margin}); //there are no undo, redo and list view buttons
238
+
239
+ .is-fullscreen-mode & {
240
+ margin-left: $grid-unit * 18; // site hub, inserter and margin
241
+ }
242
+ }
243
+ }
244
+
245
+ // on desktop viewports the toolbar is fixed
246
+ // on top of interface header and leaves room
247
+ // for the block inserter the publish button
248
+ @include break-large() {
249
+ width: auto;
250
+ .show-icon-labels & {
251
+ width: auto; //there are no undo, redo and list view buttons
252
+ }
253
+
254
+ .is-fullscreen-mode & {
255
+ // in full screen mode we need to account for
256
+ // the combined with of the tools at the right of the header and the margin left
257
+ // of the toolbar which includes four buttons
258
+ width: calc(100% - 280px - #{4 * $grid-unit-80});
259
+ }
260
+ }
261
+ }
@@ -106,25 +106,30 @@ export default function useSiteEditorSettings() {
106
106
  storedSettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0
107
107
  storedSettings.__experimentalBlockPatternCategories; // WP 5.9
108
108
 
109
- const { restBlockPatterns, restBlockPatternCategories, templateSlug } =
110
- useSelect( ( select ) => {
111
- const { getEditedPostType, getEditedPostId } =
112
- select( editSiteStore );
113
- const { getEditedEntityRecord } = select( coreStore );
114
- const usedPostType = getEditedPostType();
115
- const usedPostId = getEditedPostId();
116
- const _record = getEditedEntityRecord(
117
- 'postType',
118
- usedPostType,
119
- usedPostId
120
- );
121
- return {
122
- restBlockPatterns: select( coreStore ).getBlockPatterns(),
123
- restBlockPatternCategories:
124
- select( coreStore ).getBlockPatternCategories(),
125
- templateSlug: _record.slug,
126
- };
127
- }, [] );
109
+ const {
110
+ restBlockPatterns,
111
+ restBlockPatternCategories,
112
+ templateSlug,
113
+ userPatternCategories,
114
+ } = useSelect( ( select ) => {
115
+ const { getEditedPostType, getEditedPostId } = select( editSiteStore );
116
+ const { getEditedEntityRecord, getUserPatternCategories } =
117
+ select( coreStore );
118
+ const usedPostType = getEditedPostType();
119
+ const usedPostId = getEditedPostId();
120
+ const _record = getEditedEntityRecord(
121
+ 'postType',
122
+ usedPostType,
123
+ usedPostId
124
+ );
125
+ return {
126
+ restBlockPatterns: select( coreStore ).getBlockPatterns(),
127
+ restBlockPatternCategories:
128
+ select( coreStore ).getBlockPatternCategories(),
129
+ templateSlug: _record.slug,
130
+ userPatternCategories: getUserPatternCategories(),
131
+ };
132
+ }, [] );
128
133
  const archiveLabels = useArchiveLabel( templateSlug );
129
134
 
130
135
  const blockPatterns = useMemo(
@@ -171,6 +176,7 @@ export default function useSiteEditorSettings() {
171
176
  inserterMediaCategories,
172
177
  __experimentalBlockPatterns: blockPatterns,
173
178
  __experimentalBlockPatternCategories: blockPatternCategories,
179
+ __experimentalUserPatternCategories: userPatternCategories,
174
180
  focusMode: canvasMode === 'view' && focusMode ? false : focusMode,
175
181
  __experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,
176
182
  __experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,
@@ -179,6 +185,7 @@ export default function useSiteEditorSettings() {
179
185
  storedSettings,
180
186
  blockPatterns,
181
187
  blockPatternCategories,
188
+ userPatternCategories,
182
189
  canvasMode,
183
190
  archiveLabels.archiveTypeLabel,
184
191
  archiveLabels.archiveNameLabel,