@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
@@ -28,10 +28,15 @@ import { unlock } from '../../lock-unlock';
28
28
  const { useHistory } = unlock( routerPrivateApis );
29
29
 
30
30
  const PageItem = ( { postType = 'page', postId, ...props } ) => {
31
- const linkInfo = useLink( {
32
- postType,
33
- postId,
34
- } );
31
+ const linkInfo = useLink(
32
+ {
33
+ postType,
34
+ postId,
35
+ },
36
+ {
37
+ backPath: '/page',
38
+ }
39
+ );
35
40
  return <SidebarNavigationItem { ...linkInfo } { ...props } />;
36
41
  };
37
42
 
@@ -58,13 +63,16 @@ export default function SidebarNavigationScreenPages() {
58
63
  templates?.find( ( template ) => template.slug === 'home' ) ||
59
64
  templates?.find( ( template ) => template.slug === 'index' );
60
65
 
66
+ const getPostsPageTemplate = () =>
67
+ templates?.find( ( template ) => template.slug === 'home' ) ||
68
+ templates?.find( ( template ) => template.slug === 'index' );
69
+
61
70
  const pagesAndTemplates = pages?.concat( dynamicPageTemplates, [
62
71
  homeTemplate,
63
72
  ] );
64
73
 
65
74
  const { frontPage, postsPage } = useSelect( ( select ) => {
66
75
  const { getEntityRecord } = select( coreStore );
67
-
68
76
  const siteSettings = getEntityRecord( 'root', 'site' );
69
77
  return {
70
78
  frontPage: siteSettings?.page_on_front,
@@ -106,6 +114,27 @@ export default function SidebarNavigationScreenPages() {
106
114
  setShowAddPage( false );
107
115
  };
108
116
 
117
+ const getPageProps = ( id ) => {
118
+ let itemIcon = page;
119
+ const postsPageTemplateId =
120
+ postsPage && postsPage === id ? getPostsPageTemplate()?.id : null;
121
+
122
+ switch ( id ) {
123
+ case frontPage:
124
+ itemIcon = home;
125
+ break;
126
+ case postsPage:
127
+ itemIcon = verse;
128
+ break;
129
+ }
130
+
131
+ return {
132
+ icon: itemIcon,
133
+ postType: postsPageTemplateId ? 'wp_template' : 'page',
134
+ postId: postsPageTemplateId || id,
135
+ };
136
+ };
137
+
109
138
  return (
110
139
  <>
111
140
  { showAddPage && (
@@ -152,34 +181,20 @@ export default function SidebarNavigationScreenPages() {
152
181
  </Truncate>
153
182
  </PageItem>
154
183
  ) }
155
- { reorderedPages?.map( ( item ) => {
156
- let itemIcon;
157
- switch ( item.id ) {
158
- case frontPage:
159
- itemIcon = home;
160
- break;
161
- case postsPage:
162
- itemIcon = verse;
163
- break;
164
- default:
165
- itemIcon = page;
166
- }
167
- return (
168
- <PageItem
169
- postId={ item.id }
170
- key={ item.id }
171
- icon={ itemIcon }
172
- withChevron
173
- >
174
- <Truncate numberOfLines={ 1 }>
175
- { decodeEntities(
176
- item?.title?.rendered ||
177
- __( '(no title)' )
178
- ) }
179
- </Truncate>
180
- </PageItem>
181
- );
182
- } ) }
184
+ { reorderedPages?.map( ( { id, title } ) => (
185
+ <PageItem
186
+ { ...getPageProps( id ) }
187
+ key={ id }
188
+ withChevron
189
+ >
190
+ <Truncate numberOfLines={ 1 }>
191
+ { decodeEntities(
192
+ title?.rendered ||
193
+ __( '(no title)' )
194
+ ) }
195
+ </Truncate>
196
+ </PageItem>
197
+ ) ) }
183
198
  </ItemGroup>
184
199
  ) }
185
200
  </>
@@ -16,13 +16,16 @@ import useInitEditedEntityFromURL from '../sync-state-with-url/use-init-edited-e
16
16
  import usePatternDetails from './use-pattern-details';
17
17
  import { store as editSiteStore } from '../../store';
18
18
  import { unlock } from '../../lock-unlock';
19
+ import normalizeRecordKey from '../../utils/normalize-record-key';
19
20
 
20
21
  export default function SidebarNavigationScreenPattern() {
21
- const { params } = useNavigator();
22
22
  const { categoryType } = getQueryArgs( window.location.href );
23
- const { postType, postId } = params;
24
23
  const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
25
24
 
25
+ const { params } = useNavigator();
26
+ const { postType } = params;
27
+ const postId = normalizeRecordKey( params?.postId );
28
+
26
29
  useInitEditedEntityFromURL();
27
30
 
28
31
  const patternDetails = usePatternDetails( postType, postId );
@@ -19,10 +19,11 @@ export default function TemplatePartNavigationMenu( { id } ) {
19
19
  <>
20
20
  <Heading
21
21
  className="edit-site-sidebar-navigation-screen-template-part-navigation-menu__title"
22
- size="12"
22
+ size="11"
23
23
  upperCase={ true }
24
+ weight={ 500 }
24
25
  >
25
- { title?.rendered || title || __( 'Navigation' ) }
26
+ { title || __( 'Navigation' ) }
26
27
  </Heading>
27
28
  <NavigationMenuEditor navigationMenuId={ id } />
28
29
  </>
@@ -22,8 +22,9 @@ export default function TemplatePartNavigationMenus( { menus } ) {
22
22
  <>
23
23
  <Heading
24
24
  className="edit-site-sidebar-navigation-screen-template-part-navigation-menu__title"
25
- size="12"
25
+ size="11"
26
26
  upperCase={ true }
27
+ weight={ 500 }
27
28
  >
28
29
  { __( 'Navigation' ) }
29
30
  </Heading>
@@ -1,3 +1,8 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { parse } from '@wordpress/blocks';
5
+
1
6
  /**
2
7
  * Internal dependencies
3
8
  */
@@ -54,18 +59,33 @@ export default function useNavigationMenuContent( postType, postId ) {
54
59
  return;
55
60
  }
56
61
 
62
+ const blocks =
63
+ record?.content && typeof record.content !== 'function'
64
+ ? parse( record.content )
65
+ : [];
66
+
57
67
  const navigationBlocks = getBlocksOfTypeFromBlocks(
58
68
  'core/navigation',
59
- record?.blocks
69
+ blocks
60
70
  );
61
71
 
72
+ if ( ! navigationBlocks.length ) {
73
+ return;
74
+ }
75
+
62
76
  const navigationMenuIds = navigationBlocks?.map(
63
77
  ( block ) => block.attributes.ref
64
78
  );
65
79
 
66
- if ( ! navigationMenuIds?.length ) {
80
+ // Dedupe the Navigation blocks, as you can have multiple navigation blocks in the template.
81
+ // Also, filter out undefined values, as blocks don't have an id when initially added.
82
+ const uniqueNavigationMenuIds = [ ...new Set( navigationMenuIds ) ].filter(
83
+ ( menuId ) => menuId
84
+ );
85
+
86
+ if ( ! uniqueNavigationMenuIds?.length ) {
67
87
  return;
68
88
  }
69
89
 
70
- return <TemplatePartNavigationMenus menus={ navigationMenuIds } />;
90
+ return <TemplatePartNavigationMenus menus={ uniqueNavigationMenuIds } />;
71
91
  }
@@ -1,10 +1,15 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { sentenceCase } from 'change-case';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
4
- import { __, sprintf, _x } from '@wordpress/i18n';
9
+ import { __, sprintf } from '@wordpress/i18n';
5
10
  import { store as coreStore } from '@wordpress/core-data';
11
+ import { store as editorStore } from '@wordpress/editor';
6
12
  import { useSelect } from '@wordpress/data';
7
- import { Icon } from '@wordpress/components';
8
13
 
9
14
  /**
10
15
  * Internal dependencies
@@ -19,12 +24,20 @@ import {
19
24
  SidebarNavigationScreenDetailsPanelLabel,
20
25
  SidebarNavigationScreenDetailsPanelValue,
21
26
  } from '../sidebar-navigation-screen-details-panel';
27
+ import normalizeRecordKey from '../../utils/normalize-record-key';
22
28
 
23
29
  export default function usePatternDetails( postType, postId ) {
30
+ postId = normalizeRecordKey( postId );
31
+
24
32
  const { getDescription, getTitle, record } = useEditedEntityRecord(
25
33
  postType,
26
34
  postId
27
35
  );
36
+ const templatePartAreas = useSelect(
37
+ ( select ) =>
38
+ select( editorStore ).__experimentalGetDefaultTemplatePartAreas(),
39
+ []
40
+ );
28
41
  const currentTheme = useSelect(
29
42
  ( select ) => select( coreStore ).getCurrentTheme(),
30
43
  []
@@ -33,56 +46,24 @@ export default function usePatternDetails( postType, postId ) {
33
46
  const isAddedByActiveTheme =
34
47
  addedBy.type === 'theme' && record.theme === currentTheme?.stylesheet;
35
48
  const title = getTitle();
36
- let descriptionText = getDescription();
49
+ let description = getDescription();
37
50
 
38
- if ( ! descriptionText && addedBy.text ) {
39
- descriptionText = sprintf(
51
+ if ( ! description && addedBy.text ) {
52
+ description = sprintf(
40
53
  // translators: %s: pattern title e.g: "Header".
41
- __( 'This is your %s pattern.' ),
54
+ __( 'This is the %s pattern.' ),
42
55
  getTitle()
43
56
  );
44
57
  }
45
58
 
46
- if ( ! descriptionText && postType === 'wp_block' && record?.title ) {
47
- descriptionText = sprintf(
59
+ if ( ! description && postType === 'wp_block' && record?.title ) {
60
+ description = sprintf(
48
61
  // translators: %s: user created pattern title e.g. "Footer".
49
- __( 'This is your %s pattern.' ),
62
+ __( 'This is the %s pattern.' ),
50
63
  record.title
51
64
  );
52
65
  }
53
66
 
54
- const description = (
55
- <>
56
- { descriptionText }
57
-
58
- { addedBy.text && ! isAddedByActiveTheme && (
59
- <span className="edit-site-sidebar-navigation-screen-pattern__added-by-description">
60
- <span className="edit-site-sidebar-navigation-screen-pattern__added-by-description-author">
61
- <span className="edit-site-sidebar-navigation-screen-pattern__added-by-description-author-icon">
62
- { addedBy.imageUrl ? (
63
- <img
64
- src={ addedBy.imageUrl }
65
- alt=""
66
- width="24"
67
- height="24"
68
- />
69
- ) : (
70
- <Icon icon={ addedBy.icon } />
71
- ) }
72
- </span>
73
- { addedBy.text }
74
- </span>
75
-
76
- { addedBy.isCustomized && (
77
- <span className="edit-site-sidebar-navigation-screen-pattern__added-by-description-customized">
78
- { _x( '(Customized)', 'pattern' ) }
79
- </span>
80
- ) }
81
- </span>
82
- ) }
83
- </>
84
- );
85
-
86
67
  const footer = !! record?.modified ? (
87
68
  <SidebarNavigationScreenDetailsFooter
88
69
  lastModifiedDateTime={ record.modified }
@@ -91,7 +72,7 @@ export default function usePatternDetails( postType, postId ) {
91
72
 
92
73
  const details = [];
93
74
 
94
- if ( postType === 'wp_block' ) {
75
+ if ( postType === 'wp_block' || 'wp_template_part' ) {
95
76
  details.push( {
96
77
  label: __( 'Syncing' ),
97
78
  value:
@@ -101,8 +82,59 @@ export default function usePatternDetails( postType, postId ) {
101
82
  } );
102
83
  }
103
84
 
85
+ if ( postType === 'wp_template_part' ) {
86
+ const templatePartArea = templatePartAreas.find(
87
+ ( area ) => area.area === record.area
88
+ );
89
+
90
+ let areaDetailValue = templatePartArea?.label;
91
+
92
+ if ( ! areaDetailValue ) {
93
+ areaDetailValue = record.area
94
+ ? sprintf(
95
+ // translators: %s: Sentenced cased template part area e.g: "My custom area".
96
+ __( '%s (removed)' ),
97
+ sentenceCase( record.area )
98
+ )
99
+ : __( 'None' );
100
+ }
101
+
102
+ details.push( { label: __( 'Area' ), value: areaDetailValue } );
103
+ }
104
+
105
+ if (
106
+ postType === 'wp_template_part' &&
107
+ addedBy.text &&
108
+ ! isAddedByActiveTheme
109
+ ) {
110
+ details.push( {
111
+ label: __( 'Added by' ),
112
+ value: (
113
+ <span className="edit-site-sidebar-navigation-screen-pattern__added-by-description-author">
114
+ { addedBy.text }
115
+ </span>
116
+ ),
117
+ } );
118
+ }
119
+
120
+ if (
121
+ postType === 'wp_template_part' &&
122
+ addedBy.text &&
123
+ ( record.origin === 'plugin' || record.has_theme_file === true )
124
+ ) {
125
+ details.push( {
126
+ label: __( 'Customized' ),
127
+ value: (
128
+ <span className="edit-site-sidebar-navigation-screen-pattern__added-by-description-customized">
129
+ { addedBy.isCustomized ? __( 'Yes' ) : __( 'No' ) }
130
+ </span>
131
+ ),
132
+ } );
133
+ }
134
+
104
135
  const content = (
105
136
  <>
137
+ { useNavigationMenuContent( postType, postId ) }
106
138
  { !! details.length && (
107
139
  <SidebarNavigationScreenDetailsPanel
108
140
  spacing={ 5 }
@@ -120,7 +152,6 @@ export default function usePatternDetails( postType, postId ) {
120
152
  ) ) }
121
153
  </SidebarNavigationScreenDetailsPanel>
122
154
  ) }
123
- { useNavigationMenuContent( postType, postId ) }
124
155
  </>
125
156
  );
126
157
 
@@ -12,19 +12,11 @@ export default function CategoryItem( {
12
12
  label,
13
13
  type,
14
14
  } ) {
15
- const linkInfo = useLink(
16
- {
17
- path: '/patterns',
18
- categoryType: type,
19
- categoryId: id,
20
- },
21
- {
22
- // Keep a record of where we came from in state so we can
23
- // use the browser's back button to go back to Patterns.
24
- // See the implementation of the back button in patterns-list.
25
- backPath: '/patterns',
26
- }
27
- );
15
+ const linkInfo = useLink( {
16
+ path: '/patterns',
17
+ categoryType: type,
18
+ categoryId: id,
19
+ } );
28
20
 
29
21
  if ( ! count ) {
30
22
  return;
@@ -7,11 +7,11 @@ import {
7
7
  Flex,
8
8
  Icon,
9
9
  Tooltip,
10
+ __experimentalHeading as Heading,
10
11
  } from '@wordpress/components';
11
12
  import { useViewportMatch } from '@wordpress/compose';
12
- import { useSelect } from '@wordpress/data';
13
13
  import { getTemplatePartIcon } from '@wordpress/editor';
14
- import { __ } from '@wordpress/i18n';
14
+ import { __, sprintf } from '@wordpress/i18n';
15
15
  import { getQueryArgs } from '@wordpress/url';
16
16
  import { file, starFilled, lockSmall } from '@wordpress/icons';
17
17
 
@@ -23,18 +23,77 @@ import SidebarNavigationItem from '../sidebar-navigation-item';
23
23
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
24
24
  import CategoryItem from './category-item';
25
25
  import { DEFAULT_CATEGORY, DEFAULT_TYPE } from '../page-patterns/utils';
26
- import { store as editSiteStore } from '../../store';
27
26
  import { useLink } from '../routes/link';
28
27
  import usePatternCategories from './use-pattern-categories';
29
28
  import useMyPatterns from './use-my-patterns';
30
29
  import useTemplatePartAreas from './use-template-part-areas';
31
30
 
32
- const templatePartAreaLabels = {
33
- header: __( 'Headers' ),
34
- footer: __( 'Footers' ),
35
- sidebar: __( 'Sidebar' ),
36
- uncategorized: __( 'Uncategorized' ),
37
- };
31
+ function TemplatePartGroup( { areas, currentArea, currentType } ) {
32
+ return (
33
+ <>
34
+ <div className="edit-site-sidebar-navigation-screen-patterns__group-header">
35
+ <Heading level={ 2 }>{ __( 'Template parts' ) }</Heading>
36
+ </div>
37
+ <ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
38
+ { Object.entries( areas ).map(
39
+ ( [ area, { label, templateParts } ] ) => (
40
+ <CategoryItem
41
+ key={ area }
42
+ count={ templateParts?.length }
43
+ icon={ getTemplatePartIcon( area ) }
44
+ label={ label }
45
+ id={ area }
46
+ type="wp_template_part"
47
+ isActive={
48
+ currentArea === area &&
49
+ currentType === 'wp_template_part'
50
+ }
51
+ />
52
+ )
53
+ ) }
54
+ </ItemGroup>
55
+ </>
56
+ );
57
+ }
58
+
59
+ function ThemePatternsGroup( { categories, currentCategory, currentType } ) {
60
+ return (
61
+ <>
62
+ <ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
63
+ { categories.map( ( category ) => (
64
+ <CategoryItem
65
+ key={ category.name }
66
+ count={ category.count }
67
+ label={
68
+ <Flex justify="left" align="center" gap={ 0 }>
69
+ { category.label }
70
+ <Tooltip
71
+ position="top center"
72
+ text={ sprintf(
73
+ // translators: %s: The pattern category name.
74
+ '"%s" patterns cannot be edited.',
75
+ category.label
76
+ ) }
77
+ >
78
+ <span className="edit-site-sidebar-navigation-screen-pattern__lock-icon">
79
+ <Icon icon={ lockSmall } size={ 24 } />
80
+ </span>
81
+ </Tooltip>
82
+ </Flex>
83
+ }
84
+ icon={ file }
85
+ id={ category.name }
86
+ type="pattern"
87
+ isActive={
88
+ currentCategory === `${ category.name }` &&
89
+ currentType === 'pattern'
90
+ }
91
+ />
92
+ ) ) }
93
+ </ItemGroup>
94
+ </>
95
+ );
96
+ }
38
97
 
39
98
  export default function SidebarNavigationScreenPatterns() {
40
99
  const isMobileViewport = useViewportMatch( 'medium', '<' );
@@ -45,19 +104,11 @@ export default function SidebarNavigationScreenPatterns() {
45
104
  const { templatePartAreas, hasTemplateParts, isLoading } =
46
105
  useTemplatePartAreas();
47
106
  const { patternCategories, hasPatterns } = usePatternCategories();
48
- const { myPatterns, hasPatterns: hasMyPatterns } = useMyPatterns();
49
-
50
- const isTemplatePartsMode = useSelect( ( select ) => {
51
- const settings = select( editSiteStore ).getSettings();
52
- return !! settings.supportsTemplatePartsMode;
53
- }, [] );
107
+ const { myPatterns } = useMyPatterns();
54
108
 
55
109
  const templatePartsLink = useLink( { path: '/wp_template_part/all' } );
56
110
  const footer = ! isMobileViewport ? (
57
111
  <ItemGroup>
58
- <SidebarNavigationItem withChevron { ...templatePartsLink }>
59
- { __( 'Manage all template parts' ) }
60
- </SidebarNavigationItem>
61
112
  <SidebarNavigationItem
62
113
  as="a"
63
114
  href="edit.php?post_type=wp_block"
@@ -65,15 +116,17 @@ export default function SidebarNavigationScreenPatterns() {
65
116
  >
66
117
  { __( 'Manage all of my patterns' ) }
67
118
  </SidebarNavigationItem>
119
+ <SidebarNavigationItem withChevron { ...templatePartsLink }>
120
+ { __( 'Manage all template parts' ) }
121
+ </SidebarNavigationItem>
68
122
  </ItemGroup>
69
123
  ) : undefined;
70
124
 
71
125
  return (
72
126
  <SidebarNavigationScreen
73
- isRoot={ isTemplatePartsMode }
74
127
  title={ __( 'Patterns' ) }
75
128
  description={ __(
76
- 'Manage what patterns are available when editing your site.'
129
+ 'Manage what patterns are available when editing the site.'
77
130
  ) }
78
131
  actions={ <AddNewPattern /> }
79
132
  footer={ footer }
@@ -91,94 +144,38 @@ export default function SidebarNavigationScreenPatterns() {
91
144
  </Item>
92
145
  </ItemGroup>
93
146
  ) }
94
- { hasMyPatterns && (
95
- <ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
96
- <CategoryItem
97
- key={ myPatterns.name }
98
- count={ myPatterns.count }
99
- label={ myPatterns.label }
100
- icon={ starFilled }
101
- id={ myPatterns.name }
102
- type="wp_block"
103
- isActive={
104
- currentCategory ===
105
- `${ myPatterns.name }` &&
106
- currentType === 'wp_block'
107
- }
108
- />
109
- </ItemGroup>
147
+ <ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
148
+ <CategoryItem
149
+ key={ myPatterns.name }
150
+ count={
151
+ ! myPatterns.count
152
+ ? '0'
153
+ : myPatterns.count
154
+ }
155
+ label={ myPatterns.label }
156
+ icon={ starFilled }
157
+ id={ myPatterns.name }
158
+ type="wp_block"
159
+ isActive={
160
+ currentCategory ===
161
+ `${ myPatterns.name }` &&
162
+ currentType === 'wp_block'
163
+ }
164
+ />
165
+ </ItemGroup>
166
+ { hasPatterns && (
167
+ <ThemePatternsGroup
168
+ categories={ patternCategories }
169
+ currentCategory={ currentCategory }
170
+ currentType={ currentType }
171
+ />
110
172
  ) }
111
173
  { hasTemplateParts && (
112
- <ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
113
- { Object.entries( templatePartAreas ).map(
114
- ( [ area, parts ] ) => (
115
- <CategoryItem
116
- key={ area }
117
- count={ parts.length }
118
- icon={ getTemplatePartIcon(
119
- area
120
- ) }
121
- label={
122
- templatePartAreaLabels[
123
- area
124
- ]
125
- }
126
- id={ area }
127
- type="wp_template_part"
128
- isActive={
129
- currentCategory === area &&
130
- currentType ===
131
- 'wp_template_part'
132
- }
133
- />
134
- )
135
- ) }
136
- </ItemGroup>
137
- ) }
138
- { hasPatterns && (
139
- <ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
140
- { patternCategories.map( ( category ) => (
141
- <CategoryItem
142
- key={ category.name }
143
- count={ category.count }
144
- label={
145
- <Flex
146
- justify="left"
147
- align="center"
148
- gap={ 0 }
149
- >
150
- { category.label }
151
- <Tooltip
152
- position="top center"
153
- text={ __(
154
- 'Theme patterns cannot be edited.'
155
- ) }
156
- >
157
- <span className="edit-site-sidebar-navigation-screen-pattern__lock-icon">
158
- <Icon
159
- style={ {
160
- fill: 'currentcolor',
161
- } }
162
- icon={
163
- lockSmall
164
- }
165
- size={ 24 }
166
- />
167
- </span>
168
- </Tooltip>
169
- </Flex>
170
- }
171
- icon={ file }
172
- id={ category.name }
173
- type="pattern"
174
- isActive={
175
- currentCategory ===
176
- `${ category.name }` &&
177
- currentType === 'pattern'
178
- }
179
- />
180
- ) ) }
181
- </ItemGroup>
174
+ <TemplatePartGroup
175
+ areas={ templatePartAreas }
176
+ currentArea={ currentCategory }
177
+ currentType={ currentType }
178
+ />
182
179
  ) }
183
180
  </>
184
181
  ) }