@wordpress/edit-site 5.11.0 → 5.12.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 (587) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-page/index.js +105 -0
  3. package/build/components/add-new-page/index.js.map +1 -0
  4. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +4 -5
  5. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-template-modal-content.js +19 -22
  7. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  8. package/build/components/add-new-template/index.js +4 -5
  9. package/build/components/add-new-template/index.js.map +1 -1
  10. package/build/components/add-new-template/new-template-part.js +9 -12
  11. package/build/components/add-new-template/new-template-part.js.map +1 -1
  12. package/build/components/add-new-template/new-template.js +19 -26
  13. package/build/components/add-new-template/new-template.js.map +1 -1
  14. package/build/components/add-new-template/utils.js +71 -120
  15. package/build/components/add-new-template/utils.js.map +1 -1
  16. package/build/components/block-editor/back-button.js +1 -3
  17. package/build/components/block-editor/back-button.js.map +1 -1
  18. package/build/components/block-editor/block-inspector-button.js +3 -4
  19. package/build/components/block-editor/block-inspector-button.js.map +1 -1
  20. package/build/components/block-editor/editor-canvas.js +6 -7
  21. package/build/components/block-editor/editor-canvas.js.map +1 -1
  22. package/build/components/block-editor/index.js +13 -10
  23. package/build/components/block-editor/index.js.map +1 -1
  24. package/build/components/block-editor/inserter-media-categories.js +25 -42
  25. package/build/components/block-editor/inserter-media-categories.js.map +1 -1
  26. package/build/components/block-editor/resizable-editor.js +6 -7
  27. package/build/components/block-editor/resizable-editor.js.map +1 -1
  28. package/build/components/block-editor/resize-handle.js +5 -7
  29. package/build/components/block-editor/resize-handle.js.map +1 -1
  30. package/build/components/code-editor/code-editor-text-area.js +5 -6
  31. package/build/components/code-editor/code-editor-text-area.js.map +1 -1
  32. package/build/components/create-template-part-modal/index.js +25 -29
  33. package/build/components/create-template-part-modal/index.js.map +1 -1
  34. package/build/components/editor/index.js +26 -17
  35. package/build/components/editor/index.js.map +1 -1
  36. package/build/components/editor-canvas-container/index.js +7 -8
  37. package/build/components/editor-canvas-container/index.js.map +1 -1
  38. package/build/components/error-boundary/warning.js +8 -10
  39. package/build/components/error-boundary/warning.js.map +1 -1
  40. package/build/components/global-styles/block-preview-panel.js +7 -10
  41. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  42. package/build/components/global-styles/color-indicator-wrapper.js +4 -5
  43. package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
  44. package/build/components/global-styles/color-palette-panel.js +3 -4
  45. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  46. package/build/components/global-styles/dimensions-panel.js +1 -3
  47. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  48. package/build/components/global-styles/global-styles-provider.js +8 -10
  49. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  50. package/build/components/global-styles/gradients-palette-panel.js +3 -4
  51. package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
  52. package/build/components/global-styles/header.js +4 -5
  53. package/build/components/global-styles/header.js.map +1 -1
  54. package/build/components/global-styles/icon-with-current-color.js +4 -5
  55. package/build/components/global-styles/icon-with-current-color.js.map +1 -1
  56. package/build/components/global-styles/navigation-button.js +5 -6
  57. package/build/components/global-styles/navigation-button.js.map +1 -1
  58. package/build/components/global-styles/palette.js +10 -14
  59. package/build/components/global-styles/palette.js.map +1 -1
  60. package/build/components/global-styles/preview.js +41 -51
  61. package/build/components/global-styles/preview.js.map +1 -1
  62. package/build/components/global-styles/screen-block-list.js +4 -7
  63. package/build/components/global-styles/screen-block-list.js.map +1 -1
  64. package/build/components/global-styles/screen-block.js +9 -10
  65. package/build/components/global-styles/screen-block.js.map +1 -1
  66. package/build/components/global-styles/screen-color-palette.js +3 -4
  67. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  68. package/build/components/global-styles/screen-revisions/index.js +8 -8
  69. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  70. package/build/components/global-styles/screen-revisions/revisions-buttons.js +14 -19
  71. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  72. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +5 -11
  73. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  74. package/build/components/global-styles/screen-root.js +3 -3
  75. package/build/components/global-styles/screen-root.js.map +1 -1
  76. package/build/components/global-styles/screen-typography-element.js +3 -4
  77. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  78. package/build/components/global-styles/screen-typography.js +5 -6
  79. package/build/components/global-styles/screen-typography.js.map +1 -1
  80. package/build/components/global-styles/style-variations-container.js +5 -6
  81. package/build/components/global-styles/style-variations-container.js.map +1 -1
  82. package/build/components/global-styles/subtitle.js +4 -5
  83. package/build/components/global-styles/subtitle.js.map +1 -1
  84. package/build/components/global-styles/typography-panel.js +4 -5
  85. package/build/components/global-styles/typography-panel.js.map +1 -1
  86. package/build/components/global-styles/typography-preview.js +5 -6
  87. package/build/components/global-styles/typography-preview.js.map +1 -1
  88. package/build/components/global-styles/ui.js +40 -21
  89. package/build/components/global-styles/ui.js.map +1 -1
  90. package/build/components/global-styles/variations-panel.js +5 -6
  91. package/build/components/global-styles/variations-panel.js.map +1 -1
  92. package/build/components/header-edit-mode/document-actions/index.js +102 -23
  93. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  94. package/build/components/header-edit-mode/index.js +2 -6
  95. package/build/components/header-edit-mode/index.js.map +1 -1
  96. package/build/components/header-edit-mode/more-menu/index.js +49 -53
  97. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  98. package/build/components/header-edit-mode/tools-more-menu-group/index.js +5 -14
  99. package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -1
  100. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +3 -4
  101. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  102. package/build/components/keyboard-shortcut-help-modal/index.js +41 -51
  103. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  104. package/build/components/keyboard-shortcut-help-modal/shortcut.js +10 -12
  105. package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  106. package/build/components/layout/index.js +4 -12
  107. package/build/components/layout/index.js.map +1 -1
  108. package/build/components/list/added-by.js +13 -23
  109. package/build/components/list/added-by.js.map +1 -1
  110. package/build/components/list/header.js +4 -7
  111. package/build/components/list/header.js.map +1 -1
  112. package/build/components/list/index.js +2 -4
  113. package/build/components/list/index.js.map +1 -1
  114. package/build/components/list/table.js +35 -40
  115. package/build/components/list/table.js.map +1 -1
  116. package/build/components/page-actions/delete-page-menu-item.js +70 -0
  117. package/build/components/page-actions/delete-page-menu-item.js.map +1 -0
  118. package/build/components/page-actions/index.js +43 -0
  119. package/build/components/page-actions/index.js.map +1 -0
  120. package/build/components/page-content-lock/constants.js +9 -0
  121. package/build/components/page-content-lock/constants.js.map +1 -0
  122. package/build/components/page-content-lock/index.js +29 -0
  123. package/build/components/page-content-lock/index.js.map +1 -0
  124. package/build/components/page-content-lock/use-disable-non-content-blocks.js +49 -0
  125. package/build/components/page-content-lock/use-disable-non-content-blocks.js.map +1 -0
  126. package/build/components/page-content-lock/use-page-content-lock-notifications.js +112 -0
  127. package/build/components/page-content-lock/use-page-content-lock-notifications.js.map +1 -0
  128. package/build/components/preferences-modal/index.js +4 -5
  129. package/build/components/preferences-modal/index.js.map +1 -1
  130. package/build/components/resizable-frame/index.js +20 -12
  131. package/build/components/resizable-frame/index.js.map +1 -1
  132. package/build/components/revisions/index.js +11 -14
  133. package/build/components/revisions/index.js.map +1 -1
  134. package/build/components/routes/link.js +8 -12
  135. package/build/components/routes/link.js.map +1 -1
  136. package/build/components/routes/use-title.js +1 -5
  137. package/build/components/routes/use-title.js.map +1 -1
  138. package/build/components/save-button/index.js +13 -7
  139. package/build/components/save-button/index.js.map +1 -1
  140. package/build/components/save-hub/index.js +97 -5
  141. package/build/components/save-hub/index.js.map +1 -1
  142. package/build/components/save-panel/index.js +63 -17
  143. package/build/components/save-panel/index.js.map +1 -1
  144. package/build/components/secondary-sidebar/list-view-sidebar.js +8 -3
  145. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  146. package/build/components/sidebar/index.js +7 -5
  147. package/build/components/sidebar/index.js.map +1 -1
  148. package/build/components/sidebar-edit-mode/default-sidebar.js +11 -12
  149. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  150. package/build/components/sidebar-edit-mode/index.js +13 -10
  151. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  152. package/build/components/sidebar-edit-mode/page-panels/content-blocks-list.js +79 -0
  153. package/build/components/sidebar-edit-mode/page-panels/content-blocks-list.js.map +1 -0
  154. package/build/components/sidebar-edit-mode/page-panels/index.js +86 -0
  155. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -0
  156. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +4 -5
  157. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  158. package/build/components/sidebar-edit-mode/settings-header/index.js +39 -21
  159. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  160. package/build/components/sidebar-edit-mode/sidebar-card/index.js +46 -0
  161. package/build/components/sidebar-edit-mode/sidebar-card/index.js.map +1 -0
  162. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js +3 -4
  163. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +1 -1
  164. package/build/components/sidebar-edit-mode/{template-card → template-panel}/index.js +22 -18
  165. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -0
  166. package/build/components/sidebar-edit-mode/{template-revisions/index.js → template-panel/last-revision.js} +7 -8
  167. package/{build-module/components/sidebar-edit-mode/template-revisions/index.js.map → build/components/sidebar-edit-mode/template-panel/last-revision.js.map} +1 -1
  168. package/build/components/sidebar-edit-mode/{template-card → template-panel}/template-actions.js +12 -16
  169. package/build/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -0
  170. package/build/components/sidebar-edit-mode/{template-card → template-panel}/template-areas.js +15 -19
  171. package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -0
  172. package/build/components/sidebar-navigation-item/index.js +7 -8
  173. package/build/components/sidebar-navigation-item/index.js.map +1 -1
  174. package/build/components/sidebar-navigation-screen/index.js +21 -14
  175. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  176. package/build/components/sidebar-navigation-screen-global-styles/index.js +103 -13
  177. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  178. package/build/components/sidebar-navigation-screen-navigation-item/index.js +3 -5
  179. package/build/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  180. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +7 -10
  181. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  182. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +17 -23
  183. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  184. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +20 -23
  185. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  186. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +4 -5
  187. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  188. package/build/components/sidebar-navigation-screen-navigation-menus/navigator-button.js +8 -9
  189. package/build/components/sidebar-navigation-screen-navigation-menus/navigator-button.js.map +1 -1
  190. package/build/components/sidebar-navigation-screen-page/index.js +81 -10
  191. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  192. package/build/components/sidebar-navigation-screen-page/page-details.js +148 -0
  193. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -0
  194. package/build/components/sidebar-navigation-screen-page/status-label.js +110 -0
  195. package/build/components/sidebar-navigation-screen-page/status-label.js.map +1 -0
  196. package/build/components/sidebar-navigation-screen-pages/index.js +128 -17
  197. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  198. package/build/components/sidebar-navigation-screen-template/index.js +22 -16
  199. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  200. package/build/components/sidebar-navigation-screen-template-part/index.js +105 -0
  201. package/build/components/sidebar-navigation-screen-template-part/index.js.map +1 -0
  202. package/build/components/sidebar-navigation-screen-templates/index.js +13 -18
  203. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  204. package/build/components/sidebar-navigation-subtitle/index.js +3 -4
  205. package/build/components/sidebar-navigation-subtitle/index.js.map +1 -1
  206. package/build/components/site-hub/index.js +20 -13
  207. package/build/components/site-hub/index.js.map +1 -1
  208. package/build/components/site-icon/index.js +4 -5
  209. package/build/components/site-icon/index.js.map +1 -1
  210. package/build/components/start-template-options/index.js +15 -21
  211. package/build/components/start-template-options/index.js.map +1 -1
  212. package/build/components/style-book/index.js +35 -39
  213. package/build/components/style-book/index.js.map +1 -1
  214. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
  215. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  216. package/build/components/sync-state-with-url/use-sync-path-with-url.js +9 -10
  217. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  218. package/build/components/{list/actions → template-actions}/index.js +34 -31
  219. package/build/components/template-actions/index.js.map +1 -0
  220. package/build/components/{list/actions → template-actions}/rename-menu-item.js +4 -5
  221. package/build/components/template-actions/rename-menu-item.js.map +1 -0
  222. package/build/components/template-part-converter/convert-to-regular.js +4 -5
  223. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  224. package/build/components/template-part-converter/convert-to-template-part.js +8 -10
  225. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  226. package/build/components/template-part-converter/index.js +12 -18
  227. package/build/components/template-part-converter/index.js.map +1 -1
  228. package/build/components/welcome-guide/image.js +4 -5
  229. package/build/components/welcome-guide/image.js.map +1 -1
  230. package/build/hooks/commands/use-edit-mode-commands.js +6 -8
  231. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  232. package/build/hooks/push-changes-to-global-styles/index.js +11 -8
  233. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  234. package/build/hooks/template-part-edit.js +5 -6
  235. package/build/hooks/template-part-edit.js.map +1 -1
  236. package/build/index.js +3 -6
  237. package/build/index.js.map +1 -1
  238. package/build/store/actions.js +129 -125
  239. package/build/store/actions.js.map +1 -1
  240. package/build/store/private-actions.js +7 -10
  241. package/build/store/private-actions.js.map +1 -1
  242. package/build/store/reducer.js +32 -33
  243. package/build/store/reducer.js.map +1 -1
  244. package/build/store/selectors.js +35 -11
  245. package/build/store/selectors.js.map +1 -1
  246. package/build/store/utils.js +1 -3
  247. package/build/store/utils.js.map +1 -1
  248. package/build/utils/get-is-list-page.js +3 -4
  249. package/build/utils/get-is-list-page.js.map +1 -1
  250. package/build/utils/is-previewing-theme.js +1 -3
  251. package/build/utils/is-previewing-theme.js.map +1 -1
  252. package/build/utils/is-template-revertable.js +1 -1
  253. package/build/utils/is-template-revertable.js.map +1 -1
  254. package/build-module/components/add-new-page/index.js +93 -0
  255. package/build-module/components/add-new-page/index.js.map +1 -0
  256. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +4 -5
  257. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  258. package/build-module/components/add-new-template/add-custom-template-modal-content.js +19 -22
  259. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  260. package/build-module/components/add-new-template/index.js +4 -5
  261. package/build-module/components/add-new-template/index.js.map +1 -1
  262. package/build-module/components/add-new-template/new-template-part.js +9 -12
  263. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  264. package/build-module/components/add-new-template/new-template.js +18 -26
  265. package/build-module/components/add-new-template/new-template.js.map +1 -1
  266. package/build-module/components/add-new-template/utils.js +71 -120
  267. package/build-module/components/add-new-template/utils.js.map +1 -1
  268. package/build-module/components/block-editor/back-button.js +1 -3
  269. package/build-module/components/block-editor/back-button.js.map +1 -1
  270. package/build-module/components/block-editor/block-inspector-button.js +3 -4
  271. package/build-module/components/block-editor/block-inspector-button.js.map +1 -1
  272. package/build-module/components/block-editor/editor-canvas.js +6 -7
  273. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  274. package/build-module/components/block-editor/index.js +12 -10
  275. package/build-module/components/block-editor/index.js.map +1 -1
  276. package/build-module/components/block-editor/inserter-media-categories.js +25 -42
  277. package/build-module/components/block-editor/inserter-media-categories.js.map +1 -1
  278. package/build-module/components/block-editor/resizable-editor.js +6 -7
  279. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  280. package/build-module/components/block-editor/resize-handle.js +5 -7
  281. package/build-module/components/block-editor/resize-handle.js.map +1 -1
  282. package/build-module/components/code-editor/code-editor-text-area.js +5 -6
  283. package/build-module/components/code-editor/code-editor-text-area.js.map +1 -1
  284. package/build-module/components/create-template-part-modal/index.js +25 -29
  285. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  286. package/build-module/components/editor/index.js +26 -17
  287. package/build-module/components/editor/index.js.map +1 -1
  288. package/build-module/components/editor-canvas-container/index.js +7 -8
  289. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  290. package/build-module/components/error-boundary/warning.js +8 -10
  291. package/build-module/components/error-boundary/warning.js.map +1 -1
  292. package/build-module/components/global-styles/block-preview-panel.js +7 -10
  293. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  294. package/build-module/components/global-styles/color-indicator-wrapper.js +4 -5
  295. package/build-module/components/global-styles/color-indicator-wrapper.js.map +1 -1
  296. package/build-module/components/global-styles/color-palette-panel.js +3 -4
  297. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  298. package/build-module/components/global-styles/dimensions-panel.js +1 -3
  299. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  300. package/build-module/components/global-styles/global-styles-provider.js +8 -10
  301. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  302. package/build-module/components/global-styles/gradients-palette-panel.js +3 -4
  303. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  304. package/build-module/components/global-styles/header.js +4 -5
  305. package/build-module/components/global-styles/header.js.map +1 -1
  306. package/build-module/components/global-styles/icon-with-current-color.js +4 -5
  307. package/build-module/components/global-styles/icon-with-current-color.js.map +1 -1
  308. package/build-module/components/global-styles/navigation-button.js +5 -6
  309. package/build-module/components/global-styles/navigation-button.js.map +1 -1
  310. package/build-module/components/global-styles/palette.js +10 -14
  311. package/build-module/components/global-styles/palette.js.map +1 -1
  312. package/build-module/components/global-styles/preview.js +41 -51
  313. package/build-module/components/global-styles/preview.js.map +1 -1
  314. package/build-module/components/global-styles/screen-block-list.js +4 -7
  315. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  316. package/build-module/components/global-styles/screen-block.js +9 -10
  317. package/build-module/components/global-styles/screen-block.js.map +1 -1
  318. package/build-module/components/global-styles/screen-color-palette.js +3 -4
  319. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  320. package/build-module/components/global-styles/screen-revisions/index.js +8 -8
  321. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  322. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +14 -19
  323. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  324. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +5 -10
  325. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  326. package/build-module/components/global-styles/screen-root.js +3 -3
  327. package/build-module/components/global-styles/screen-root.js.map +1 -1
  328. package/build-module/components/global-styles/screen-typography-element.js +3 -4
  329. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  330. package/build-module/components/global-styles/screen-typography.js +5 -6
  331. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  332. package/build-module/components/global-styles/style-variations-container.js +5 -6
  333. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  334. package/build-module/components/global-styles/subtitle.js +4 -5
  335. package/build-module/components/global-styles/subtitle.js.map +1 -1
  336. package/build-module/components/global-styles/typography-panel.js +4 -5
  337. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  338. package/build-module/components/global-styles/typography-preview.js +5 -6
  339. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  340. package/build-module/components/global-styles/ui.js +40 -21
  341. package/build-module/components/global-styles/ui.js.map +1 -1
  342. package/build-module/components/global-styles/variations-panel.js +5 -6
  343. package/build-module/components/global-styles/variations-panel.js.map +1 -1
  344. package/build-module/components/header-edit-mode/document-actions/index.js +102 -24
  345. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  346. package/build-module/components/header-edit-mode/index.js +2 -6
  347. package/build-module/components/header-edit-mode/index.js.map +1 -1
  348. package/build-module/components/header-edit-mode/more-menu/index.js +49 -53
  349. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  350. package/build-module/components/header-edit-mode/tools-more-menu-group/index.js +5 -13
  351. package/build-module/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -1
  352. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +3 -4
  353. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  354. package/build-module/components/keyboard-shortcut-help-modal/index.js +39 -49
  355. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  356. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +10 -12
  357. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
  358. package/build-module/components/layout/index.js +4 -12
  359. package/build-module/components/layout/index.js.map +1 -1
  360. package/build-module/components/list/added-by.js +13 -23
  361. package/build-module/components/list/added-by.js.map +1 -1
  362. package/build-module/components/list/header.js +4 -7
  363. package/build-module/components/list/header.js.map +1 -1
  364. package/build-module/components/list/index.js +2 -4
  365. package/build-module/components/list/index.js.map +1 -1
  366. package/build-module/components/list/table.js +34 -39
  367. package/build-module/components/list/table.js.map +1 -1
  368. package/build-module/components/page-actions/delete-page-menu-item.js +58 -0
  369. package/build-module/components/page-actions/delete-page-menu-item.js.map +1 -0
  370. package/build-module/components/page-actions/index.js +30 -0
  371. package/build-module/components/page-actions/index.js.map +1 -0
  372. package/build-module/components/page-content-lock/constants.js +2 -0
  373. package/build-module/components/page-content-lock/constants.js.map +1 -0
  374. package/build-module/components/page-content-lock/index.js +14 -0
  375. package/build-module/components/page-content-lock/index.js.map +1 -0
  376. package/build-module/components/page-content-lock/use-disable-non-content-blocks.js +36 -0
  377. package/build-module/components/page-content-lock/use-disable-non-content-blocks.js.map +1 -0
  378. package/build-module/components/page-content-lock/use-page-content-lock-notifications.js +98 -0
  379. package/build-module/components/page-content-lock/use-page-content-lock-notifications.js.map +1 -0
  380. package/build-module/components/preferences-modal/index.js +4 -5
  381. package/build-module/components/preferences-modal/index.js.map +1 -1
  382. package/build-module/components/resizable-frame/index.js +20 -12
  383. package/build-module/components/resizable-frame/index.js.map +1 -1
  384. package/build-module/components/revisions/index.js +11 -13
  385. package/build-module/components/revisions/index.js.map +1 -1
  386. package/build-module/components/routes/link.js +8 -12
  387. package/build-module/components/routes/link.js.map +1 -1
  388. package/build-module/components/routes/use-title.js +1 -5
  389. package/build-module/components/routes/use-title.js.map +1 -1
  390. package/build-module/components/save-button/index.js +13 -7
  391. package/build-module/components/save-button/index.js.map +1 -1
  392. package/build-module/components/save-hub/index.js +95 -8
  393. package/build-module/components/save-hub/index.js.map +1 -1
  394. package/build-module/components/save-panel/index.js +62 -19
  395. package/build-module/components/save-panel/index.js.map +1 -1
  396. package/build-module/components/secondary-sidebar/list-view-sidebar.js +9 -3
  397. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  398. package/build-module/components/sidebar/index.js +6 -5
  399. package/build-module/components/sidebar/index.js.map +1 -1
  400. package/build-module/components/sidebar-edit-mode/default-sidebar.js +11 -12
  401. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  402. package/build-module/components/sidebar-edit-mode/index.js +14 -11
  403. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  404. package/build-module/components/sidebar-edit-mode/page-panels/content-blocks-list.js +67 -0
  405. package/build-module/components/sidebar-edit-mode/page-panels/content-blocks-list.js.map +1 -0
  406. package/build-module/components/sidebar-edit-mode/page-panels/index.js +67 -0
  407. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -0
  408. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +4 -5
  409. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  410. package/build-module/components/sidebar-edit-mode/settings-header/index.js +36 -22
  411. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  412. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js +35 -0
  413. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js.map +1 -0
  414. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js +3 -4
  415. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +1 -1
  416. package/build-module/components/sidebar-edit-mode/{template-card → template-panel}/index.js +20 -19
  417. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -0
  418. package/build-module/components/sidebar-edit-mode/{template-revisions/index.js → template-panel/last-revision.js} +7 -8
  419. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -0
  420. package/build-module/components/sidebar-edit-mode/{template-card → template-panel}/template-actions.js +12 -16
  421. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -0
  422. package/build-module/components/sidebar-edit-mode/{template-card → template-panel}/template-areas.js +15 -19
  423. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -0
  424. package/build-module/components/sidebar-navigation-item/index.js +7 -8
  425. package/build-module/components/sidebar-navigation-item/index.js.map +1 -1
  426. package/build-module/components/sidebar-navigation-screen/index.js +22 -15
  427. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  428. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +104 -14
  429. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  430. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js +3 -5
  431. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  432. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +7 -10
  433. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  434. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +17 -23
  435. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  436. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +20 -23
  437. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  438. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +4 -5
  439. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  440. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigator-button.js +8 -9
  441. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigator-button.js.map +1 -1
  442. package/build-module/components/sidebar-navigation-screen-page/index.js +79 -14
  443. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  444. package/build-module/components/sidebar-navigation-screen-page/page-details.js +131 -0
  445. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -0
  446. package/build-module/components/sidebar-navigation-screen-page/status-label.js +97 -0
  447. package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +1 -0
  448. package/build-module/components/sidebar-navigation-screen-pages/index.js +125 -19
  449. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  450. package/build-module/components/sidebar-navigation-screen-template/index.js +22 -17
  451. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  452. package/build-module/components/sidebar-navigation-screen-template-part/index.js +86 -0
  453. package/build-module/components/sidebar-navigation-screen-template-part/index.js.map +1 -0
  454. package/build-module/components/sidebar-navigation-screen-templates/index.js +13 -18
  455. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  456. package/build-module/components/sidebar-navigation-subtitle/index.js +3 -4
  457. package/build-module/components/sidebar-navigation-subtitle/index.js.map +1 -1
  458. package/build-module/components/site-hub/index.js +21 -14
  459. package/build-module/components/site-hub/index.js.map +1 -1
  460. package/build-module/components/site-icon/index.js +4 -5
  461. package/build-module/components/site-icon/index.js.map +1 -1
  462. package/build-module/components/start-template-options/index.js +15 -21
  463. package/build-module/components/start-template-options/index.js.map +1 -1
  464. package/build-module/components/style-book/index.js +35 -39
  465. package/build-module/components/style-book/index.js.map +1 -1
  466. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
  467. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  468. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +9 -10
  469. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  470. package/build-module/components/{list/actions → template-actions}/index.js +34 -31
  471. package/build-module/components/template-actions/index.js.map +1 -0
  472. package/build-module/components/{list/actions → template-actions}/rename-menu-item.js +4 -5
  473. package/build-module/components/template-actions/rename-menu-item.js.map +1 -0
  474. package/build-module/components/template-part-converter/convert-to-regular.js +4 -5
  475. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  476. package/build-module/components/template-part-converter/convert-to-template-part.js +8 -10
  477. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  478. package/build-module/components/template-part-converter/index.js +12 -18
  479. package/build-module/components/template-part-converter/index.js.map +1 -1
  480. package/build-module/components/welcome-guide/image.js +4 -5
  481. package/build-module/components/welcome-guide/image.js.map +1 -1
  482. package/build-module/hooks/commands/use-edit-mode-commands.js +6 -8
  483. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  484. package/build-module/hooks/push-changes-to-global-styles/index.js +11 -8
  485. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  486. package/build-module/hooks/template-part-edit.js +5 -6
  487. package/build-module/hooks/template-part-edit.js.map +1 -1
  488. package/build-module/index.js +3 -6
  489. package/build-module/index.js.map +1 -1
  490. package/build-module/store/actions.js +125 -126
  491. package/build-module/store/actions.js.map +1 -1
  492. package/build-module/store/private-actions.js +7 -10
  493. package/build-module/store/private-actions.js.map +1 -1
  494. package/build-module/store/reducer.js +30 -33
  495. package/build-module/store/reducer.js.map +1 -1
  496. package/build-module/store/selectors.js +31 -11
  497. package/build-module/store/selectors.js.map +1 -1
  498. package/build-module/store/utils.js +1 -3
  499. package/build-module/store/utils.js.map +1 -1
  500. package/build-module/utils/get-is-list-page.js +3 -4
  501. package/build-module/utils/get-is-list-page.js.map +1 -1
  502. package/build-module/utils/is-previewing-theme.js +1 -3
  503. package/build-module/utils/is-previewing-theme.js.map +1 -1
  504. package/build-module/utils/is-template-revertable.js +1 -1
  505. package/build-module/utils/is-template-revertable.js.map +1 -1
  506. package/build-style/style-rtl.css +281 -59
  507. package/build-style/style.css +281 -59
  508. package/package.json +39 -36
  509. package/src/components/add-new-page/index.js +105 -0
  510. package/src/components/add-new-template/new-template.js +2 -1
  511. package/src/components/block-editor/index.js +25 -14
  512. package/src/components/editor/index.js +14 -8
  513. package/src/components/editor/style.scss +6 -11
  514. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +7 -5
  515. package/src/components/global-styles/ui.js +28 -0
  516. package/src/components/header-edit-mode/document-actions/index.js +126 -32
  517. package/src/components/header-edit-mode/document-actions/style.scss +64 -9
  518. package/src/components/header-edit-mode/tools-more-menu-group/index.js +1 -6
  519. package/src/components/layout/index.js +3 -9
  520. package/src/components/list/table.js +6 -2
  521. package/src/components/page-actions/delete-page-menu-item.js +71 -0
  522. package/src/components/page-actions/index.js +36 -0
  523. package/src/components/page-content-lock/constants.js +5 -0
  524. package/src/components/page-content-lock/index.js +14 -0
  525. package/src/components/page-content-lock/use-disable-non-content-blocks.js +44 -0
  526. package/src/components/page-content-lock/use-page-content-lock-notifications.js +128 -0
  527. package/src/components/resizable-frame/index.js +15 -5
  528. package/src/components/resizable-frame/style.scss +20 -18
  529. package/src/components/revisions/index.js +6 -7
  530. package/src/components/save-button/index.js +6 -0
  531. package/src/components/save-hub/index.js +143 -38
  532. package/src/components/save-hub/style.scss +6 -0
  533. package/src/components/save-panel/index.js +62 -15
  534. package/src/components/secondary-sidebar/list-view-sidebar.js +8 -1
  535. package/src/components/sidebar/index.js +6 -4
  536. package/src/components/sidebar/style.scss +3 -4
  537. package/src/components/sidebar-edit-mode/index.js +16 -14
  538. package/src/components/sidebar-edit-mode/page-panels/content-blocks-list.js +77 -0
  539. package/src/components/sidebar-edit-mode/page-panels/index.js +89 -0
  540. package/src/components/sidebar-edit-mode/page-panels/style.scss +10 -0
  541. package/src/components/sidebar-edit-mode/settings-header/index.js +51 -28
  542. package/src/components/sidebar-edit-mode/sidebar-card/index.js +34 -0
  543. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +34 -0
  544. package/src/components/sidebar-edit-mode/{template-card → template-panel}/index.js +22 -19
  545. package/src/components/sidebar-edit-mode/{template-card → template-panel}/style.scss +2 -32
  546. package/src/components/sidebar-navigation-screen/index.js +74 -50
  547. package/src/components/sidebar-navigation-screen/style.scss +45 -4
  548. package/src/components/sidebar-navigation-screen-global-styles/index.js +118 -12
  549. package/src/components/sidebar-navigation-screen-global-styles/style.scss +15 -0
  550. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +1 -1
  551. package/src/components/sidebar-navigation-screen-page/index.js +137 -24
  552. package/src/components/sidebar-navigation-screen-page/page-details.js +163 -0
  553. package/src/components/sidebar-navigation-screen-page/status-label.js +101 -0
  554. package/src/components/sidebar-navigation-screen-page/style.scss +80 -0
  555. package/src/components/sidebar-navigation-screen-pages/index.js +180 -44
  556. package/src/components/sidebar-navigation-screen-template/index.js +25 -22
  557. package/src/components/sidebar-navigation-screen-template-part/index.js +103 -0
  558. package/src/components/sidebar-navigation-screen-templates/index.js +1 -1
  559. package/src/components/sidebar-navigation-subtitle/style.scss +2 -2
  560. package/src/components/site-hub/index.js +21 -6
  561. package/src/components/site-hub/style.scss +26 -0
  562. package/src/components/{list/actions → template-actions}/index.js +19 -6
  563. package/src/hooks/push-changes-to-global-styles/index.js +13 -7
  564. package/src/store/actions.js +20 -1
  565. package/src/store/reducer.js +20 -0
  566. package/src/store/selectors.js +24 -0
  567. package/src/store/test/actions.js +31 -0
  568. package/src/store/test/reducer.js +44 -0
  569. package/src/store/test/selectors.js +57 -0
  570. package/src/style.scss +5 -2
  571. package/src/utils/is-previewing-theme.js +1 -4
  572. package/build/components/list/actions/index.js.map +0 -1
  573. package/build/components/list/actions/rename-menu-item.js.map +0 -1
  574. package/build/components/sidebar-edit-mode/template-card/index.js.map +0 -1
  575. package/build/components/sidebar-edit-mode/template-card/template-actions.js.map +0 -1
  576. package/build/components/sidebar-edit-mode/template-card/template-areas.js.map +0 -1
  577. package/build/components/sidebar-edit-mode/template-revisions/index.js.map +0 -1
  578. package/build-module/components/list/actions/index.js.map +0 -1
  579. package/build-module/components/list/actions/rename-menu-item.js.map +0 -1
  580. package/build-module/components/sidebar-edit-mode/template-card/index.js.map +0 -1
  581. package/build-module/components/sidebar-edit-mode/template-card/template-actions.js.map +0 -1
  582. package/build-module/components/sidebar-edit-mode/template-card/template-areas.js.map +0 -1
  583. package/src/components/sidebar-navigation-screen-pages/style.scss +0 -4
  584. /package/src/components/sidebar-edit-mode/{template-revisions/index.js → template-panel/last-revision.js} +0 -0
  585. /package/src/components/sidebar-edit-mode/{template-card → template-panel}/template-actions.js +0 -0
  586. /package/src/components/sidebar-edit-mode/{template-card → template-panel}/template-areas.js +0 -0
  587. /package/src/components/{list/actions → template-actions}/rename-menu-item.js +0 -0
@@ -0,0 +1,105 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { kebabCase } from 'lodash';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import {
10
+ Button,
11
+ Modal,
12
+ __experimentalHStack as HStack,
13
+ __experimentalVStack as VStack,
14
+ TextControl,
15
+ } from '@wordpress/components';
16
+ import { __, sprintf } from '@wordpress/i18n';
17
+ import { useDispatch } from '@wordpress/data';
18
+ import { useState } from '@wordpress/element';
19
+ import { store as coreStore } from '@wordpress/core-data';
20
+ import { store as noticesStore } from '@wordpress/notices';
21
+
22
+ export default function AddNewPageModal( { onSave, onClose } ) {
23
+ const [ isCreatingPage, setIsCreatingPage ] = useState( false );
24
+ const [ title, setTitle ] = useState( '' );
25
+
26
+ const { saveEntityRecord } = useDispatch( coreStore );
27
+ const { createErrorNotice, createSuccessNotice } =
28
+ useDispatch( noticesStore );
29
+
30
+ async function createPage( event ) {
31
+ event.preventDefault();
32
+
33
+ if ( isCreatingPage ) {
34
+ return;
35
+ }
36
+ setIsCreatingPage( true );
37
+ try {
38
+ const newPage = await saveEntityRecord(
39
+ 'postType',
40
+ 'page',
41
+ {
42
+ status: 'draft',
43
+ title,
44
+ slug: kebabCase( title || __( 'No title' ) ),
45
+ },
46
+ { throwOnError: true }
47
+ );
48
+
49
+ onSave( newPage );
50
+
51
+ createSuccessNotice(
52
+ sprintf(
53
+ // translators: %s: Title of the created template e.g: "Category".
54
+ __( '"%s" successfully created.' ),
55
+ newPage.title?.rendered || title
56
+ ),
57
+ {
58
+ type: 'snackbar',
59
+ }
60
+ );
61
+ } catch ( error ) {
62
+ const errorMessage =
63
+ error.message && error.code !== 'unknown_error'
64
+ ? error.message
65
+ : __( 'An error occurred while creating the page.' );
66
+
67
+ createErrorNotice( errorMessage, {
68
+ type: 'snackbar',
69
+ } );
70
+ } finally {
71
+ setIsCreatingPage( false );
72
+ }
73
+ }
74
+
75
+ return (
76
+ <Modal title={ __( 'Draft a new page' ) } onRequestClose={ onClose }>
77
+ <form onSubmit={ createPage }>
78
+ <VStack spacing={ 3 }>
79
+ <TextControl
80
+ /* eslint-disable jsx-a11y/no-autofocus */
81
+ autoFocus
82
+ /* eslint-enable jsx-a11y/no-autofocus */
83
+ label={ __( 'Page title' ) }
84
+ onChange={ setTitle }
85
+ placeholder={ __( 'No title' ) }
86
+ value={ title }
87
+ />
88
+ <HStack spacing={ 2 } justify="end">
89
+ <Button variant="tertiary" onClick={ onClose }>
90
+ { __( 'Cancel' ) }
91
+ </Button>
92
+ <Button
93
+ variant="primary"
94
+ type="submit"
95
+ isBusy={ isCreatingPage }
96
+ aria-disabled={ isCreatingPage }
97
+ >
98
+ { __( 'Create draft' ) }
99
+ </Button>
100
+ </HStack>
101
+ </VStack>
102
+ </form>
103
+ </Modal>
104
+ );
105
+ }
@@ -13,6 +13,7 @@ import {
13
13
  __experimentalText as Text,
14
14
  __experimentalVStack as VStack,
15
15
  } from '@wordpress/components';
16
+ import { decodeEntities } from '@wordpress/html-entities';
16
17
  import { useState } from '@wordpress/element';
17
18
  import { useDispatch } from '@wordpress/data';
18
19
  import { store as coreStore } from '@wordpress/core-data';
@@ -140,7 +141,7 @@ export default function NewTemplate( {
140
141
  sprintf(
141
142
  // translators: %s: Title of the created template e.g: "Category".
142
143
  __( '"%s" successfully created.' ),
143
- newTemplate.title?.rendered || title
144
+ decodeEntities( newTemplate.title?.rendered || title )
144
145
  ),
145
146
  {
146
147
  type: 'snackbar',
@@ -38,6 +38,10 @@ import ResizableEditor from './resizable-editor';
38
38
  import EditorCanvas from './editor-canvas';
39
39
  import { unlock } from '../../private-apis';
40
40
  import EditorCanvasContainer from '../editor-canvas-container';
41
+ import {
42
+ PageContentLock,
43
+ usePageContentLockNotifications,
44
+ } from '../page-content-lock';
41
45
 
42
46
  const { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );
43
47
 
@@ -49,20 +53,25 @@ const LAYOUT = {
49
53
 
50
54
  export default function BlockEditor() {
51
55
  const { setIsInserterOpened } = useDispatch( editSiteStore );
52
- const { storedSettings, templateType, canvasMode } = useSelect(
53
- ( select ) => {
54
- const { getSettings, getEditedPostType, getCanvasMode } = unlock(
55
- select( editSiteStore )
56
- );
57
-
58
- return {
59
- storedSettings: getSettings( setIsInserterOpened ),
60
- templateType: getEditedPostType(),
61
- canvasMode: getCanvasMode(),
62
- };
63
- },
64
- [ setIsInserterOpened ]
65
- );
56
+ const { storedSettings, templateType, canvasMode, hasPageContentLock } =
57
+ useSelect(
58
+ ( select ) => {
59
+ const {
60
+ getSettings,
61
+ getEditedPostType,
62
+ getCanvasMode,
63
+ hasPageContentLock: _hasPageContentLock,
64
+ } = unlock( select( editSiteStore ) );
65
+
66
+ return {
67
+ storedSettings: getSettings( setIsInserterOpened ),
68
+ templateType: getEditedPostType(),
69
+ canvasMode: getCanvasMode(),
70
+ hasPageContentLock: _hasPageContentLock(),
71
+ };
72
+ },
73
+ [ setIsInserterOpened ]
74
+ );
66
75
 
67
76
  const settingsBlockPatterns =
68
77
  storedSettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0
@@ -137,6 +146,7 @@ export default function BlockEditor() {
137
146
  contentRef,
138
147
  useClipboardHandler(),
139
148
  useTypingObserver(),
149
+ usePageContentLockNotifications(),
140
150
  ] );
141
151
  const isMobileViewport = useViewportMatch( 'small', '<' );
142
152
  const { clearSelectedBlock } = useDispatch( blockEditorStore );
@@ -162,6 +172,7 @@ export default function BlockEditor() {
162
172
  onChange={ onChange }
163
173
  useSubRegistry={ false }
164
174
  >
175
+ { hasPageContentLock && <PageContentLock /> }
165
176
  <TemplatePartConverter />
166
177
  <SidebarInspectorFill>
167
178
  <BlockInspector />
@@ -37,7 +37,6 @@ import WelcomeGuide from '../welcome-guide';
37
37
  import StartTemplateOptions from '../start-template-options';
38
38
  import { store as editSiteStore } from '../../store';
39
39
  import { GlobalStylesRenderer } from '../global-styles-renderer';
40
-
41
40
  import useTitle from '../routes/use-title';
42
41
  import CanvasSpinner from '../canvas-spinner';
43
42
  import { unlock } from '../../private-apis';
@@ -74,6 +73,7 @@ export default function Editor( { isLoading } ) {
74
73
  isListViewOpen,
75
74
  showIconLabels,
76
75
  showBlockBreadcrumbs,
76
+ hasPageContentLock,
77
77
  } = useSelect( ( select ) => {
78
78
  const {
79
79
  getEditedPostContext,
@@ -81,6 +81,7 @@ export default function Editor( { isLoading } ) {
81
81
  getCanvasMode,
82
82
  isInserterOpened,
83
83
  isListViewOpened,
84
+ hasPageContentLock: _hasPageContentLock,
84
85
  } = unlock( select( editSiteStore ) );
85
86
  const { __unstableGetEditorMode } = select( blockEditorStore );
86
87
  const { getActiveComplementaryArea } = select( interfaceStore );
@@ -105,6 +106,7 @@ export default function Editor( { isLoading } ) {
105
106
  'core/edit-site',
106
107
  'showBlockBreadcrumbs'
107
108
  ),
109
+ hasPageContentLock: _hasPageContentLock(),
108
110
  };
109
111
  }, [] );
110
112
  const { setEditedPostContext } = useDispatch( editSiteStore );
@@ -122,9 +124,10 @@ export default function Editor( { isLoading } ) {
122
124
  const secondarySidebarLabel = isListViewOpen
123
125
  ? __( 'List View' )
124
126
  : __( 'Block Library' );
125
- const blockContext = useMemo(
126
- () => ( {
127
- ...context,
127
+ const blockContext = useMemo( () => {
128
+ const { postType, postId, ...nonPostFields } = context ?? {};
129
+ return {
130
+ ...( hasPageContentLock ? context : nonPostFields ),
128
131
  queryContext: [
129
132
  context?.queryContext || { page: 1 },
130
133
  ( newQueryContext ) =>
@@ -136,9 +139,8 @@ export default function Editor( { isLoading } ) {
136
139
  },
137
140
  } ),
138
141
  ],
139
- } ),
140
- [ context, setEditedPostContext ]
141
- );
142
+ };
143
+ }, [ hasPageContentLock, context, setEditedPostContext ] );
142
144
 
143
145
  let title;
144
146
  if ( hasLoadedPost ) {
@@ -227,7 +229,11 @@ export default function Editor( { isLoading } ) {
227
229
  footer={
228
230
  shouldShowBlockBreakcrumbs && (
229
231
  <BlockBreadcrumb
230
- rootLabelText={ __( 'Template' ) }
232
+ rootLabelText={
233
+ hasPageContentLock
234
+ ? __( 'Page' )
235
+ : __( 'Template' )
236
+ }
231
237
  />
232
238
  )
233
239
  }
@@ -19,16 +19,11 @@
19
19
  }
20
20
 
21
21
  // Adjust the position of the notices
22
- .edit-site {
23
- .components-editor-notices__snackbar {
24
- position: fixed;
25
- right: 0;
26
- bottom: 0;
27
- padding: 16px;
28
- }
29
- .is-edit-mode .components-editor-notices__snackbar {
30
- bottom: 24px;
31
- }
22
+ .edit-site .components-editor-notices__snackbar {
23
+ position: absolute;
24
+ right: 0;
25
+ bottom: 40px;
26
+ padding-left: 16px;
27
+ padding-right: 16px;
32
28
  }
33
-
34
29
  @include editor-left(".edit-site .components-editor-notices__snackbar")
@@ -5,10 +5,7 @@ import { useSelect } from '@wordpress/data';
5
5
  import { store as coreStore } from '@wordpress/core-data';
6
6
  import { useContext, useMemo } from '@wordpress/element';
7
7
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
8
- /**
9
- * External dependencies
10
- */
11
- import { isEmpty } from 'lodash';
8
+
12
9
  /**
13
10
  * Internal dependencies
14
11
  */
@@ -75,7 +72,12 @@ export default function useGlobalStylesRevisions() {
75
72
  }
76
73
 
77
74
  // Adds an item for unsaved changes.
78
- if ( isDirty && ! isEmpty( userConfig ) && currentUser ) {
75
+ if (
76
+ isDirty &&
77
+ userConfig &&
78
+ Object.keys( userConfig ).length > 0 &&
79
+ currentUser
80
+ ) {
79
81
  const unsavedRevision = {
80
82
  id: 'unsaved',
81
83
  styles: userConfig?.styles,
@@ -237,6 +237,33 @@ function GlobalStylesBlockLink() {
237
237
  }, [ selectedBlockClientId, selectedBlockName, blockHasGlobalStyles ] );
238
238
  }
239
239
 
240
+ function GlobalStylesEditorCanvasContainerLink() {
241
+ const { goTo, location } = useNavigator();
242
+ const editorCanvasContainerView = useSelect(
243
+ ( select ) =>
244
+ unlock( select( editSiteStore ) ).getEditorCanvasContainerView(),
245
+ []
246
+ );
247
+
248
+ // If the user switches the editor canvas container view, redirect
249
+ // to the appropriate screen. This effectively allows deep linking to the
250
+ // desired screens from outside the global styles navigation provider.
251
+ useEffect( () => {
252
+ if ( editorCanvasContainerView === 'global-styles-revisions' ) {
253
+ // Switching to the revisions container view should
254
+ // redirect to the revisions screen.
255
+ goTo( '/revisions' );
256
+ } else if (
257
+ !! editorCanvasContainerView &&
258
+ location?.path === '/revisions'
259
+ ) {
260
+ // Switching to any container other than revisions should
261
+ // redirect from the revisions screen to the root global styles screen.
262
+ goTo( '/' );
263
+ }
264
+ }, [ editorCanvasContainerView, location?.path, goTo ] );
265
+ }
266
+
240
267
  function GlobalStylesUI() {
241
268
  const blocks = getBlockTypes();
242
269
  const editorCanvasContainerView = useSelect(
@@ -326,6 +353,7 @@ function GlobalStylesUI() {
326
353
 
327
354
  <GlobalStylesActionMenu />
328
355
  <GlobalStylesBlockLink />
356
+ <GlobalStylesEditorCanvasContainerLink />
329
357
  </NavigatorProvider>
330
358
  );
331
359
  }
@@ -1,8 +1,13 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import classnames from 'classnames';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
4
9
  import { sprintf, __ } from '@wordpress/i18n';
5
- import { useDispatch } from '@wordpress/data';
10
+ import { useSelect, useDispatch } from '@wordpress/data';
6
11
  import {
7
12
  Button,
8
13
  VisuallyHidden,
@@ -10,27 +15,88 @@ import {
10
15
  __experimentalHStack as HStack,
11
16
  } from '@wordpress/components';
12
17
  import { BlockIcon } from '@wordpress/block-editor';
13
- import { privateApis as commandsPrivateApis } from '@wordpress/commands';
18
+ import { store as commandsStore } from '@wordpress/commands';
19
+ import {
20
+ chevronLeftSmall as chevronLeftSmallIcon,
21
+ page as pageIcon,
22
+ } from '@wordpress/icons';
23
+ import { useEntityRecord } from '@wordpress/core-data';
14
24
  import { displayShortcut } from '@wordpress/keycodes';
25
+ import { useState, useEffect, useRef } from '@wordpress/element';
15
26
 
16
27
  /**
17
28
  * Internal dependencies
18
29
  */
19
30
  import useEditedEntityRecord from '../../use-edited-entity-record';
20
- import { unlock } from '../../../private-apis';
21
-
22
- const { store: commandsStore } = unlock( commandsPrivateApis );
31
+ import { store as editSiteStore } from '../../../store';
23
32
 
24
33
  export default function DocumentActions() {
25
- const { open: openCommandCenter } = useDispatch( commandsStore );
34
+ const isPage = useSelect( ( select ) => select( editSiteStore ).isPage() );
35
+ return isPage ? <PageDocumentActions /> : <TemplateDocumentActions />;
36
+ }
37
+
38
+ function PageDocumentActions() {
39
+ const { hasPageContentLock, context } = useSelect(
40
+ ( select ) => ( {
41
+ hasPageContentLock: select( editSiteStore ).hasPageContentLock(),
42
+ context: select( editSiteStore ).getEditedPostContext(),
43
+ } ),
44
+ []
45
+ );
46
+
47
+ const { hasResolved, editedRecord } = useEntityRecord(
48
+ 'postType',
49
+ context.postType,
50
+ context.postId
51
+ );
52
+
53
+ const { setHasPageContentLock } = useDispatch( editSiteStore );
54
+
55
+ const [ hasEditedTemplate, setHasEditedTemplate ] = useState( false );
56
+ const prevHasPageContentLock = useRef( false );
57
+ useEffect( () => {
58
+ if ( prevHasPageContentLock.current && ! hasPageContentLock ) {
59
+ setHasEditedTemplate( true );
60
+ }
61
+ prevHasPageContentLock.current = hasPageContentLock;
62
+ }, [ hasPageContentLock ] );
63
+
64
+ if ( ! hasResolved ) {
65
+ return null;
66
+ }
67
+
68
+ if ( ! editedRecord ) {
69
+ return (
70
+ <div className="edit-site-document-actions">
71
+ { __( 'Document not found' ) }
72
+ </div>
73
+ );
74
+ }
75
+
76
+ return hasPageContentLock ? (
77
+ <BaseDocumentActions
78
+ className={ classnames( 'is-page', {
79
+ 'is-animated': hasEditedTemplate,
80
+ } ) }
81
+ icon={ pageIcon }
82
+ >
83
+ { editedRecord.title }
84
+ </BaseDocumentActions>
85
+ ) : (
86
+ <TemplateDocumentActions
87
+ className="is-animated"
88
+ onBack={ () => setHasPageContentLock( true ) }
89
+ />
90
+ );
91
+ }
92
+
93
+ function TemplateDocumentActions( { className, onBack } ) {
26
94
  const { isLoaded, record, getTitle, icon } = useEditedEntityRecord();
27
95
 
28
- // Return a simple loading indicator until we have information to show.
29
96
  if ( ! isLoaded ) {
30
97
  return null;
31
98
  }
32
99
 
33
- // Return feedback that the template does not seem to exist.
34
100
  if ( ! record ) {
35
101
  return (
36
102
  <div className="edit-site-document-actions">
@@ -45,31 +111,59 @@ export default function DocumentActions() {
45
111
  : __( 'template' );
46
112
 
47
113
  return (
48
- <Button
49
- className="edit-site-document-actions"
50
- onClick={ () => openCommandCenter() }
114
+ <BaseDocumentActions
115
+ className={ className }
116
+ icon={ icon }
117
+ onBack={ onBack }
118
+ >
119
+ <VisuallyHidden as="span">
120
+ { sprintf(
121
+ /* translators: %s: the entity being edited, like "template"*/
122
+ __( 'Editing %s: ' ),
123
+ entityLabel
124
+ ) }
125
+ </VisuallyHidden>
126
+ { getTitle() }
127
+ </BaseDocumentActions>
128
+ );
129
+ }
130
+
131
+ function BaseDocumentActions( { className, icon, children, onBack } ) {
132
+ const { open: openCommandCenter } = useDispatch( commandsStore );
133
+ return (
134
+ <div
135
+ className={ classnames( 'edit-site-document-actions', className ) }
51
136
  >
52
- <span className="edit-site-document-actions__left"></span>
53
- <HStack
54
- spacing={ 1 }
55
- justify="center"
56
- className="edit-site-document-actions__title"
137
+ { onBack && (
138
+ <Button
139
+ className="edit-site-document-actions__back"
140
+ icon={ chevronLeftSmallIcon }
141
+ onClick={ ( event ) => {
142
+ event.stopPropagation();
143
+ onBack();
144
+ } }
145
+ >
146
+ { __( 'Back' ) }
147
+ </Button>
148
+ ) }
149
+ <Button
150
+ className="edit-site-document-actions__command"
151
+ onClick={ () => openCommandCenter() }
57
152
  >
58
- <BlockIcon icon={ icon } />
59
- <Text size="body" as="h1">
60
- <VisuallyHidden as="span">
61
- { sprintf(
62
- /* translators: %s: the entity being edited, like "template"*/
63
- __( 'Editing %s: ' ),
64
- entityLabel
65
- ) }
66
- </VisuallyHidden>
67
- { getTitle() }
68
- </Text>
69
- </HStack>
70
- <span className="edit-site-document-actions__shortcut">
71
- { displayShortcut.primary( 'k' ) }
72
- </span>
73
- </Button>
153
+ <HStack
154
+ className="edit-site-document-actions__title"
155
+ spacing={ 1 }
156
+ justify="center"
157
+ >
158
+ <BlockIcon icon={ icon } />
159
+ <Text size="body" as="h1">
160
+ { children }
161
+ </Text>
162
+ </HStack>
163
+ <span className="edit-site-document-actions__shortcut">
164
+ { displayShortcut.primary( 'k' ) }
165
+ </span>
166
+ </Button>
167
+ </div>
74
168
  );
75
169
  }
@@ -1,10 +1,7 @@
1
1
  .edit-site-document-actions {
2
- display: flex;
3
- align-items: center;
4
- gap: $grid-unit;
2
+ display: grid;
3
+ grid-template-columns: 1fr 2fr 1fr;
5
4
  height: $button-size;
6
- padding: $grid-unit;
7
- justify-content: space-between;
8
5
  // Flex items will, by default, refuse to shrink below a minimum
9
6
  // intrinsic width. In order to shrink this flexbox item, and
10
7
  // subsequently truncate child text, we set an explicit min-width.
@@ -13,6 +10,7 @@
13
10
  background: $gray-100;
14
11
  border-radius: 4px;
15
12
  width: min(100%, 450px);
13
+ overflow: hidden;
16
14
 
17
15
  &:hover {
18
16
  color: currentColor;
@@ -20,29 +18,86 @@
20
18
  }
21
19
  }
22
20
 
21
+ .edit-site-document-actions__command {
22
+ grid-column: 1 / -1;
23
+ display: grid;
24
+ grid-template-columns: 1fr 2fr 1fr;
25
+ grid-row: 1;
26
+ }
27
+
28
+
23
29
  .edit-site-document-actions__title {
24
30
  flex-grow: 1;
25
31
  color: var(--wp-block-synced-color);
26
32
  overflow: hidden;
33
+ grid-column: 2 / 3;
27
34
 
28
35
  h1 {
29
- color: var(--wp-block-synced-color);
30
36
  white-space: nowrap;
31
37
  overflow: hidden;
32
38
  text-overflow: ellipsis;
39
+ color: var(--wp-block-synced-color);
40
+ }
41
+
42
+ .edit-site-document-actions.is-page & {
43
+ color: $gray-800;
44
+
45
+ h1 {
46
+ color: $gray-800;
47
+ }
48
+ }
49
+
50
+ .edit-site-document-actions.is-animated & {
51
+ animation: edit-site-document-actions__slide-in-left 0.3s;
52
+ @include reduce-motion("animation");
53
+ }
54
+
55
+ .edit-site-document-actions.is-animated.is-page & {
56
+ animation: edit-site-document-actions__slide-in-right 0.3s;
57
+ @include reduce-motion("animation");
33
58
  }
34
59
  }
35
60
 
36
61
  .edit-site-document-actions__shortcut {
37
- flex-shrink: 0;
38
62
  color: $gray-700;
39
- width: #{$grid-unit * 4.5};
63
+ text-align: right;
64
+
40
65
  &:hover {
41
66
  color: $gray-700;
42
67
  }
43
68
  }
44
69
 
45
- .edit-site-document-actions__left {
70
+ .edit-site-document-actions__back {
46
71
  min-width: $button-size;
47
72
  flex-shrink: 0;
73
+ grid-column: 1 / 2;
74
+ grid-row: 1;
75
+ z-index: 1;
76
+
77
+ .edit-site-document-actions.is-animated & {
78
+ animation: edit-site-document-actions__slide-in-left 0.3s;
79
+ @include reduce-motion("animation");
80
+ }
81
+ }
82
+
83
+ @keyframes edit-site-document-actions__slide-in-right {
84
+ from {
85
+ transform: translateX(-15%);
86
+ opacity: 0;
87
+ }
88
+ to {
89
+ transform: translateX(0);
90
+ opacity: 1;
91
+ }
92
+ }
93
+
94
+ @keyframes edit-site-document-actions__slide-in-left {
95
+ from {
96
+ transform: translateX(15%);
97
+ opacity: 0;
98
+ }
99
+ to {
100
+ transform: translateX(0);
101
+ opacity: 1;
102
+ }
48
103
  }
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { isEmpty } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -14,7 +9,7 @@ const { Fill: ToolsMoreMenuGroup, Slot } = createSlotFill(
14
9
 
15
10
  ToolsMoreMenuGroup.Slot = ( { fillProps } ) => (
16
11
  <Slot fillProps={ fillProps }>
17
- { ( fills ) => ! isEmpty( fills ) && fills }
12
+ { ( fills ) => fills && fills.length > 0 }
18
13
  </Slot>
19
14
  );
20
15