@wordpress/edit-site 4.19.0 → 5.1.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 (382) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/build/components/add-new-template/add-custom-template-modal.js +1 -0
  3. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
  4. package/build/components/add-new-template/index.js +8 -5
  5. package/build/components/add-new-template/index.js.map +1 -1
  6. package/build/components/add-new-template/new-template-part.js +21 -6
  7. package/build/components/add-new-template/new-template-part.js.map +1 -1
  8. package/build/components/add-new-template/new-template.js +12 -8
  9. package/build/components/add-new-template/new-template.js.map +1 -1
  10. package/build/components/app/index.js +15 -30
  11. package/build/components/app/index.js.map +1 -1
  12. package/build/components/block-editor/editor-canvas.js +64 -0
  13. package/build/components/block-editor/editor-canvas.js.map +1 -0
  14. package/build/components/block-editor/index.js +62 -59
  15. package/build/components/block-editor/index.js.map +1 -1
  16. package/build/components/block-editor/resizable-editor.js +10 -44
  17. package/build/components/block-editor/resizable-editor.js.map +1 -1
  18. package/build/components/editor/index.js +76 -135
  19. package/build/components/editor/index.js.map +1 -1
  20. package/build/components/global-styles/block-preview-panel.js +57 -0
  21. package/build/components/global-styles/block-preview-panel.js.map +1 -0
  22. package/build/components/global-styles/border-panel.js +0 -1
  23. package/build/components/global-styles/border-panel.js.map +1 -1
  24. package/build/components/global-styles/context-menu.js +6 -2
  25. package/build/components/global-styles/context-menu.js.map +1 -1
  26. package/build/components/global-styles/custom-css.js +62 -0
  27. package/build/components/global-styles/custom-css.js.map +1 -0
  28. package/build/components/global-styles/dimensions-panel.js +2 -6
  29. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  30. package/build/components/global-styles/global-styles-provider.js +18 -4
  31. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  32. package/build/components/global-styles/hooks.js +5 -2
  33. package/build/components/global-styles/hooks.js.map +1 -1
  34. package/build/components/global-styles/palette.js +1 -1
  35. package/build/components/global-styles/palette.js.map +1 -1
  36. package/build/components/global-styles/screen-background-color.js +0 -1
  37. package/build/components/global-styles/screen-background-color.js.map +1 -1
  38. package/build/components/global-styles/screen-block-list.js +2 -1
  39. package/build/components/global-styles/screen-block-list.js.map +1 -1
  40. package/build/components/global-styles/screen-block.js +5 -1
  41. package/build/components/global-styles/screen-block.js.map +1 -1
  42. package/build/components/global-styles/screen-border.js +47 -0
  43. package/build/components/global-styles/screen-border.js.map +1 -0
  44. package/build/components/global-styles/screen-button-color.js +0 -2
  45. package/build/components/global-styles/screen-button-color.js.map +1 -1
  46. package/build/components/global-styles/screen-colors.js +5 -1
  47. package/build/components/global-styles/screen-colors.js.map +1 -1
  48. package/build/components/global-styles/screen-css.js +42 -0
  49. package/build/components/global-styles/screen-css.js.map +1 -0
  50. package/build/components/global-styles/screen-heading-color.js +1 -3
  51. package/build/components/global-styles/screen-heading-color.js.map +1 -1
  52. package/build/components/global-styles/screen-layout.js +4 -5
  53. package/build/components/global-styles/screen-layout.js.map +1 -1
  54. package/build/components/global-styles/screen-link-color.js +0 -1
  55. package/build/components/global-styles/screen-link-color.js.map +1 -1
  56. package/build/components/global-styles/screen-root.js +20 -2
  57. package/build/components/global-styles/screen-root.js.map +1 -1
  58. package/build/components/global-styles/screen-style-variations.js +3 -3
  59. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  60. package/build/components/global-styles/screen-text-color.js +0 -1
  61. package/build/components/global-styles/screen-text-color.js.map +1 -1
  62. package/build/components/global-styles/screen-typography.js +4 -0
  63. package/build/components/global-styles/screen-typography.js.map +1 -1
  64. package/build/components/global-styles/typography-utils.js +17 -5
  65. package/build/components/global-styles/typography-utils.js.map +1 -1
  66. package/build/components/global-styles/ui.js +50 -4
  67. package/build/components/global-styles/ui.js.map +1 -1
  68. package/build/components/global-styles/use-global-styles-output.js +5 -1
  69. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  70. package/build/components/global-styles/utils.js +14 -4
  71. package/build/components/global-styles/utils.js.map +1 -1
  72. package/build/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +4 -8
  73. package/build/components/global-styles-renderer/index.js.map +1 -0
  74. package/build/components/header-edit-mode/document-actions/index.js +21 -45
  75. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  76. package/build/components/header-edit-mode/index.js +19 -12
  77. package/build/components/header-edit-mode/index.js.map +1 -1
  78. package/build/components/keyboard-shortcuts/index.js +11 -1
  79. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  80. package/build/components/layout/index.js +200 -0
  81. package/build/components/layout/index.js.map +1 -0
  82. package/build/components/list/header.js +5 -1
  83. package/build/components/list/header.js.map +1 -1
  84. package/build/components/list/index.js +4 -22
  85. package/build/components/list/index.js.map +1 -1
  86. package/build/components/navigate-to-link/index.js +1 -3
  87. package/build/components/navigate-to-link/index.js.map +1 -1
  88. package/build/components/routes/index.js +1 -1
  89. package/build/components/routes/index.js.map +1 -1
  90. package/build/components/sidebar/index.js +46 -0
  91. package/build/components/sidebar/index.js.map +1 -0
  92. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +24 -4
  93. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  94. package/build/components/sidebar-edit-mode/index.js +4 -2
  95. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  96. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js +10 -0
  97. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +1 -1
  98. package/build/components/sidebar-navigation-item/index.js +53 -0
  99. package/build/components/sidebar-navigation-item/index.js.map +1 -0
  100. package/build/components/sidebar-navigation-screen/index.js +49 -0
  101. package/build/components/sidebar-navigation-screen/index.js.map +1 -0
  102. package/build/components/sidebar-navigation-screen-main/index.js +46 -0
  103. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -0
  104. package/build/components/sidebar-navigation-screen-templates/index.js +169 -0
  105. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -0
  106. package/build/components/site-hub/index.js +149 -0
  107. package/build/components/site-hub/index.js.map +1 -0
  108. package/build/components/site-icon/index.js +70 -0
  109. package/build/components/site-icon/index.js.map +1 -0
  110. package/build/components/style-book/index.js +173 -0
  111. package/build/components/style-book/index.js.map +1 -0
  112. package/build/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +5 -4
  113. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -0
  114. package/build/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +53 -0
  115. package/build/components/sync-state-with-url/use-sync-sidebar-path-with-url.js.map +1 -0
  116. package/build/components/use-edited-entity-record/index.js +60 -0
  117. package/build/components/use-edited-entity-record/index.js.map +1 -0
  118. package/build/hooks/index.js +2 -0
  119. package/build/hooks/index.js.map +1 -1
  120. package/build/hooks/push-changes-to-global-styles/index.js +144 -0
  121. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -0
  122. package/build/index.js +7 -45
  123. package/build/index.js.map +1 -1
  124. package/build/store/actions.js +93 -43
  125. package/build/store/actions.js.map +1 -1
  126. package/build/store/reducer.js +35 -107
  127. package/build/store/reducer.js.map +1 -1
  128. package/build/store/selectors.js +69 -78
  129. package/build/store/selectors.js.map +1 -1
  130. package/build-module/components/add-new-template/add-custom-template-modal.js +1 -0
  131. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  132. package/build-module/components/add-new-template/index.js +7 -5
  133. package/build-module/components/add-new-template/index.js.map +1 -1
  134. package/build-module/components/add-new-template/new-template-part.js +18 -6
  135. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  136. package/build-module/components/add-new-template/new-template.js +13 -9
  137. package/build-module/components/add-new-template/new-template.js.map +1 -1
  138. package/build-module/components/app/index.js +15 -28
  139. package/build-module/components/app/index.js.map +1 -1
  140. package/build-module/components/block-editor/editor-canvas.js +51 -0
  141. package/build-module/components/block-editor/editor-canvas.js.map +1 -0
  142. package/build-module/components/block-editor/index.js +62 -60
  143. package/build-module/components/block-editor/index.js.map +1 -1
  144. package/build-module/components/block-editor/resizable-editor.js +11 -40
  145. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  146. package/build-module/components/editor/index.js +75 -129
  147. package/build-module/components/editor/index.js.map +1 -1
  148. package/build-module/components/global-styles/block-preview-panel.js +46 -0
  149. package/build-module/components/global-styles/block-preview-panel.js.map +1 -0
  150. package/build-module/components/global-styles/border-panel.js +0 -1
  151. package/build-module/components/global-styles/border-panel.js.map +1 -1
  152. package/build-module/components/global-styles/context-menu.js +7 -3
  153. package/build-module/components/global-styles/context-menu.js.map +1 -1
  154. package/build-module/components/global-styles/custom-css.js +52 -0
  155. package/build-module/components/global-styles/custom-css.js.map +1 -0
  156. package/build-module/components/global-styles/dimensions-panel.js +3 -7
  157. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  158. package/build-module/components/global-styles/global-styles-provider.js +18 -4
  159. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  160. package/build-module/components/global-styles/hooks.js +5 -3
  161. package/build-module/components/global-styles/hooks.js.map +1 -1
  162. package/build-module/components/global-styles/palette.js +1 -1
  163. package/build-module/components/global-styles/palette.js.map +1 -1
  164. package/build-module/components/global-styles/screen-background-color.js +0 -1
  165. package/build-module/components/global-styles/screen-background-color.js.map +1 -1
  166. package/build-module/components/global-styles/screen-block-list.js +2 -1
  167. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  168. package/build-module/components/global-styles/screen-block.js +4 -1
  169. package/build-module/components/global-styles/screen-block.js.map +1 -1
  170. package/build-module/components/global-styles/screen-border.js +30 -0
  171. package/build-module/components/global-styles/screen-border.js.map +1 -0
  172. package/build-module/components/global-styles/screen-button-color.js +0 -2
  173. package/build-module/components/global-styles/screen-button-color.js.map +1 -1
  174. package/build-module/components/global-styles/screen-colors.js +4 -1
  175. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  176. package/build-module/components/global-styles/screen-css.js +28 -0
  177. package/build-module/components/global-styles/screen-css.js.map +1 -0
  178. package/build-module/components/global-styles/screen-heading-color.js +1 -3
  179. package/build-module/components/global-styles/screen-heading-color.js.map +1 -1
  180. package/build-module/components/global-styles/screen-layout.js +3 -4
  181. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  182. package/build-module/components/global-styles/screen-link-color.js +0 -1
  183. package/build-module/components/global-styles/screen-link-color.js.map +1 -1
  184. package/build-module/components/global-styles/screen-root.js +21 -3
  185. package/build-module/components/global-styles/screen-root.js.map +1 -1
  186. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  187. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  188. package/build-module/components/global-styles/screen-text-color.js +0 -1
  189. package/build-module/components/global-styles/screen-text-color.js.map +1 -1
  190. package/build-module/components/global-styles/screen-typography.js +3 -0
  191. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  192. package/build-module/components/global-styles/typography-utils.js +17 -5
  193. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  194. package/build-module/components/global-styles/ui.js +48 -5
  195. package/build-module/components/global-styles/ui.js.map +1 -1
  196. package/build-module/components/global-styles/use-global-styles-output.js +5 -1
  197. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  198. package/build-module/components/global-styles/utils.js +13 -5
  199. package/build-module/components/global-styles/utils.js.map +1 -1
  200. package/build-module/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +4 -7
  201. package/build-module/components/global-styles-renderer/index.js.map +1 -0
  202. package/build-module/components/header-edit-mode/document-actions/index.js +22 -43
  203. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  204. package/build-module/components/header-edit-mode/index.js +16 -11
  205. package/build-module/components/header-edit-mode/index.js.map +1 -1
  206. package/build-module/components/keyboard-shortcuts/index.js +10 -1
  207. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  208. package/build-module/components/layout/index.js +173 -0
  209. package/build-module/components/layout/index.js.map +1 -0
  210. package/build-module/components/list/header.js +5 -1
  211. package/build-module/components/list/header.js.map +1 -1
  212. package/build-module/components/list/index.js +4 -19
  213. package/build-module/components/list/index.js.map +1 -1
  214. package/build-module/components/navigate-to-link/index.js +1 -3
  215. package/build-module/components/navigate-to-link/index.js.map +1 -1
  216. package/build-module/components/routes/index.js +1 -1
  217. package/build-module/components/routes/index.js.map +1 -1
  218. package/build-module/components/sidebar/index.js +33 -0
  219. package/build-module/components/sidebar/index.js.map +1 -0
  220. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +27 -7
  221. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  222. package/build-module/components/sidebar-edit-mode/index.js +6 -4
  223. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  224. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js +11 -1
  225. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +1 -1
  226. package/build-module/components/sidebar-navigation-item/index.js +40 -0
  227. package/build-module/components/sidebar-navigation-item/index.js.map +1 -0
  228. package/build-module/components/sidebar-navigation-screen/index.js +39 -0
  229. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -0
  230. package/build-module/components/sidebar-navigation-screen-main/index.js +32 -0
  231. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -0
  232. package/build-module/components/sidebar-navigation-screen-templates/index.js +147 -0
  233. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -0
  234. package/build-module/components/site-hub/index.js +126 -0
  235. package/build-module/components/site-hub/index.js.map +1 -0
  236. package/build-module/components/site-icon/index.js +55 -0
  237. package/build-module/components/site-icon/index.js.map +1 -0
  238. package/build-module/components/style-book/index.js +156 -0
  239. package/build-module/components/style-book/index.js.map +1 -0
  240. package/build-module/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +4 -3
  241. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -0
  242. package/build-module/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +43 -0
  243. package/build-module/components/sync-state-with-url/use-sync-sidebar-path-with-url.js.map +1 -0
  244. package/build-module/components/use-edited-entity-record/index.js +48 -0
  245. package/build-module/components/use-edited-entity-record/index.js.map +1 -0
  246. package/build-module/hooks/index.js +1 -0
  247. package/build-module/hooks/index.js.map +1 -1
  248. package/build-module/hooks/push-changes-to-global-styles/index.js +132 -0
  249. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -0
  250. package/build-module/index.js +9 -36
  251. package/build-module/index.js.map +1 -1
  252. package/build-module/store/actions.js +87 -42
  253. package/build-module/store/actions.js.map +1 -1
  254. package/build-module/store/reducer.js +35 -102
  255. package/build-module/store/reducer.js.map +1 -1
  256. package/build-module/store/selectors.js +60 -72
  257. package/build-module/store/selectors.js.map +1 -1
  258. package/build-style/style-rtl.css +549 -352
  259. package/build-style/style.css +549 -352
  260. package/package.json +33 -31
  261. package/src/components/add-new-template/add-custom-template-modal.js +1 -0
  262. package/src/components/add-new-template/index.js +6 -3
  263. package/src/components/add-new-template/new-template-part.js +15 -3
  264. package/src/components/add-new-template/new-template.js +14 -7
  265. package/src/components/add-new-template/style.scss +0 -4
  266. package/src/components/app/index.js +14 -43
  267. package/src/components/block-editor/editor-canvas.js +69 -0
  268. package/src/components/block-editor/index.js +100 -87
  269. package/src/components/block-editor/resizable-editor.js +9 -64
  270. package/src/components/block-editor/style.scss +25 -1
  271. package/src/components/code-editor/style.scss +1 -1
  272. package/src/components/editor/index.js +157 -238
  273. package/src/components/editor/style.scss +0 -22
  274. package/src/components/global-styles/block-preview-panel.js +44 -0
  275. package/src/components/global-styles/border-panel.js +0 -1
  276. package/src/components/global-styles/context-menu.js +11 -2
  277. package/src/components/global-styles/custom-css.js +74 -0
  278. package/src/components/global-styles/dimensions-panel.js +2 -5
  279. package/src/components/global-styles/global-styles-provider.js +50 -22
  280. package/src/components/global-styles/hooks.js +8 -3
  281. package/src/components/global-styles/palette.js +1 -1
  282. package/src/components/global-styles/screen-background-color.js +0 -1
  283. package/src/components/global-styles/screen-block-list.js +2 -1
  284. package/src/components/global-styles/screen-block.js +6 -1
  285. package/src/components/global-styles/screen-border.js +25 -0
  286. package/src/components/global-styles/screen-button-color.js +0 -2
  287. package/src/components/global-styles/screen-colors.js +5 -1
  288. package/src/components/global-styles/screen-css.js +33 -0
  289. package/src/components/global-styles/screen-heading-color.js +1 -3
  290. package/src/components/global-styles/screen-layout.js +2 -3
  291. package/src/components/global-styles/screen-link-color.js +0 -1
  292. package/src/components/global-styles/screen-root.js +37 -1
  293. package/src/components/global-styles/screen-style-variations.js +5 -2
  294. package/src/components/global-styles/screen-text-color.js +0 -1
  295. package/src/components/global-styles/screen-typography.js +3 -0
  296. package/src/components/global-styles/style.scss +31 -2
  297. package/src/components/global-styles/test/typography-utils.js +72 -23
  298. package/src/components/global-styles/typography-utils.js +24 -4
  299. package/src/components/global-styles/ui.js +47 -4
  300. package/src/components/global-styles/use-global-styles-output.js +5 -0
  301. package/src/components/global-styles/utils.js +18 -6
  302. package/src/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +3 -9
  303. package/src/components/header-edit-mode/document-actions/index.js +31 -45
  304. package/src/components/header-edit-mode/document-actions/style.scss +8 -1
  305. package/src/components/header-edit-mode/index.js +96 -78
  306. package/src/components/header-edit-mode/style.scss +6 -33
  307. package/src/components/keyboard-shortcuts/index.js +13 -0
  308. package/src/components/layout/index.js +235 -0
  309. package/src/components/layout/style.scss +183 -0
  310. package/src/components/list/header.js +5 -1
  311. package/src/components/list/index.js +12 -31
  312. package/src/components/list/style.scss +3 -4
  313. package/src/components/navigate-to-link/index.js +2 -8
  314. package/src/components/routes/index.js +1 -1
  315. package/src/components/sidebar/index.js +37 -0
  316. package/src/components/sidebar/style.scss +8 -0
  317. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +42 -7
  318. package/src/components/sidebar-edit-mode/index.js +4 -4
  319. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js +10 -0
  320. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/style.scss +21 -3
  321. package/src/components/sidebar-edit-mode/settings-header/style.scss +47 -34
  322. package/src/components/sidebar-edit-mode/style.scss +0 -13
  323. package/src/components/sidebar-navigation-item/index.js +51 -0
  324. package/src/components/sidebar-navigation-item/style.scss +17 -0
  325. package/src/components/sidebar-navigation-screen/index.js +55 -0
  326. package/src/components/sidebar-navigation-screen/style.scss +39 -0
  327. package/src/components/sidebar-navigation-screen-main/index.js +44 -0
  328. package/src/components/sidebar-navigation-screen-templates/index.js +163 -0
  329. package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
  330. package/src/components/site-hub/index.js +150 -0
  331. package/src/components/site-hub/style.scss +31 -0
  332. package/src/components/site-icon/index.js +56 -0
  333. package/src/components/site-icon/style.scss +10 -0
  334. package/src/components/style-book/index.js +193 -0
  335. package/src/components/style-book/style.scss +78 -0
  336. package/src/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +3 -3
  337. package/src/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +36 -0
  338. package/src/components/template-details/style.scss +4 -0
  339. package/src/components/use-edited-entity-record/index.js +37 -0
  340. package/src/hooks/index.js +1 -0
  341. package/src/hooks/push-changes-to-global-styles/index.js +162 -0
  342. package/src/hooks/push-changes-to-global-styles/style.scss +4 -0
  343. package/src/index.js +5 -53
  344. package/src/store/actions.js +93 -48
  345. package/src/store/reducer.js +29 -91
  346. package/src/store/selectors.js +61 -101
  347. package/src/store/test/actions.js +3 -15
  348. package/src/store/test/reducer.js +8 -192
  349. package/src/store/test/selectors.js +3 -42
  350. package/src/style.scss +21 -3
  351. package/build/components/editor/global-styles-renderer.js.map +0 -1
  352. package/build/components/navigation-sidebar/index.js +0 -62
  353. package/build/components/navigation-sidebar/index.js.map +0 -1
  354. package/build/components/navigation-sidebar/navigation-panel/constants.js +0 -77
  355. package/build/components/navigation-sidebar/navigation-panel/constants.js.map +0 -1
  356. package/build/components/navigation-sidebar/navigation-panel/index.js +0 -152
  357. package/build/components/navigation-sidebar/navigation-panel/index.js.map +0 -1
  358. package/build/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -81
  359. package/build/components/navigation-sidebar/navigation-panel/template-hierarchy.js.map +0 -1
  360. package/build/components/navigation-sidebar/navigation-toggle/index.js +0 -124
  361. package/build/components/navigation-sidebar/navigation-toggle/index.js.map +0 -1
  362. package/build/components/url-query-controller/index.js.map +0 -1
  363. package/build-module/components/editor/global-styles-renderer.js.map +0 -1
  364. package/build-module/components/navigation-sidebar/index.js +0 -45
  365. package/build-module/components/navigation-sidebar/index.js.map +0 -1
  366. package/build-module/components/navigation-sidebar/navigation-panel/constants.js +0 -49
  367. package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +0 -1
  368. package/build-module/components/navigation-sidebar/navigation-panel/index.js +0 -131
  369. package/build-module/components/navigation-sidebar/navigation-panel/index.js.map +0 -1
  370. package/build-module/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -66
  371. package/build-module/components/navigation-sidebar/navigation-panel/template-hierarchy.js.map +0 -1
  372. package/build-module/components/navigation-sidebar/navigation-toggle/index.js +0 -108
  373. package/build-module/components/navigation-sidebar/navigation-toggle/index.js.map +0 -1
  374. package/build-module/components/url-query-controller/index.js.map +0 -1
  375. package/src/components/navigation-sidebar/index.js +0 -46
  376. package/src/components/navigation-sidebar/navigation-panel/constants.js +0 -94
  377. package/src/components/navigation-sidebar/navigation-panel/index.js +0 -142
  378. package/src/components/navigation-sidebar/navigation-panel/style.scss +0 -152
  379. package/src/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -81
  380. package/src/components/navigation-sidebar/navigation-toggle/index.js +0 -114
  381. package/src/components/navigation-sidebar/navigation-toggle/style.scss +0 -71
  382. package/src/components/navigation-sidebar/navigation-toggle/test/index.js +0 -65
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-site",
3
- "version": "4.19.0",
3
+ "version": "5.1.0",
4
4
  "description": "Edit Site Page module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -27,47 +27,49 @@
27
27
  "react-native": "src/index",
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.16.0",
30
- "@wordpress/a11y": "^3.22.0",
31
- "@wordpress/api-fetch": "^6.19.0",
32
- "@wordpress/block-editor": "^10.5.0",
33
- "@wordpress/block-library": "^7.19.0",
34
- "@wordpress/blocks": "^11.21.0",
35
- "@wordpress/components": "^22.1.0",
36
- "@wordpress/compose": "^5.20.0",
37
- "@wordpress/core-data": "^5.5.0",
38
- "@wordpress/data": "^7.6.0",
39
- "@wordpress/deprecated": "^3.22.0",
40
- "@wordpress/editor": "^12.21.0",
41
- "@wordpress/element": "^4.20.0",
42
- "@wordpress/hooks": "^3.22.0",
43
- "@wordpress/html-entities": "^3.22.0",
44
- "@wordpress/i18n": "^4.22.0",
45
- "@wordpress/icons": "^9.13.0",
46
- "@wordpress/interface": "^4.21.0",
47
- "@wordpress/keyboard-shortcuts": "^3.20.0",
48
- "@wordpress/keycodes": "^3.22.0",
49
- "@wordpress/media-utils": "^4.13.0",
50
- "@wordpress/notices": "^3.22.0",
51
- "@wordpress/plugins": "^4.20.0",
52
- "@wordpress/preferences": "^2.14.0",
53
- "@wordpress/reusable-blocks": "^3.20.0",
54
- "@wordpress/style-engine": "^1.5.0",
55
- "@wordpress/url": "^3.23.0",
56
- "@wordpress/viewport": "^4.20.0",
30
+ "@wordpress/a11y": "^3.24.0",
31
+ "@wordpress/api-fetch": "^6.21.0",
32
+ "@wordpress/block-editor": "^11.1.0",
33
+ "@wordpress/block-library": "^8.1.0",
34
+ "@wordpress/blocks": "^12.1.0",
35
+ "@wordpress/components": "^23.1.0",
36
+ "@wordpress/compose": "^6.1.0",
37
+ "@wordpress/core-data": "^6.1.0",
38
+ "@wordpress/data": "^8.1.0",
39
+ "@wordpress/deprecated": "^3.24.0",
40
+ "@wordpress/editor": "^13.1.0",
41
+ "@wordpress/element": "^5.1.0",
42
+ "@wordpress/hooks": "^3.24.0",
43
+ "@wordpress/html-entities": "^3.24.0",
44
+ "@wordpress/i18n": "^4.24.0",
45
+ "@wordpress/icons": "^9.15.0",
46
+ "@wordpress/interface": "^5.1.0",
47
+ "@wordpress/keyboard-shortcuts": "^4.1.0",
48
+ "@wordpress/keycodes": "^3.24.0",
49
+ "@wordpress/media-utils": "^4.15.0",
50
+ "@wordpress/notices": "^3.24.0",
51
+ "@wordpress/plugins": "^5.1.0",
52
+ "@wordpress/preferences": "^3.1.0",
53
+ "@wordpress/reusable-blocks": "^4.1.0",
54
+ "@wordpress/style-engine": "^1.7.0",
55
+ "@wordpress/url": "^3.25.0",
56
+ "@wordpress/viewport": "^5.1.0",
57
+ "@wordpress/widgets": "^3.1.0",
57
58
  "classnames": "^2.3.1",
58
59
  "colord": "^2.9.2",
59
60
  "downloadjs": "^1.4.7",
61
+ "fast-deep-equal": "^3.1.3",
60
62
  "history": "^5.1.0",
61
63
  "lodash": "^4.17.21",
62
64
  "react-autosize-textarea": "^7.1.0",
63
65
  "rememo": "^4.0.0"
64
66
  },
65
67
  "peerDependencies": {
66
- "react": "^17.0.0",
67
- "react-dom": "^17.0.0"
68
+ "react": "^18.0.0",
69
+ "react-dom": "^18.0.0"
68
70
  },
69
71
  "publishConfig": {
70
72
  "access": "public"
71
73
  },
72
- "gitHead": "7ac04f446242452d3cb24372f9ca58f0cae97715"
74
+ "gitHead": "200bee7b06b15f6fa655e25b6ab69cbd6b49a357"
73
75
  }
@@ -131,6 +131,7 @@ function SuggestionList( { entityForSuggestions, onSelect } ) {
131
131
  <>
132
132
  { showSearchControl && (
133
133
  <SearchControl
134
+ __nextHasNoMarginBottom
134
135
  onChange={ setSearch }
135
136
  value={ search }
136
137
  label={ labels.search_items }
@@ -10,7 +10,10 @@ import { store as coreStore } from '@wordpress/core-data';
10
10
  import NewTemplate from './new-template';
11
11
  import NewTemplatePart from './new-template-part';
12
12
 
13
- export default function AddNewTemplate( { templateType = 'wp_template' } ) {
13
+ export default function AddNewTemplate( {
14
+ templateType = 'wp_template',
15
+ ...props
16
+ } ) {
14
17
  const postType = useSelect(
15
18
  ( select ) => select( coreStore ).getPostType( templateType ),
16
19
  [ templateType ]
@@ -21,9 +24,9 @@ export default function AddNewTemplate( { templateType = 'wp_template' } ) {
21
24
  }
22
25
 
23
26
  if ( templateType === 'wp_template' ) {
24
- return <NewTemplate postType={ postType } />;
27
+ return <NewTemplate { ...props } postType={ postType } />;
25
28
  } else if ( templateType === 'wp_template_part' ) {
26
- return <NewTemplatePart postType={ postType } />;
29
+ return <NewTemplatePart { ...props } postType={ postType } />;
27
30
  }
28
31
 
29
32
  return null;
@@ -12,18 +12,25 @@ import { Button } from '@wordpress/components';
12
12
  import { __ } from '@wordpress/i18n';
13
13
  import { store as noticesStore } from '@wordpress/notices';
14
14
  import { store as coreStore } from '@wordpress/core-data';
15
+ import { plus } from '@wordpress/icons';
15
16
 
16
17
  /**
17
18
  * Internal dependencies
18
19
  */
19
20
  import { useHistory } from '../routes';
21
+ import { store as editSiteStore } from '../../store';
20
22
  import CreateTemplatePartModal from '../create-template-part-modal';
21
23
 
22
- export default function NewTemplatePart( { postType } ) {
24
+ export default function NewTemplatePart( {
25
+ postType,
26
+ showIcon = true,
27
+ toggleProps,
28
+ } ) {
23
29
  const history = useHistory();
24
30
  const [ isModalOpen, setIsModalOpen ] = useState( false );
25
31
  const { createErrorNotice } = useDispatch( noticesStore );
26
32
  const { saveEntityRecord } = useDispatch( coreStore );
33
+ const { __unstableSetCanvasMode } = useDispatch( editSiteStore );
27
34
 
28
35
  async function createTemplatePart( { title, area } ) {
29
36
  if ( ! title ) {
@@ -54,6 +61,9 @@ export default function NewTemplatePart( { postType } ) {
54
61
 
55
62
  setIsModalOpen( false );
56
63
 
64
+ // Switch to edit mode.
65
+ __unstableSetCanvasMode( 'edit' );
66
+
57
67
  // Navigate to the created template part editor.
58
68
  history.push( {
59
69
  postId: templatePart.id,
@@ -78,12 +88,14 @@ export default function NewTemplatePart( { postType } ) {
78
88
  return (
79
89
  <>
80
90
  <Button
81
- variant="primary"
91
+ { ...toggleProps }
82
92
  onClick={ () => {
83
93
  setIsModalOpen( true );
84
94
  } }
95
+ icon={ showIcon ? plus : null }
96
+ label={ postType.labels.add_new }
85
97
  >
86
- { postType.labels.add_new }
98
+ { showIcon ? null : postType.labels.add_new }
87
99
  </Button>
88
100
  { isModalOpen && (
89
101
  <CreateTemplatePartModal
@@ -21,6 +21,7 @@ import {
21
21
  media,
22
22
  notFound,
23
23
  page,
24
+ plus,
24
25
  post,
25
26
  postAuthor,
26
27
  postDate,
@@ -79,7 +80,11 @@ const TEMPLATE_ICONS = {
79
80
  attachment: media,
80
81
  };
81
82
 
82
- export default function NewTemplate( { postType } ) {
83
+ export default function NewTemplate( {
84
+ postType,
85
+ toggleProps,
86
+ showIcon = true,
87
+ } ) {
83
88
  const [ showCustomTemplateModal, setShowCustomTemplateModal ] =
84
89
  useState( false );
85
90
  const [
@@ -93,7 +98,8 @@ export default function NewTemplate( { postType } ) {
93
98
  const { saveEntityRecord } = useDispatch( coreStore );
94
99
  const { createErrorNotice, createSuccessNotice } =
95
100
  useDispatch( noticesStore );
96
- const { setTemplate } = useDispatch( editSiteStore );
101
+ const { setTemplate, __unstableSetCanvasMode } =
102
+ useDispatch( editSiteStore );
97
103
 
98
104
  async function createTemplate( template, isWPSuggestion = true ) {
99
105
  if ( isCreatingTemplate ) {
@@ -133,6 +139,9 @@ export default function NewTemplate( { postType } ) {
133
139
  // Set template before navigating away to avoid initial stale value.
134
140
  setTemplate( newTemplate.id, newTemplate.slug );
135
141
 
142
+ // Switch to edit mode.
143
+ __unstableSetCanvasMode( 'edit' );
144
+
136
145
  // Navigate to the created template editor.
137
146
  history.push( {
138
147
  postId: newTemplate.id,
@@ -173,15 +182,13 @@ export default function NewTemplate( { postType } ) {
173
182
  <>
174
183
  <DropdownMenu
175
184
  className="edit-site-new-template-dropdown"
176
- icon={ null }
177
- text={ postType.labels.add_new }
185
+ icon={ showIcon ? plus : null }
186
+ text={ showIcon ? null : postType.labels.add_new }
178
187
  label={ postType.labels.add_new_item }
179
188
  popoverProps={ {
180
189
  noArrow: false,
181
190
  } }
182
- toggleProps={ {
183
- variant: 'primary',
184
- } }
191
+ toggleProps={ toggleProps }
185
192
  >
186
193
  { () => (
187
194
  <>
@@ -1,8 +1,4 @@
1
1
  .edit-site-new-template-dropdown {
2
- .components-dropdown-menu__toggle {
3
- padding: 6px 12px;
4
- }
5
-
6
2
  .edit-site-new-template-dropdown__popover {
7
3
  @include break-small() {
8
4
  min-width: 300px;
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { SlotFillProvider } from '@wordpress/components';
4
+ import { SlotFillProvider, Popover } from '@wordpress/components';
5
5
  import { UnsavedChangesWarning } from '@wordpress/editor';
6
+ import { ShortcutProvider } from '@wordpress/keyboard-shortcuts';
6
7
  import { store as noticesStore } from '@wordpress/notices';
7
8
  import { useDispatch } from '@wordpress/data';
8
9
  import { __, sprintf } from '@wordpress/i18n';
@@ -12,12 +13,9 @@ import { PluginArea } from '@wordpress/plugins';
12
13
  * Internal dependencies
13
14
  */
14
15
  import { Routes } from '../routes';
15
- import Editor from '../editor';
16
- import List from '../list';
17
- import NavigationSidebar from '../navigation-sidebar';
18
- import getIsListPage from '../../utils/get-is-list-page';
16
+ import Layout from '../layout';
19
17
 
20
- export default function EditSiteApp( { reboot, homeTemplate } ) {
18
+ export default function App( { reboot } ) {
21
19
  const { createErrorNotice } = useDispatch( noticesStore );
22
20
 
23
21
  function onPluginAreaError( name ) {
@@ -33,43 +31,16 @@ export default function EditSiteApp( { reboot, homeTemplate } ) {
33
31
  }
34
32
 
35
33
  return (
36
- <SlotFillProvider>
37
- <UnsavedChangesWarning />
34
+ <ShortcutProvider style={ { height: '100%' } }>
35
+ <SlotFillProvider>
36
+ <Popover.Slot />
37
+ <UnsavedChangesWarning />
38
38
 
39
- <Routes>
40
- { ( { params } ) => {
41
- const isListPage = getIsListPage( params );
42
-
43
- // The existence of a 'front-page' supersedes every other setting.
44
- const homeTemplateType =
45
- params.postId?.includes( 'front-page' ) ||
46
- params.postId === homeTemplate?.postId
47
- ? 'site-editor'
48
- : undefined;
49
-
50
- return (
51
- <>
52
- { isListPage ? (
53
- <List />
54
- ) : (
55
- <Editor onError={ reboot } />
56
- ) }
57
- <PluginArea onError={ onPluginAreaError } />
58
- { /* Keep the instance of the sidebar to ensure focus will not be lost
59
- * when navigating to other pages. */ }
60
- <NavigationSidebar
61
- // Open the navigation sidebar by default when in the list page.
62
- isDefaultOpen={ !! isListPage }
63
- activeTemplateType={
64
- isListPage
65
- ? params.postType
66
- : homeTemplateType
67
- }
68
- />
69
- </>
70
- );
71
- } }
72
- </Routes>
73
- </SlotFillProvider>
39
+ <Routes>
40
+ <Layout onError={ reboot } />
41
+ <PluginArea onError={ onPluginAreaError } />
42
+ </Routes>
43
+ </SlotFillProvider>
44
+ </ShortcutProvider>
74
45
  );
75
46
  }
@@ -0,0 +1,69 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import {
5
+ __experimentalUseResizeCanvas as useResizeCanvas,
6
+ __unstableEditorStyles as EditorStyles,
7
+ __unstableIframe as Iframe,
8
+ __unstableUseMouseMoveTypingReset as useMouseMoveTypingReset,
9
+ store as blockEditorStore,
10
+ } from '@wordpress/block-editor';
11
+ import { useSelect } from '@wordpress/data';
12
+
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+ import { store as editSiteStore } from '../../store';
17
+
18
+ function EditorCanvas( { enableResizing, settings, children, ...props } ) {
19
+ const { deviceType, isZoomOutMode } = useSelect(
20
+ ( select ) => ( {
21
+ deviceType:
22
+ select( editSiteStore ).__experimentalGetPreviewDeviceType(),
23
+ isZoomOutMode:
24
+ select( blockEditorStore ).__unstableGetEditorMode() ===
25
+ 'zoom-out',
26
+ } ),
27
+ []
28
+ );
29
+ const deviceStyles = useResizeCanvas( deviceType );
30
+ const mouseMoveTypingRef = useMouseMoveTypingReset();
31
+ return (
32
+ <Iframe
33
+ scale={ ( isZoomOutMode && 0.45 ) || undefined }
34
+ frameSize={ isZoomOutMode ? 100 : undefined }
35
+ style={ enableResizing ? {} : deviceStyles }
36
+ head={
37
+ <>
38
+ <EditorStyles styles={ settings.styles } />
39
+ <style>{
40
+ // Forming a "block formatting context" to prevent margin collapsing.
41
+ // @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context
42
+ `.is-root-container { display: flow-root; }
43
+ body { position: relative; }`
44
+ }</style>
45
+ { enableResizing && (
46
+ <style>
47
+ {
48
+ // Some themes will have `min-height: 100vh` for the root container,
49
+ // which isn't a requirement in auto resize mode.
50
+ `.is-root-container { min-height: 0 !important; }`
51
+ }
52
+ </style>
53
+ ) }
54
+ </>
55
+ }
56
+ assets={ settings.__unstableResolvedAssets }
57
+ ref={ mouseMoveTypingRef }
58
+ name="editor-canvas"
59
+ className="edit-site-visual-editor__editor-canvas"
60
+ { ...props }
61
+ >
62
+ { /* Filters need to be rendered before children to avoid Safari rendering issues. */ }
63
+ { settings.svgFilters }
64
+ { children }
65
+ </Iframe>
66
+ );
67
+ }
68
+
69
+ export default EditorCanvas;
@@ -8,7 +8,11 @@ import classnames from 'classnames';
8
8
  */
9
9
  import { useSelect, useDispatch } from '@wordpress/data';
10
10
  import { useCallback, useMemo, useRef, Fragment } from '@wordpress/element';
11
- import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';
11
+ import {
12
+ useEntityBlockEditor,
13
+ __experimentalFetchMedia as fetchMedia,
14
+ store as coreStore,
15
+ } from '@wordpress/core-data';
12
16
  import {
13
17
  BlockList,
14
18
  BlockEditorProvider,
@@ -22,12 +26,15 @@ import {
22
26
  store as blockEditorStore,
23
27
  __unstableBlockNameContext,
24
28
  } from '@wordpress/block-editor';
25
- import { useMergeRefs, useViewportMatch } from '@wordpress/compose';
29
+ import {
30
+ useMergeRefs,
31
+ useViewportMatch,
32
+ useResizeObserver,
33
+ } from '@wordpress/compose';
26
34
  import { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';
27
35
  import { listView } from '@wordpress/icons';
28
36
  import { ToolbarButton, ToolbarGroup } from '@wordpress/components';
29
37
  import { __ } from '@wordpress/i18n';
30
- import { store as interfaceStore } from '@wordpress/interface';
31
38
 
32
39
  /**
33
40
  * Internal dependencies
@@ -39,6 +46,8 @@ import { store as editSiteStore } from '../../store';
39
46
  import BlockInspectorButton from './block-inspector-button';
40
47
  import BackButton from './back-button';
41
48
  import ResizableEditor from './resizable-editor';
49
+ import EditorCanvas from './editor-canvas';
50
+ import StyleBook from '../style-book';
42
51
 
43
52
  const LAYOUT = {
44
53
  type: 'default',
@@ -46,29 +55,16 @@ const LAYOUT = {
46
55
  alignments: [],
47
56
  };
48
57
 
49
- const NAVIGATION_SIDEBAR_NAME = 'edit-site/navigation-menu';
50
-
51
58
  export default function BlockEditor( { setIsInserterOpen } ) {
52
- const {
53
- storedSettings,
54
- templateType,
55
- templateId,
56
- page,
57
- isNavigationSidebarOpen,
58
- } = useSelect(
59
+ const { storedSettings, templateType, canvasMode } = useSelect(
59
60
  ( select ) => {
60
- const { getSettings, getEditedPostType, getEditedPostId, getPage } =
61
+ const { getSettings, getEditedPostType, __unstableGetCanvasMode } =
61
62
  select( editSiteStore );
62
63
 
63
64
  return {
64
65
  storedSettings: getSettings( setIsInserterOpen ),
65
66
  templateType: getEditedPostType(),
66
- templateId: getEditedPostId(),
67
- page: getPage(),
68
- isNavigationSidebarOpen:
69
- select( interfaceStore ).getActiveComplementaryArea(
70
- editSiteStore.name
71
- ) === NAVIGATION_SIDEBAR_NAME,
67
+ canvasMode: __unstableGetCanvasMode(),
72
68
  };
73
69
  },
74
70
  [ setIsInserterOpen ]
@@ -131,6 +127,7 @@ export default function BlockEditor( { setIsInserterOpen } ) {
131
127
 
132
128
  return {
133
129
  ...restStoredSettings,
130
+ __unstableFetchMedia: fetchMedia,
134
131
  __experimentalBlockPatterns: blockPatterns,
135
132
  __experimentalBlockPatternCategories: blockPatternCategories,
136
133
  };
@@ -141,44 +138,48 @@ export default function BlockEditor( { setIsInserterOpen } ) {
141
138
  templateType
142
139
  );
143
140
  const { setPage } = useDispatch( editSiteStore );
144
- const { enableComplementaryArea, disableComplementaryArea } =
145
- useDispatch( interfaceStore );
146
- const toggleNavigationSidebar = useCallback( () => {
147
- const toggleComplementaryArea = isNavigationSidebarOpen
148
- ? disableComplementaryArea
149
- : enableComplementaryArea;
150
- toggleComplementaryArea( editSiteStore.name, NAVIGATION_SIDEBAR_NAME );
151
- }, [ isNavigationSidebarOpen ] );
141
+
152
142
  const contentRef = useRef();
153
143
  const mergedRefs = useMergeRefs( [ contentRef, useTypingObserver() ] );
154
144
  const isMobileViewport = useViewportMatch( 'small', '<' );
155
145
  const { clearSelectedBlock } = useDispatch( blockEditorStore );
146
+ const [ resizeObserver, sizes ] = useResizeObserver();
156
147
 
157
148
  const isTemplatePart = templateType === 'wp_template_part';
158
149
  const hasBlocks = blocks.length !== 0;
150
+ const enableResizing =
151
+ isTemplatePart &&
152
+ canvasMode !== 'view' &&
153
+ // Disable resizing in mobile viewport.
154
+ ! isMobileViewport;
155
+ const isViewMode = canvasMode === 'view';
156
+ const showBlockAppender =
157
+ ( isTemplatePart && hasBlocks ) || isViewMode ? false : undefined;
158
+
159
+ // eslint-disable-next-line @wordpress/data-no-store-string-literals
160
+ const { enableComplementaryArea } = useDispatch( 'core/interface' );
159
161
 
160
162
  const NavMenuSidebarToggle = () => (
161
163
  <ToolbarGroup>
162
164
  <ToolbarButton
163
165
  className="components-toolbar__control"
164
- label={
165
- isNavigationSidebarOpen
166
- ? __( 'Close list view' )
167
- : __( 'Open list view' )
166
+ label={ __( 'Open navigation list view' ) }
167
+ onClick={ () =>
168
+ enableComplementaryArea(
169
+ 'core/edit-site',
170
+ 'edit-site/block-inspector'
171
+ )
168
172
  }
169
- onClick={ toggleNavigationSidebar }
170
173
  icon={ listView }
171
- isActive={ isNavigationSidebarOpen }
172
174
  />
173
175
  </ToolbarGroup>
174
176
  );
175
177
 
176
- // Conditionally include NavMenu sidebar in Plugin only.
177
- // Optimise for dead code elimination.
178
- // See https://github.com/WordPress/gutenberg/blob/trunk/docs/how-to-guides/feature-flags.md#dead-code-elimination.
179
178
  let MaybeNavMenuSidebarToggle = Fragment;
179
+ const isOffCanvasNavigationEditorEnabled =
180
+ window?.__experimentalEnableOffCanvasNavigationEditor === true;
180
181
 
181
- if ( process.env.IS_GUTENBERG_PLUGIN ) {
182
+ if ( isOffCanvasNavigationEditorEnabled ) {
182
183
  MaybeNavMenuSidebarToggle = NavMenuSidebarToggle;
183
184
  }
184
185
 
@@ -196,64 +197,76 @@ export default function BlockEditor( { setIsInserterOpen } ) {
196
197
  ( fillProps ) => (
197
198
  <NavigateToLink
198
199
  { ...fillProps }
199
- activePage={ page }
200
200
  onActivePageChange={ setPage }
201
201
  />
202
202
  ),
203
- [ page ]
203
+ []
204
204
  ) }
205
205
  </__experimentalLinkControl.ViewerFill>
206
206
  <SidebarInspectorFill>
207
207
  <BlockInspector />
208
208
  </SidebarInspectorFill>
209
- <BlockTools
210
- className={ classnames( 'edit-site-visual-editor', {
211
- 'is-focus-mode': isTemplatePart,
212
- } ) }
213
- __unstableContentRef={ contentRef }
214
- onClick={ ( event ) => {
215
- // Clear selected block when clicking on the gray background.
216
- if ( event.target === event.currentTarget ) {
217
- clearSelectedBlock();
218
- }
219
- } }
220
- >
221
- <BlockEditorKeyboardShortcuts.Register />
222
- <BackButton />
223
- <ResizableEditor
224
- // Reinitialize the editor and reset the states when the template changes.
225
- key={ templateId }
226
- enableResizing={
227
- isTemplatePart &&
228
- // Disable resizing in mobile viewport.
229
- ! isMobileViewport
230
- }
231
- settings={ settings }
232
- contentRef={ mergedRefs }
233
- >
234
- <BlockList
235
- className="edit-site-block-editor__block-list wp-site-blocks"
236
- __experimentalLayout={ LAYOUT }
237
- renderAppender={
238
- isTemplatePart && hasBlocks ? false : undefined
239
- }
240
- />
241
- </ResizableEditor>
242
- <__unstableBlockSettingsMenuFirstItem>
243
- { ( { onClose } ) => (
244
- <BlockInspectorButton onClick={ onClose } />
245
- ) }
246
- </__unstableBlockSettingsMenuFirstItem>
247
- <__unstableBlockToolbarLastItem>
248
- <__unstableBlockNameContext.Consumer>
249
- { ( blockName ) =>
250
- blockName === 'core/navigation' && (
251
- <MaybeNavMenuSidebarToggle />
252
- )
253
- }
254
- </__unstableBlockNameContext.Consumer>
255
- </__unstableBlockToolbarLastItem>
256
- </BlockTools>
209
+ { /* Potentially this could be a generic slot (e.g. EditorCanvas.Slot) if there are other uses for it. */ }
210
+ <StyleBook.Slot>
211
+ { ( [ styleBook ] ) =>
212
+ styleBook ? (
213
+ <div className="edit-site-visual-editor is-focus-mode">
214
+ <ResizableEditor enableResizing>
215
+ { styleBook }
216
+ </ResizableEditor>
217
+ </div>
218
+ ) : (
219
+ <BlockTools
220
+ className={ classnames( 'edit-site-visual-editor', {
221
+ 'is-focus-mode': isTemplatePart || !! styleBook,
222
+ 'is-view-mode': isViewMode,
223
+ } ) }
224
+ __unstableContentRef={ contentRef }
225
+ onClick={ ( event ) => {
226
+ // Clear selected block when clicking on the gray background.
227
+ if ( event.target === event.currentTarget ) {
228
+ clearSelectedBlock();
229
+ }
230
+ } }
231
+ >
232
+ <BlockEditorKeyboardShortcuts.Register />
233
+ <BackButton />
234
+ <ResizableEditor
235
+ enableResizing={ enableResizing }
236
+ height={ sizes.height }
237
+ >
238
+ <EditorCanvas
239
+ enableResizing={ enableResizing }
240
+ settings={ settings }
241
+ contentRef={ mergedRefs }
242
+ readonly={ canvasMode === 'view' }
243
+ >
244
+ { resizeObserver }
245
+ <BlockList
246
+ className="edit-site-block-editor__block-list wp-site-blocks"
247
+ __experimentalLayout={ LAYOUT }
248
+ renderAppender={ showBlockAppender }
249
+ />
250
+ </EditorCanvas>
251
+ </ResizableEditor>
252
+ <__unstableBlockSettingsMenuFirstItem>
253
+ { ( { onClose } ) => (
254
+ <BlockInspectorButton onClick={ onClose } />
255
+ ) }
256
+ </__unstableBlockSettingsMenuFirstItem>
257
+ <__unstableBlockToolbarLastItem>
258
+ <__unstableBlockNameContext.Consumer>
259
+ { ( blockName ) =>
260
+ blockName === 'core/navigation' && (
261
+ <MaybeNavMenuSidebarToggle />
262
+ )
263
+ }
264
+ </__unstableBlockNameContext.Consumer>
265
+ </__unstableBlockToolbarLastItem>
266
+ </BlockTools>
267
+ )
268
+ }
269
+ </StyleBook.Slot>
257
270
  <ReusableBlocksMenuItems />
258
271
  </BlockEditorProvider>
259
272
  );