@wordpress/edit-site 5.14.0 → 5.16.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 (461) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-page/index.js +1 -6
  3. package/build/components/add-new-page/index.js.map +1 -1
  4. package/build/components/add-new-pattern/index.js +22 -7
  5. package/build/components/add-new-pattern/index.js.map +1 -1
  6. package/build/components/add-new-template/utils.js +10 -8
  7. package/build/components/add-new-template/utils.js.map +1 -1
  8. package/build/components/block-editor/constants.js +1 -1
  9. package/build/components/block-editor/constants.js.map +1 -1
  10. package/build/components/block-editor/editor-canvas.js +1 -1
  11. package/build/components/block-editor/editor-canvas.js.map +1 -1
  12. package/build/components/block-editor/index.js +0 -4
  13. package/build/components/block-editor/index.js.map +1 -1
  14. package/build/components/block-editor/use-site-editor-settings.js +114 -13
  15. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  16. package/build/components/code-editor/index.js +60 -28
  17. package/build/components/code-editor/index.js.map +1 -1
  18. package/build/components/create-pattern-modal/index.js +7 -3
  19. package/build/components/create-pattern-modal/index.js.map +1 -1
  20. package/build/components/editor/index.js +5 -5
  21. package/build/components/editor/index.js.map +1 -1
  22. package/build/components/global-styles/global-styles-provider.js +12 -7
  23. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  24. package/build/components/global-styles/screen-block.js +16 -0
  25. package/build/components/global-styles/screen-block.js.map +1 -1
  26. package/build/components/global-styles/screen-revisions/index.js +12 -5
  27. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  28. package/build/components/global-styles/screen-revisions/revisions-buttons.js +10 -22
  29. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  30. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +32 -25
  31. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  32. package/build/components/global-styles/style-variations-container.js +5 -3
  33. package/build/components/global-styles/style-variations-container.js.map +1 -1
  34. package/build/components/header-edit-mode/document-actions/index.js +4 -2
  35. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  36. package/build/components/header-edit-mode/index.js +13 -9
  37. package/build/components/header-edit-mode/index.js.map +1 -1
  38. package/build/components/keyboard-shortcuts/edit-mode.js +7 -5
  39. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  40. package/build/components/layout/index.js +17 -5
  41. package/build/components/layout/index.js.map +1 -1
  42. package/build/components/page/index.js +3 -3
  43. package/build/components/page/index.js.map +1 -1
  44. package/build/components/page-actions/index.js +2 -2
  45. package/build/components/page-actions/index.js.map +1 -1
  46. package/build/components/page-actions/{delete-page-menu-item.js → trash-page-menu-item.js} +8 -16
  47. package/build/components/page-actions/trash-page-menu-item.js.map +1 -0
  48. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +5 -5
  49. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  50. package/build/components/page-patterns/duplicate-menu-item.js +163 -0
  51. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -0
  52. package/build/components/page-patterns/grid-item.js +83 -58
  53. package/build/components/page-patterns/grid-item.js.map +1 -1
  54. package/build/components/page-patterns/grid.js +5 -18
  55. package/build/components/page-patterns/grid.js.map +1 -1
  56. package/build/components/page-patterns/header.js +69 -0
  57. package/build/components/page-patterns/header.js.map +1 -0
  58. package/build/components/page-patterns/index.js +3 -1
  59. package/build/components/page-patterns/index.js.map +1 -1
  60. package/build/components/page-patterns/pagination.js +63 -0
  61. package/build/components/page-patterns/pagination.js.map +1 -0
  62. package/build/components/page-patterns/patterns-list.js +110 -31
  63. package/build/components/page-patterns/patterns-list.js.map +1 -1
  64. package/build/components/page-patterns/rename-menu-item.js +109 -0
  65. package/build/components/page-patterns/rename-menu-item.js.map +1 -0
  66. package/build/components/page-patterns/use-patterns.js +116 -118
  67. package/build/components/page-patterns/use-patterns.js.map +1 -1
  68. package/build/components/page-template-parts/add-new-template-part.js +74 -0
  69. package/build/components/page-template-parts/add-new-template-part.js.map +1 -0
  70. package/build/components/page-template-parts/index.js +3 -25
  71. package/build/components/page-template-parts/index.js.map +1 -1
  72. package/build/components/page-templates/index.js +1 -16
  73. package/build/components/page-templates/index.js.map +1 -1
  74. package/build/components/resizable-frame/index.js +85 -51
  75. package/build/components/resizable-frame/index.js.map +1 -1
  76. package/build/components/save-button/index.js +4 -2
  77. package/build/components/save-button/index.js.map +1 -1
  78. package/build/components/save-hub/index.js +10 -4
  79. package/build/components/save-hub/index.js.map +1 -1
  80. package/build/components/save-panel/index.js +5 -5
  81. package/build/components/save-panel/index.js.map +1 -1
  82. package/build/components/sidebar-edit-mode/page-panels/page-content.js +4 -3
  83. package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  84. package/build/components/sidebar-edit-mode/page-panels/page-status.js +3 -8
  85. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  86. package/build/components/sidebar-edit-mode/template-panel/index.js +15 -8
  87. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  88. package/build/components/sidebar-navigation-screen/index.js +31 -15
  89. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  90. package/build/components/sidebar-navigation-screen-global-styles/index.js +34 -40
  91. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  92. package/build/components/sidebar-navigation-screen-main/index.js +4 -2
  93. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  94. package/build/components/sidebar-navigation-screen-main/template-part-hint.js +45 -0
  95. package/build/components/sidebar-navigation-screen-main/template-part-hint.js.map +1 -0
  96. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +4 -4
  97. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  98. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
  99. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  100. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +3 -3
  101. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  102. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +5 -4
  103. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  104. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js +2 -0
  105. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
  106. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +4 -4
  107. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  108. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +8 -0
  109. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  110. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +1 -1
  111. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  112. package/build/components/sidebar-navigation-screen-page/index.js +2 -3
  113. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  114. package/build/components/sidebar-navigation-screen-page/status-label.js +1 -34
  115. package/build/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  116. package/build/components/sidebar-navigation-screen-pages/index.js +35 -25
  117. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  118. package/build/components/sidebar-navigation-screen-pattern/index.js +9 -7
  119. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  120. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +4 -3
  121. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  122. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -2
  123. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  124. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +19 -4
  125. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  126. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +55 -28
  127. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  128. package/build/components/sidebar-navigation-screen-patterns/category-item.js +0 -5
  129. package/build/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  130. package/build/components/sidebar-navigation-screen-patterns/index.js +72 -60
  131. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  132. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +9 -5
  133. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -1
  134. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +11 -1
  135. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +20 -9
  137. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  139. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-templates/index.js +1 -10
  141. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  142. package/build/components/sidebar-navigation-screen-templates-browse/index.js +9 -0
  143. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  144. package/build/components/site-hub/index.js +29 -13
  145. package/build/components/site-hub/index.js.map +1 -1
  146. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -5
  147. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  148. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +1 -1
  149. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  150. package/build/components/sync-state-with-url/use-sync-path-with-url.js +15 -12
  151. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  152. package/build/components/template-actions/index.js +3 -1
  153. package/build/components/template-actions/index.js.map +1 -1
  154. package/build/components/template-actions/rename-menu-item.js +12 -8
  155. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  156. package/build/components/use-edited-entity-record/index.js +6 -1
  157. package/build/components/use-edited-entity-record/index.js.map +1 -1
  158. package/build/hooks/commands/use-common-commands.js +120 -32
  159. package/build/hooks/commands/use-common-commands.js.map +1 -1
  160. package/build/hooks/commands/use-edit-mode-commands.js +65 -7
  161. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  162. package/build/hooks/push-changes-to-global-styles/index.js +138 -57
  163. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  164. package/build/store/private-actions.js +9 -2
  165. package/build/store/private-actions.js.map +1 -1
  166. package/build/utils/normalize-record-key.js +19 -0
  167. package/build/utils/normalize-record-key.js.map +1 -0
  168. package/build/utils/use-activate-theme.js +1 -1
  169. package/build/utils/use-activate-theme.js.map +1 -1
  170. package/build/utils/use-debounced-input.js +5 -7
  171. package/build/utils/use-debounced-input.js.map +1 -1
  172. package/build-module/components/add-new-page/index.js +1 -6
  173. package/build-module/components/add-new-page/index.js.map +1 -1
  174. package/build-module/components/add-new-pattern/index.js +20 -7
  175. package/build-module/components/add-new-pattern/index.js.map +1 -1
  176. package/build-module/components/add-new-template/utils.js +9 -6
  177. package/build-module/components/add-new-template/utils.js.map +1 -1
  178. package/build-module/components/block-editor/constants.js +1 -1
  179. package/build-module/components/block-editor/constants.js.map +1 -1
  180. package/build-module/components/block-editor/editor-canvas.js +1 -1
  181. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  182. package/build-module/components/block-editor/index.js +0 -4
  183. package/build-module/components/block-editor/index.js.map +1 -1
  184. package/build-module/components/block-editor/use-site-editor-settings.js +116 -14
  185. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  186. package/build-module/components/code-editor/index.js +62 -30
  187. package/build-module/components/code-editor/index.js.map +1 -1
  188. package/build-module/components/create-pattern-modal/index.js +6 -3
  189. package/build-module/components/create-pattern-modal/index.js.map +1 -1
  190. package/build-module/components/editor/index.js +5 -5
  191. package/build-module/components/editor/index.js.map +1 -1
  192. package/build-module/components/global-styles/global-styles-provider.js +12 -7
  193. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  194. package/build-module/components/global-styles/screen-block.js +16 -0
  195. package/build-module/components/global-styles/screen-block.js.map +1 -1
  196. package/build-module/components/global-styles/screen-revisions/index.js +13 -6
  197. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  198. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +10 -22
  199. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  200. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +28 -21
  201. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  202. package/build-module/components/global-styles/style-variations-container.js +5 -3
  203. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  204. package/build-module/components/header-edit-mode/document-actions/index.js +6 -4
  205. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  206. package/build-module/components/header-edit-mode/index.js +13 -9
  207. package/build-module/components/header-edit-mode/index.js.map +1 -1
  208. package/build-module/components/keyboard-shortcuts/edit-mode.js +7 -5
  209. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  210. package/build-module/components/layout/index.js +17 -5
  211. package/build-module/components/layout/index.js.map +1 -1
  212. package/build-module/components/page/index.js +3 -3
  213. package/build-module/components/page/index.js.map +1 -1
  214. package/build-module/components/page-actions/index.js +2 -2
  215. package/build-module/components/page-actions/index.js.map +1 -1
  216. package/build-module/components/page-actions/{delete-page-menu-item.js → trash-page-menu-item.js} +8 -17
  217. package/build-module/components/page-actions/trash-page-menu-item.js.map +1 -0
  218. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +5 -3
  219. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  220. package/build-module/components/page-patterns/duplicate-menu-item.js +147 -0
  221. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -0
  222. package/build-module/components/page-patterns/grid-item.js +84 -64
  223. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  224. package/build-module/components/page-patterns/grid.js +5 -17
  225. package/build-module/components/page-patterns/grid.js.map +1 -1
  226. package/build-module/components/page-patterns/header.js +54 -0
  227. package/build-module/components/page-patterns/header.js.map +1 -0
  228. package/build-module/components/page-patterns/index.js +3 -1
  229. package/build-module/components/page-patterns/index.js.map +1 -1
  230. package/build-module/components/page-patterns/pagination.js +54 -0
  231. package/build-module/components/page-patterns/pagination.js.map +1 -0
  232. package/build-module/components/page-patterns/patterns-list.js +111 -34
  233. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  234. package/build-module/components/page-patterns/rename-menu-item.js +97 -0
  235. package/build-module/components/page-patterns/rename-menu-item.js.map +1 -0
  236. package/build-module/components/page-patterns/use-patterns.js +116 -119
  237. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  238. package/build-module/components/page-template-parts/add-new-template-part.js +58 -0
  239. package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -0
  240. package/build-module/components/page-template-parts/index.js +4 -24
  241. package/build-module/components/page-template-parts/index.js.map +1 -1
  242. package/build-module/components/page-templates/index.js +2 -15
  243. package/build-module/components/page-templates/index.js.map +1 -1
  244. package/build-module/components/resizable-frame/index.js +87 -55
  245. package/build-module/components/resizable-frame/index.js.map +1 -1
  246. package/build-module/components/save-button/index.js +4 -2
  247. package/build-module/components/save-button/index.js.map +1 -1
  248. package/build-module/components/save-hub/index.js +10 -4
  249. package/build-module/components/save-hub/index.js.map +1 -1
  250. package/build-module/components/save-panel/index.js +5 -5
  251. package/build-module/components/save-panel/index.js.map +1 -1
  252. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js +5 -2
  253. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  254. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +3 -8
  255. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  256. package/build-module/components/sidebar-edit-mode/template-panel/index.js +15 -9
  257. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  258. package/build-module/components/sidebar-navigation-screen/index.js +29 -16
  259. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  260. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +34 -40
  261. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  262. package/build-module/components/sidebar-navigation-screen-main/index.js +4 -3
  263. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  264. package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js +33 -0
  265. package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js.map +1 -0
  266. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +4 -4
  267. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  268. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
  269. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  270. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +3 -3
  271. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  272. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +5 -4
  273. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  274. package/build-module/components/sidebar-navigation-screen-navigation-menus/constants.js +2 -0
  275. package/build-module/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
  276. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +4 -4
  277. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  278. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +7 -0
  279. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  280. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +2 -2
  281. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  282. package/build-module/components/sidebar-navigation-screen-page/index.js +2 -3
  283. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  284. package/build-module/components/sidebar-navigation-screen-page/status-label.js +1 -32
  285. package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  286. package/build-module/components/sidebar-navigation-screen-pages/index.js +35 -25
  287. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  288. package/build-module/components/sidebar-navigation-screen-pattern/index.js +8 -7
  289. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  290. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +4 -3
  291. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  292. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -2
  293. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  294. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +18 -4
  295. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  296. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +53 -28
  297. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  298. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js +0 -5
  299. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  300. package/build-module/components/sidebar-navigation-screen-patterns/index.js +76 -60
  301. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  302. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +9 -5
  303. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -1
  304. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +10 -1
  305. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  306. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +18 -9
  307. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  308. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  309. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  310. package/build-module/components/sidebar-navigation-screen-templates/index.js +1 -8
  311. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  312. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +7 -0
  313. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  314. package/build-module/components/site-hub/index.js +28 -13
  315. package/build-module/components/site-hub/index.js.map +1 -1
  316. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +7 -5
  317. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  318. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +1 -1
  319. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  320. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +16 -12
  321. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  322. package/build-module/components/template-actions/index.js +2 -1
  323. package/build-module/components/template-actions/index.js.map +1 -1
  324. package/build-module/components/template-actions/rename-menu-item.js +11 -8
  325. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  326. package/build-module/components/use-edited-entity-record/index.js +3 -1
  327. package/build-module/components/use-edited-entity-record/index.js.map +1 -1
  328. package/build-module/hooks/commands/use-common-commands.js +116 -32
  329. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  330. package/build-module/hooks/commands/use-edit-mode-commands.js +65 -9
  331. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  332. package/build-module/hooks/push-changes-to-global-styles/index.js +139 -57
  333. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  334. package/build-module/store/private-actions.js +9 -2
  335. package/build-module/store/private-actions.js.map +1 -1
  336. package/build-module/utils/normalize-record-key.js +12 -0
  337. package/build-module/utils/normalize-record-key.js.map +1 -0
  338. package/build-module/utils/use-activate-theme.js +1 -1
  339. package/build-module/utils/use-activate-theme.js.map +1 -1
  340. package/build-module/utils/use-debounced-input.js +5 -7
  341. package/build-module/utils/use-debounced-input.js.map +1 -1
  342. package/build-style/style-rtl.css +281 -103
  343. package/build-style/style.css +281 -103
  344. package/package.json +39 -40
  345. package/src/components/add-new-page/index.js +0 -3
  346. package/src/components/add-new-pattern/index.js +25 -12
  347. package/src/components/add-new-template/utils.js +9 -6
  348. package/src/components/block-editor/constants.js +5 -1
  349. package/src/components/block-editor/editor-canvas.js +1 -1
  350. package/src/components/block-editor/index.js +0 -4
  351. package/src/components/block-editor/use-site-editor-settings.js +119 -20
  352. package/src/components/canvas-spinner/style.scss +14 -0
  353. package/src/components/code-editor/index.js +51 -33
  354. package/src/components/create-pattern-modal/index.js +5 -2
  355. package/src/components/editor/index.js +5 -5
  356. package/src/components/global-styles/global-styles-provider.js +7 -2
  357. package/src/components/global-styles/screen-block.js +15 -0
  358. package/src/components/global-styles/screen-revisions/index.js +64 -58
  359. package/src/components/global-styles/screen-revisions/revisions-buttons.js +17 -31
  360. package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +14 -1
  361. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +64 -48
  362. package/src/components/global-styles/style-variations-container.js +2 -0
  363. package/src/components/header-edit-mode/document-actions/index.js +8 -4
  364. package/src/components/header-edit-mode/document-actions/style.scss +45 -28
  365. package/src/components/header-edit-mode/index.js +29 -22
  366. package/src/components/keyboard-shortcuts/edit-mode.js +4 -5
  367. package/src/components/layout/index.js +49 -22
  368. package/src/components/layout/style.scss +4 -3
  369. package/src/components/page/index.js +8 -8
  370. package/src/components/page/style.scss +8 -5
  371. package/src/components/page-actions/index.js +2 -2
  372. package/src/components/page-actions/{delete-page-menu-item.js → trash-page-menu-item.js} +9 -22
  373. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +12 -3
  374. package/src/components/page-patterns/duplicate-menu-item.js +196 -0
  375. package/src/components/page-patterns/grid-item.js +189 -133
  376. package/src/components/page-patterns/grid.js +3 -20
  377. package/src/components/page-patterns/header.js +69 -0
  378. package/src/components/page-patterns/index.js +6 -1
  379. package/src/components/page-patterns/pagination.js +80 -0
  380. package/src/components/page-patterns/patterns-list.js +172 -71
  381. package/src/components/page-patterns/rename-menu-item.js +115 -0
  382. package/src/components/page-patterns/style.scss +141 -30
  383. package/src/components/page-patterns/use-patterns.js +115 -169
  384. package/src/components/page-template-parts/add-new-template-part.js +57 -0
  385. package/src/components/page-template-parts/index.js +3 -23
  386. package/src/components/page-templates/index.js +6 -19
  387. package/src/components/resizable-frame/index.js +104 -51
  388. package/src/components/resizable-frame/style.scss +9 -9
  389. package/src/components/save-button/index.js +2 -0
  390. package/src/components/save-hub/index.js +6 -1
  391. package/src/components/save-hub/style.scss +1 -1
  392. package/src/components/save-panel/index.js +10 -4
  393. package/src/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  394. package/src/components/sidebar-edit-mode/page-panels/page-status.js +2 -5
  395. package/src/components/sidebar-edit-mode/template-panel/index.js +15 -11
  396. package/src/components/sidebar-navigation-item/style.scss +5 -12
  397. package/src/components/sidebar-navigation-screen/index.js +30 -15
  398. package/src/components/sidebar-navigation-screen/style.scss +18 -0
  399. package/src/components/sidebar-navigation-screen-details-panel/style.scss +1 -0
  400. package/src/components/sidebar-navigation-screen-global-styles/index.js +48 -44
  401. package/src/components/sidebar-navigation-screen-main/index.js +44 -40
  402. package/src/components/sidebar-navigation-screen-main/template-part-hint.js +34 -0
  403. package/src/components/sidebar-navigation-screen-navigation-menu/index.js +4 -3
  404. package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
  405. package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
  406. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +16 -7
  407. package/src/components/sidebar-navigation-screen-navigation-menus/constants.js +2 -0
  408. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +4 -4
  409. package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +27 -15
  410. package/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +1 -4
  411. package/src/components/sidebar-navigation-screen-page/index.js +3 -3
  412. package/src/components/sidebar-navigation-screen-page/status-label.js +1 -35
  413. package/src/components/sidebar-navigation-screen-pages/index.js +48 -33
  414. package/src/components/sidebar-navigation-screen-pattern/index.js +5 -2
  415. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +3 -2
  416. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +2 -1
  417. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +23 -3
  418. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +74 -43
  419. package/src/components/sidebar-navigation-screen-patterns/category-item.js +5 -13
  420. package/src/components/sidebar-navigation-screen-patterns/index.js +103 -106
  421. package/src/components/sidebar-navigation-screen-patterns/style.scss +20 -0
  422. package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +7 -6
  423. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +9 -0
  424. package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +31 -9
  425. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -1
  426. package/src/components/sidebar-navigation-screen-templates/index.js +1 -9
  427. package/src/components/sidebar-navigation-screen-templates-browse/index.js +10 -0
  428. package/src/components/site-hub/index.js +48 -29
  429. package/src/components/site-hub/style.scss +14 -2
  430. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +8 -2
  431. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +1 -4
  432. package/src/components/sync-state-with-url/use-sync-path-with-url.js +73 -66
  433. package/src/components/table/style.scss +1 -0
  434. package/src/components/template-actions/index.js +2 -1
  435. package/src/components/template-actions/rename-menu-item.js +17 -10
  436. package/src/components/use-edited-entity-record/index.js +6 -1
  437. package/src/hooks/commands/use-common-commands.js +105 -32
  438. package/src/hooks/commands/use-edit-mode-commands.js +94 -23
  439. package/src/hooks/push-changes-to-global-styles/index.js +141 -50
  440. package/src/store/private-actions.js +10 -2
  441. package/src/style.scss +10 -12
  442. package/src/utils/normalize-record-key.js +11 -0
  443. package/src/utils/use-activate-theme.js +1 -1
  444. package/src/utils/use-debounced-input.js +8 -7
  445. package/build/components/code-editor/code-editor-text-area.js +0 -96
  446. package/build/components/code-editor/code-editor-text-area.js.map +0 -1
  447. package/build/components/keyboard-shortcuts/index.js +0 -148
  448. package/build/components/keyboard-shortcuts/index.js.map +0 -1
  449. package/build/components/page-actions/delete-page-menu-item.js.map +0 -1
  450. package/build/components/page-content-focus-manager/constants.js +0 -9
  451. package/build/components/page-content-focus-manager/constants.js.map +0 -1
  452. package/build-module/components/code-editor/code-editor-text-area.js +0 -84
  453. package/build-module/components/code-editor/code-editor-text-area.js.map +0 -1
  454. package/build-module/components/keyboard-shortcuts/index.js +0 -132
  455. package/build-module/components/keyboard-shortcuts/index.js.map +0 -1
  456. package/build-module/components/page-actions/delete-page-menu-item.js.map +0 -1
  457. package/build-module/components/page-content-focus-manager/constants.js +0 -2
  458. package/build-module/components/page-content-focus-manager/constants.js.map +0 -1
  459. package/src/components/code-editor/code-editor-text-area.js +0 -84
  460. package/src/components/keyboard-shortcuts/index.js +0 -137
  461. package/src/components/page-content-focus-manager/constants.js +0 -5
@@ -1,3 +1,23 @@
1
1
  .edit-site-sidebar-navigation-screen-patterns__group {
2
2
  margin-bottom: $grid-unit-30;
3
+
4
+ &:last-of-type {
5
+ border-bottom: 0;
6
+ padding-bottom: 0;
7
+ margin-bottom: 0;
8
+ }
9
+ }
10
+
11
+ .edit-site-sidebar-navigation-screen-patterns__group-header {
12
+ margin-top: $grid-unit-20;
13
+
14
+ p {
15
+ color: $gray-600;
16
+ }
17
+
18
+ h2 {
19
+ font-size: 11px;
20
+ font-weight: 500;
21
+ text-transform: uppercase;
22
+ }
3
23
  }
@@ -6,18 +6,19 @@ import { useSelect } from '@wordpress/data';
6
6
  import { __ } from '@wordpress/i18n';
7
7
 
8
8
  export default function useMyPatterns() {
9
- const myPatterns = useSelect( ( select ) =>
10
- select( coreStore ).getEntityRecords( 'postType', 'wp_block', {
11
- per_page: -1,
12
- } )
9
+ const myPatternsCount = useSelect(
10
+ ( select ) =>
11
+ select( coreStore ).getEntityRecords( 'postType', 'wp_block', {
12
+ per_page: -1,
13
+ } )?.length ?? 0
13
14
  );
14
15
 
15
16
  return {
16
17
  myPatterns: {
17
- count: myPatterns?.length || 0,
18
+ count: myPatternsCount,
18
19
  name: 'my-patterns',
19
20
  label: __( 'My patterns' ),
20
21
  },
21
- hasPatterns: !! myPatterns?.length,
22
+ hasPatterns: myPatternsCount > 0,
22
23
  };
23
24
  }
@@ -2,6 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useMemo } from '@wordpress/element';
5
+ import { __ } from '@wordpress/i18n';
5
6
 
6
7
  /**
7
8
  * Internal dependencies
@@ -11,6 +12,10 @@ import useThemePatterns from './use-theme-patterns';
11
12
 
12
13
  export default function usePatternCategories() {
13
14
  const defaultCategories = useDefaultPatternCategories();
15
+ defaultCategories.push( {
16
+ name: 'uncategorized',
17
+ label: __( 'Uncategorized' ),
18
+ } );
14
19
  const themePatterns = useThemePatterns();
15
20
 
16
21
  const patternCategories = useMemo( () => {
@@ -31,6 +36,10 @@ export default function usePatternCategories() {
31
36
  categoryMap[ category ].count += 1;
32
37
  }
33
38
  } );
39
+ // If the pattern has no categories, add it to uncategorized.
40
+ if ( ! pattern.categories?.length ) {
41
+ categoryMap.uncategorized.count += 1;
42
+ }
34
43
  } );
35
44
 
36
45
  // Filter categories so we only have those containing patterns.
@@ -2,19 +2,41 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useEntityRecords } from '@wordpress/core-data';
5
+ import { useSelect } from '@wordpress/data';
6
+ import { store as editorStore } from '@wordpress/editor';
5
7
 
6
- const getTemplatePartAreas = ( items ) => {
8
+ const useTemplatePartsGroupedByArea = ( items ) => {
7
9
  const allItems = items || [];
8
10
 
9
- const groupedByArea = allItems.reduce(
10
- ( accumulator, item ) => {
11
- const key = accumulator[ item.area ] ? item.area : 'uncategorized';
12
- accumulator[ key ].push( item );
13
- return accumulator;
14
- },
15
- { header: [], footer: [], sidebar: [], uncategorized: [] }
11
+ const templatePartAreas = useSelect(
12
+ ( select ) =>
13
+ select( editorStore ).__experimentalGetDefaultTemplatePartAreas(),
14
+ []
16
15
  );
17
16
 
17
+ // Create map of template areas ensuring that default areas are displayed before
18
+ // any custom registered template part areas.
19
+ const knownAreas = {
20
+ header: {},
21
+ footer: {},
22
+ sidebar: {},
23
+ uncategorized: {},
24
+ };
25
+
26
+ templatePartAreas.forEach(
27
+ ( templatePartArea ) =>
28
+ ( knownAreas[ templatePartArea.area ] = {
29
+ ...templatePartArea,
30
+ templateParts: [],
31
+ } )
32
+ );
33
+
34
+ const groupedByArea = allItems.reduce( ( accumulator, item ) => {
35
+ const key = accumulator[ item.area ] ? item.area : 'uncategorized';
36
+ accumulator[ key ].templateParts.push( item );
37
+ return accumulator;
38
+ }, knownAreas );
39
+
18
40
  return groupedByArea;
19
41
  };
20
42
 
@@ -28,6 +50,6 @@ export default function useTemplatePartAreas() {
28
50
  return {
29
51
  hasTemplateParts: templateParts ? !! templateParts.length : false,
30
52
  isLoading,
31
- templatePartAreas: getTemplatePartAreas( templateParts ),
53
+ templatePartAreas: useTemplatePartsGroupedByArea( templateParts ),
32
54
  };
33
55
  }
@@ -36,7 +36,8 @@ export default function useThemePatterns() {
36
36
  ( pattern ) =>
37
37
  ! CORE_PATTERN_SOURCES.includes( pattern.source )
38
38
  )
39
- .filter( filterOutDuplicatesByName ),
39
+ .filter( filterOutDuplicatesByName )
40
+ .filter( ( pattern ) => pattern.inserter !== false ),
40
41
  [ blockPatterns, restBlockPatterns ]
41
42
  );
42
43
 
@@ -7,7 +7,6 @@ import {
7
7
  } from '@wordpress/components';
8
8
  import { __ } from '@wordpress/i18n';
9
9
  import { useEntityRecords } from '@wordpress/core-data';
10
- import { useSelect } from '@wordpress/data';
11
10
  import { decodeEntities } from '@wordpress/html-entities';
12
11
  import { useViewportMatch } from '@wordpress/compose';
13
12
 
@@ -18,7 +17,6 @@ import SidebarNavigationScreen from '../sidebar-navigation-screen';
18
17
  import { useLink } from '../routes/link';
19
18
  import SidebarNavigationItem from '../sidebar-navigation-item';
20
19
  import AddNewTemplate from '../add-new-template';
21
- import { store as editSiteStore } from '../../store';
22
20
  import SidebarButton from '../sidebar-button';
23
21
 
24
22
  const TemplateItem = ( { postType, postId, ...props } ) => {
@@ -31,11 +29,6 @@ const TemplateItem = ( { postType, postId, ...props } ) => {
31
29
 
32
30
  export default function SidebarNavigationScreenTemplates() {
33
31
  const isMobileViewport = useViewportMatch( 'medium', '<' );
34
- const isTemplatePartsMode = useSelect( ( select ) => {
35
- const settings = select( editSiteStore ).getSettings();
36
-
37
- return !! settings.supportsTemplatePartsMode;
38
- }, [] );
39
32
 
40
33
  const { records: templates, isResolving: isLoading } = useEntityRecords(
41
34
  'postType',
@@ -51,10 +44,9 @@ export default function SidebarNavigationScreenTemplates() {
51
44
  );
52
45
 
53
46
  const browseAllLink = useLink( { path: '/wp_template/all' } );
54
- const canCreate = ! isMobileViewport && ! isTemplatePartsMode;
47
+ const canCreate = ! isMobileViewport;
55
48
  return (
56
49
  <SidebarNavigationScreen
57
- isRoot={ isTemplatePartsMode }
58
50
  title={ __( 'Templates' ) }
59
51
  description={ __(
60
52
  'Express the layout of your site with templates'
@@ -2,12 +2,14 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
+ import { useSelect } from '@wordpress/data';
5
6
  import { __experimentalUseNavigator as useNavigator } from '@wordpress/components';
6
7
 
7
8
  /**
8
9
  * Internal dependencies
9
10
  */
10
11
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
12
+ import { store as editSiteStore } from '../../store';
11
13
 
12
14
  const config = {
13
15
  wp_template: {
@@ -29,8 +31,16 @@ export default function SidebarNavigationScreenTemplatesBrowse() {
29
31
  const {
30
32
  params: { postType },
31
33
  } = useNavigator();
34
+
35
+ const isTemplatePartsMode = useSelect( ( select ) => {
36
+ const settings = select( editSiteStore ).getSettings();
37
+
38
+ return !! settings.supportsTemplatePartsMode;
39
+ }, [] );
40
+
32
41
  return (
33
42
  <SidebarNavigationScreen
43
+ isRoot={ isTemplatePartsMode }
34
44
  title={ config[ postType ].title }
35
45
  description={ config[ postType ].description }
36
46
  backPath={ config[ postType ].backPath }
@@ -21,6 +21,7 @@ import { decodeEntities } from '@wordpress/html-entities';
21
21
  import { forwardRef } from '@wordpress/element';
22
22
  import { search, external } from '@wordpress/icons';
23
23
  import { store as commandsStore } from '@wordpress/commands';
24
+ import { displayShortcut } from '@wordpress/keycodes';
24
25
 
25
26
  /**
26
27
  * Internal dependencies
@@ -31,33 +32,41 @@ import { unlock } from '../../lock-unlock';
31
32
 
32
33
  const HUB_ANIMATION_DURATION = 0.3;
33
34
 
34
- const SiteHub = forwardRef( ( props, ref ) => {
35
- const { canvasMode, dashboardLink, homeUrl } = useSelect( ( select ) => {
36
- const { getCanvasMode, getSettings } = unlock(
37
- select( editSiteStore )
38
- );
35
+ const SiteHub = forwardRef( ( { isTransparent, ...restProps }, ref ) => {
36
+ const { canvasMode, dashboardLink, homeUrl, siteTitle } = useSelect(
37
+ ( select ) => {
38
+ const { getCanvasMode, getSettings } = unlock(
39
+ select( editSiteStore )
40
+ );
39
41
 
40
- const {
41
- getUnstableBase, // Site index.
42
- } = select( coreStore );
42
+ const {
43
+ getSite,
44
+ getUnstableBase, // Site index.
45
+ } = select( coreStore );
43
46
 
44
- return {
45
- canvasMode: getCanvasMode(),
46
- dashboardLink:
47
- getSettings().__experimentalDashboardLink || 'index.php',
48
- homeUrl: getUnstableBase()?.home,
49
- };
50
- }, [] );
47
+ return {
48
+ canvasMode: getCanvasMode(),
49
+ dashboardLink:
50
+ getSettings().__experimentalDashboardLink || 'index.php',
51
+ homeUrl: getUnstableBase()?.home,
52
+ siteTitle: getSite()?.title,
53
+ };
54
+ },
55
+ []
56
+ );
51
57
  const { open: openCommandCenter } = useDispatch( commandsStore );
52
58
 
53
59
  const disableMotion = useReducedMotion();
54
- const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
60
+ const {
61
+ setCanvasMode,
62
+ __experimentalSetPreviewDeviceType: setPreviewDeviceType,
63
+ } = unlock( useDispatch( editSiteStore ) );
55
64
  const { clearSelectedBlock } = useDispatch( blockEditorStore );
56
65
  const isBackToDashboardButton = canvasMode === 'view';
57
66
  const siteIconButtonProps = isBackToDashboardButton
58
67
  ? {
59
68
  href: dashboardLink,
60
- label: __( 'Go back to the Dashboard' ),
69
+ label: __( 'Go to the Dashboard' ),
61
70
  }
62
71
  : {
63
72
  href: dashboardLink, // We need to keep the `href` here so the component doesn't remount as a `<button>` and break the animation.
@@ -67,22 +76,20 @@ const SiteHub = forwardRef( ( props, ref ) => {
67
76
  event.preventDefault();
68
77
  if ( canvasMode === 'edit' ) {
69
78
  clearSelectedBlock();
79
+ setPreviewDeviceType( 'desktop' );
70
80
  setCanvasMode( 'view' );
71
81
  }
72
82
  },
73
83
  };
74
84
 
75
- const siteTitle = useSelect(
76
- ( select ) =>
77
- select( coreStore ).getEntityRecord( 'root', 'site' )?.title,
78
- []
79
- );
80
-
81
85
  return (
82
86
  <motion.div
83
87
  ref={ ref }
84
- { ...props }
85
- className={ classnames( 'edit-site-site-hub', props.className ) }
88
+ { ...restProps }
89
+ className={ classnames(
90
+ 'edit-site-site-hub',
91
+ restProps.className
92
+ ) }
86
93
  initial={ false }
87
94
  transition={ {
88
95
  type: 'tween',
@@ -101,7 +108,12 @@ const SiteHub = forwardRef( ( props, ref ) => {
101
108
  spacing="0"
102
109
  >
103
110
  <motion.div
104
- className="edit-site-site-hub__view-mode-toggle-container"
111
+ className={ classnames(
112
+ 'edit-site-site-hub__view-mode-toggle-container',
113
+ {
114
+ 'has-transparent-background': isTransparent,
115
+ }
116
+ ) }
105
117
  layout
106
118
  transition={ {
107
119
  type: 'tween',
@@ -145,7 +157,10 @@ const SiteHub = forwardRef( ( props, ref ) => {
145
157
  exit={ {
146
158
  opacity: 0,
147
159
  } }
148
- className="edit-site-site-hub__site-title"
160
+ className={ classnames(
161
+ 'edit-site-site-hub__site-title',
162
+ { 'is-transparent': isTransparent }
163
+ ) }
149
164
  transition={ {
150
165
  type: 'tween',
151
166
  duration: disableMotion ? 0 : 0.2,
@@ -160,7 +175,7 @@ const SiteHub = forwardRef( ( props, ref ) => {
160
175
  <Button
161
176
  href={ homeUrl }
162
177
  target="_blank"
163
- label={ __( 'View site' ) }
178
+ label={ __( 'View site (opens in a new tab)' ) }
164
179
  aria-label={ __(
165
180
  'View site (opens in a new tab)'
166
181
  ) }
@@ -171,10 +186,14 @@ const SiteHub = forwardRef( ( props, ref ) => {
171
186
  </HStack>
172
187
  { canvasMode === 'view' && (
173
188
  <Button
174
- className="edit-site-site-hub_toggle-command-center"
189
+ className={ classnames(
190
+ 'edit-site-site-hub_toggle-command-center',
191
+ { 'is-transparent': isTransparent }
192
+ ) }
175
193
  icon={ search }
176
194
  onClick={ () => openCommandCenter() }
177
195
  label={ __( 'Open command palette' ) }
196
+ shortcut={ displayShortcut.primary( 'k' ) }
178
197
  />
179
198
  ) }
180
199
  </HStack>
@@ -8,15 +8,23 @@
8
8
  gap: 0;
9
9
  }
10
10
 
11
+ .edit-site-site-hub__site-title,
12
+ .edit-site-site-hub_toggle-command-center {
13
+ transition: opacity ease 0.1s;
14
+
15
+ &.is-transparent {
16
+ opacity: 0 !important;
17
+ }
18
+ }
19
+
11
20
  .edit-site-site-hub__site-view-link {
12
21
  flex-grow: 0;
22
+ margin-right: var(--wp-admin-border-width-focus);
13
23
  @include break-mobile() {
14
24
  opacity: 0;
15
25
  transition: opacity 0.2s ease-in-out;
16
26
  }
17
27
  &:focus {
18
- outline: none;
19
- box-shadow: none;
20
28
  opacity: 1;
21
29
  }
22
30
  svg {
@@ -39,6 +47,10 @@
39
47
  width: $header-height;
40
48
  flex-shrink: 0;
41
49
  background: $gray-900;
50
+
51
+ &.has-transparent-background {
52
+ background: transparent;
53
+ }
42
54
  }
43
55
 
44
56
  .edit-site-site-hub__text-content {
@@ -11,11 +11,17 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
11
11
  */
12
12
  import { store as editSiteStore } from '../../store';
13
13
  import { unlock } from '../../lock-unlock';
14
+ import normalizeRecordKey from '../../utils/normalize-record-key';
14
15
 
15
16
  const { useLocation } = unlock( routerPrivateApis );
16
17
 
17
18
  export default function useInitEditedEntityFromURL() {
18
- const { params: { postId, postType } = {} } = useLocation();
19
+ const { params } = useLocation();
20
+
21
+ const { postType } = params;
22
+
23
+ const postId = normalizeRecordKey( params?.postId );
24
+
19
25
  const { isRequestingSite, homepageId, url } = useSelect( ( select ) => {
20
26
  const { getSite, getUnstableBase } = select( coreDataStore );
21
27
  const siteData = getSite();
@@ -66,7 +72,7 @@ export default function useInitEditedEntityFromURL() {
66
72
  // In all other cases, we need to set the home page in the site editor view.
67
73
  if ( homepageId ) {
68
74
  setPage( {
69
- context: { postType: 'page', postId: homepageId },
75
+ context: { postType: 'page', postId: Number( homepageId ) },
70
76
  } );
71
77
  } else if ( ! isRequestingSite ) {
72
78
  setPage( {
@@ -58,10 +58,7 @@ export default function useSyncCanvasModeWithURL() {
58
58
 
59
59
  useEffect( () => {
60
60
  currentCanvasInUrl.current = canvasInUrl;
61
- if (
62
- canvasInUrl === undefined &&
63
- currentCanvasMode.current !== 'view'
64
- ) {
61
+ if ( canvasInUrl !== 'edit' && currentCanvasMode.current !== 'view' ) {
65
62
  setCanvasMode( 'view' );
66
63
  } else if (
67
64
  canvasInUrl === 'edit' &&
@@ -36,6 +36,12 @@ export function getPathFromURL( urlParams ) {
36
36
  return path;
37
37
  }
38
38
 
39
+ function isSubset( subset, superset ) {
40
+ return Object.entries( subset ).every( ( [ key, value ] ) => {
41
+ return superset[ key ] === value;
42
+ } );
43
+ }
44
+
39
45
  export default function useSyncPathWithURL() {
40
46
  const history = useHistory();
41
47
  const { params: urlParams } = useLocation();
@@ -44,76 +50,77 @@ export default function useSyncPathWithURL() {
44
50
  params: navigatorParams,
45
51
  goTo,
46
52
  } = useNavigator();
47
- const currentUrlParams = useRef( urlParams );
48
- const currentPath = useRef( navigatorLocation.path );
49
53
  const isMounting = useRef( true );
50
54
 
51
- useEffect( () => {
52
- // The navigatorParams are only initially filled properly when the
53
- // navigator screens mount. so we ignore the first synchronisation.
54
- if ( isMounting.current ) {
55
- isMounting.current = false;
56
- return;
57
- }
58
-
59
- function updateUrlParams( newUrlParams ) {
60
- if (
61
- Object.entries( newUrlParams ).every( ( [ key, value ] ) => {
62
- return currentUrlParams.current[ key ] === value;
63
- } )
64
- ) {
55
+ useEffect(
56
+ () => {
57
+ // The navigatorParams are only initially filled properly when the
58
+ // navigator screens mount. so we ignore the first synchronisation.
59
+ if ( isMounting.current ) {
60
+ isMounting.current = false;
65
61
  return;
66
62
  }
67
- const updatedParams = {
68
- ...currentUrlParams.current,
69
- ...newUrlParams,
70
- };
71
- currentUrlParams.current = updatedParams;
72
- history.push( updatedParams );
73
- }
74
63
 
75
- if ( navigatorParams?.postType && navigatorParams?.postId ) {
76
- updateUrlParams( {
77
- postType: navigatorParams?.postType,
78
- postId: navigatorParams?.postId,
79
- path: undefined,
80
- } );
81
- } else if (
82
- navigatorLocation.path.startsWith( '/page/' ) &&
83
- navigatorParams?.postId
84
- ) {
85
- updateUrlParams( {
86
- postType: 'page',
87
- postId: navigatorParams?.postId,
88
- path: undefined,
89
- } );
90
- } else if ( navigatorLocation.path === '/patterns' ) {
91
- updateUrlParams( {
92
- postType: undefined,
93
- postId: undefined,
94
- canvas: undefined,
95
- path: navigatorLocation.path,
96
- } );
97
- } else {
98
- updateUrlParams( {
99
- postType: undefined,
100
- postId: undefined,
101
- categoryType: undefined,
102
- categoryId: undefined,
103
- path:
104
- navigatorLocation.path === '/'
105
- ? undefined
106
- : navigatorLocation.path,
107
- } );
108
- }
109
- }, [ navigatorLocation?.path, navigatorParams, history ] );
64
+ function updateUrlParams( newUrlParams ) {
65
+ if ( isSubset( newUrlParams, urlParams ) ) {
66
+ return;
67
+ }
68
+ const updatedParams = {
69
+ ...urlParams,
70
+ ...newUrlParams,
71
+ };
72
+ history.push( updatedParams );
73
+ }
110
74
 
111
- useEffect( () => {
112
- currentUrlParams.current = urlParams;
113
- const path = getPathFromURL( urlParams );
114
- if ( currentPath.current !== path ) {
115
- currentPath.current = path;
116
- goTo( path );
117
- }
118
- }, [ urlParams, goTo ] );
75
+ if ( navigatorParams?.postType && navigatorParams?.postId ) {
76
+ updateUrlParams( {
77
+ postType: navigatorParams?.postType,
78
+ postId: navigatorParams?.postId,
79
+ path: undefined,
80
+ } );
81
+ } else if (
82
+ navigatorLocation.path.startsWith( '/page/' ) &&
83
+ navigatorParams?.postId
84
+ ) {
85
+ updateUrlParams( {
86
+ postType: 'page',
87
+ postId: navigatorParams?.postId,
88
+ path: undefined,
89
+ } );
90
+ } else if ( navigatorLocation.path === '/patterns' ) {
91
+ updateUrlParams( {
92
+ postType: undefined,
93
+ postId: undefined,
94
+ canvas: undefined,
95
+ path: navigatorLocation.path,
96
+ } );
97
+ } else {
98
+ updateUrlParams( {
99
+ postType: undefined,
100
+ postId: undefined,
101
+ categoryType: undefined,
102
+ categoryId: undefined,
103
+ path:
104
+ navigatorLocation.path === '/'
105
+ ? undefined
106
+ : navigatorLocation.path,
107
+ } );
108
+ }
109
+ },
110
+ // Trigger only when navigator changes to prevent infinite loops.
111
+ // eslint-disable-next-line react-hooks/exhaustive-deps
112
+ [ navigatorLocation?.path, navigatorParams ]
113
+ );
114
+
115
+ useEffect(
116
+ () => {
117
+ const path = getPathFromURL( urlParams );
118
+ if ( navigatorLocation.path !== path ) {
119
+ goTo( path );
120
+ }
121
+ },
122
+ // Trigger only when URL changes to prevent infinite loops.
123
+ // eslint-disable-next-line react-hooks/exhaustive-deps
124
+ [ urlParams ]
125
+ );
119
126
  }
@@ -1,5 +1,6 @@
1
1
  .edit-site-table-wrapper {
2
2
  width: 100%;
3
+ padding: $grid-unit-40;
3
4
  }
4
5
 
5
6
  .edit-site-table {
@@ -13,6 +13,7 @@ import {
13
13
  } from '@wordpress/components';
14
14
  import { moreVertical } from '@wordpress/icons';
15
15
  import { store as noticesStore } from '@wordpress/notices';
16
+ import { decodeEntities } from '@wordpress/html-entities';
16
17
 
17
18
  /**
18
19
  * Internal dependencies
@@ -58,7 +59,7 @@ export default function TemplateActions( {
58
59
  sprintf(
59
60
  /* translators: The template/part's name. */
60
61
  __( '"%s" reverted.' ),
61
- template.title.rendered
62
+ decodeEntities( template.title.rendered )
62
63
  ),
63
64
  {
64
65
  type: 'snackbar',