@wordpress/edit-site 4.19.0 → 5.0.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 (319) hide show
  1. package/CHANGELOG.md +6 -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 +61 -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 +80 -127
  19. package/build/components/editor/index.js.map +1 -1
  20. package/build/components/global-styles/block-preview-panel.js +42 -0
  21. package/build/components/global-styles/block-preview-panel.js.map +1 -0
  22. package/build/components/global-styles/context-menu.js +6 -2
  23. package/build/components/global-styles/context-menu.js.map +1 -1
  24. package/build/components/global-styles/custom-css.js +61 -0
  25. package/build/components/global-styles/custom-css.js.map +1 -0
  26. package/build/components/global-styles/dimensions-panel.js +2 -6
  27. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  28. package/build/components/global-styles/global-styles-provider.js +15 -2
  29. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  30. package/build/components/global-styles/hooks.js +5 -2
  31. package/build/components/global-styles/hooks.js.map +1 -1
  32. package/build/components/global-styles/palette.js +1 -1
  33. package/build/components/global-styles/palette.js.map +1 -1
  34. package/build/components/global-styles/screen-block-list.js +2 -1
  35. package/build/components/global-styles/screen-block-list.js.map +1 -1
  36. package/build/components/global-styles/screen-block.js +10 -2
  37. package/build/components/global-styles/screen-block.js.map +1 -1
  38. package/build/components/global-styles/screen-border.js +43 -0
  39. package/build/components/global-styles/screen-border.js.map +1 -0
  40. package/build/components/global-styles/screen-colors.js +1 -1
  41. package/build/components/global-styles/screen-colors.js.map +1 -1
  42. package/build/components/global-styles/screen-css.js +42 -0
  43. package/build/components/global-styles/screen-css.js.map +1 -0
  44. package/build/components/global-styles/screen-layout.js +0 -5
  45. package/build/components/global-styles/screen-layout.js.map +1 -1
  46. package/build/components/global-styles/screen-root.js +14 -1
  47. package/build/components/global-styles/screen-root.js.map +1 -1
  48. package/build/components/global-styles/screen-style-variations.js +3 -3
  49. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  50. package/build/components/global-styles/ui.js +50 -4
  51. package/build/components/global-styles/ui.js.map +1 -1
  52. package/build/components/global-styles/use-global-styles-output.js +5 -1
  53. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  54. package/build/components/global-styles/utils.js +3 -3
  55. package/build/components/global-styles/utils.js.map +1 -1
  56. package/build/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +4 -8
  57. package/build/components/global-styles-renderer/index.js.map +1 -0
  58. package/build/components/header-edit-mode/document-actions/index.js +12 -5
  59. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  60. package/build/components/header-edit-mode/index.js +19 -12
  61. package/build/components/header-edit-mode/index.js.map +1 -1
  62. package/build/components/keyboard-shortcuts/index.js +11 -1
  63. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  64. package/build/components/layout/index.js +231 -0
  65. package/build/components/layout/index.js.map +1 -0
  66. package/build/components/list/header.js +5 -1
  67. package/build/components/list/header.js.map +1 -1
  68. package/build/components/list/index.js +4 -22
  69. package/build/components/list/index.js.map +1 -1
  70. package/build/components/navigate-to-link/index.js +1 -3
  71. package/build/components/navigate-to-link/index.js.map +1 -1
  72. package/build/components/routes/index.js +1 -1
  73. package/build/components/routes/index.js.map +1 -1
  74. package/build/components/sidebar/index.js +42 -0
  75. package/build/components/sidebar/index.js.map +1 -0
  76. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +24 -4
  77. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  78. package/build/components/sidebar-edit-mode/index.js +1 -1
  79. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  80. package/build/components/sidebar-navigation-item/index.js +53 -0
  81. package/build/components/sidebar-navigation-item/index.js.map +1 -0
  82. package/build/components/sidebar-navigation-screen/index.js +49 -0
  83. package/build/components/sidebar-navigation-screen/index.js.map +1 -0
  84. package/build/components/sidebar-navigation-screen-main/index.js +76 -0
  85. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -0
  86. package/build/components/sidebar-navigation-screen-templates/index.js +188 -0
  87. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -0
  88. package/build/components/site-icon/index.js +70 -0
  89. package/build/components/site-icon/index.js.map +1 -0
  90. package/build/components/site-title/index.js +55 -0
  91. package/build/components/site-title/index.js.map +1 -0
  92. package/build/components/style-book/index.js +173 -0
  93. package/build/components/style-book/index.js.map +1 -0
  94. package/build/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +5 -4
  95. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -0
  96. package/build/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +53 -0
  97. package/build/components/sync-state-with-url/use-sync-sidebar-path-with-url.js.map +1 -0
  98. package/build/index.js +2 -45
  99. package/build/index.js.map +1 -1
  100. package/build/store/actions.js +93 -43
  101. package/build/store/actions.js.map +1 -1
  102. package/build/store/reducer.js +35 -107
  103. package/build/store/reducer.js.map +1 -1
  104. package/build/store/selectors.js +69 -78
  105. package/build/store/selectors.js.map +1 -1
  106. package/build-module/components/add-new-template/add-custom-template-modal.js +1 -0
  107. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  108. package/build-module/components/add-new-template/index.js +7 -5
  109. package/build-module/components/add-new-template/index.js.map +1 -1
  110. package/build-module/components/add-new-template/new-template-part.js +18 -6
  111. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  112. package/build-module/components/add-new-template/new-template.js +13 -9
  113. package/build-module/components/add-new-template/new-template.js.map +1 -1
  114. package/build-module/components/app/index.js +15 -28
  115. package/build-module/components/app/index.js.map +1 -1
  116. package/build-module/components/block-editor/editor-canvas.js +51 -0
  117. package/build-module/components/block-editor/editor-canvas.js.map +1 -0
  118. package/build-module/components/block-editor/index.js +61 -60
  119. package/build-module/components/block-editor/index.js.map +1 -1
  120. package/build-module/components/block-editor/resizable-editor.js +11 -40
  121. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  122. package/build-module/components/editor/index.js +81 -124
  123. package/build-module/components/editor/index.js.map +1 -1
  124. package/build-module/components/global-styles/block-preview-panel.js +32 -0
  125. package/build-module/components/global-styles/block-preview-panel.js.map +1 -0
  126. package/build-module/components/global-styles/context-menu.js +7 -3
  127. package/build-module/components/global-styles/context-menu.js.map +1 -1
  128. package/build-module/components/global-styles/custom-css.js +51 -0
  129. package/build-module/components/global-styles/custom-css.js.map +1 -0
  130. package/build-module/components/global-styles/dimensions-panel.js +3 -7
  131. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  132. package/build-module/components/global-styles/global-styles-provider.js +15 -2
  133. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  134. package/build-module/components/global-styles/hooks.js +5 -3
  135. package/build-module/components/global-styles/hooks.js.map +1 -1
  136. package/build-module/components/global-styles/palette.js +1 -1
  137. package/build-module/components/global-styles/palette.js.map +1 -1
  138. package/build-module/components/global-styles/screen-block-list.js +2 -1
  139. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  140. package/build-module/components/global-styles/screen-block.js +8 -2
  141. package/build-module/components/global-styles/screen-block.js.map +1 -1
  142. package/build-module/components/global-styles/screen-border.js +27 -0
  143. package/build-module/components/global-styles/screen-border.js.map +1 -0
  144. package/build-module/components/global-styles/screen-colors.js +1 -1
  145. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  146. package/build-module/components/global-styles/screen-css.js +28 -0
  147. package/build-module/components/global-styles/screen-css.js.map +1 -0
  148. package/build-module/components/global-styles/screen-layout.js +0 -4
  149. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  150. package/build-module/components/global-styles/screen-root.js +14 -1
  151. package/build-module/components/global-styles/screen-root.js.map +1 -1
  152. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  153. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  154. package/build-module/components/global-styles/ui.js +48 -5
  155. package/build-module/components/global-styles/ui.js.map +1 -1
  156. package/build-module/components/global-styles/use-global-styles-output.js +5 -1
  157. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  158. package/build-module/components/global-styles/utils.js +4 -4
  159. package/build-module/components/global-styles/utils.js.map +1 -1
  160. package/build-module/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +4 -7
  161. package/build-module/components/global-styles-renderer/index.js.map +1 -0
  162. package/build-module/components/header-edit-mode/document-actions/index.js +13 -6
  163. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  164. package/build-module/components/header-edit-mode/index.js +16 -11
  165. package/build-module/components/header-edit-mode/index.js.map +1 -1
  166. package/build-module/components/keyboard-shortcuts/index.js +10 -1
  167. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  168. package/build-module/components/layout/index.js +203 -0
  169. package/build-module/components/layout/index.js.map +1 -0
  170. package/build-module/components/list/header.js +5 -1
  171. package/build-module/components/list/header.js.map +1 -1
  172. package/build-module/components/list/index.js +4 -19
  173. package/build-module/components/list/index.js.map +1 -1
  174. package/build-module/components/navigate-to-link/index.js +1 -3
  175. package/build-module/components/navigate-to-link/index.js.map +1 -1
  176. package/build-module/components/routes/index.js +1 -1
  177. package/build-module/components/routes/index.js.map +1 -1
  178. package/build-module/components/sidebar/index.js +30 -0
  179. package/build-module/components/sidebar/index.js.map +1 -0
  180. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +27 -7
  181. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  182. package/build-module/components/sidebar-edit-mode/index.js +3 -3
  183. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  184. package/build-module/components/sidebar-navigation-item/index.js +40 -0
  185. package/build-module/components/sidebar-navigation-item/index.js.map +1 -0
  186. package/build-module/components/sidebar-navigation-screen/index.js +39 -0
  187. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -0
  188. package/build-module/components/sidebar-navigation-screen-main/index.js +57 -0
  189. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -0
  190. package/build-module/components/sidebar-navigation-screen-templates/index.js +165 -0
  191. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -0
  192. package/build-module/components/site-icon/index.js +55 -0
  193. package/build-module/components/site-icon/index.js.map +1 -0
  194. package/build-module/components/site-title/index.js +43 -0
  195. package/build-module/components/site-title/index.js.map +1 -0
  196. package/build-module/components/style-book/index.js +156 -0
  197. package/build-module/components/style-book/index.js.map +1 -0
  198. package/build-module/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +4 -3
  199. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -0
  200. package/build-module/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +43 -0
  201. package/build-module/components/sync-state-with-url/use-sync-sidebar-path-with-url.js.map +1 -0
  202. package/build-module/index.js +5 -36
  203. package/build-module/index.js.map +1 -1
  204. package/build-module/store/actions.js +87 -42
  205. package/build-module/store/actions.js.map +1 -1
  206. package/build-module/store/reducer.js +35 -102
  207. package/build-module/store/reducer.js.map +1 -1
  208. package/build-module/store/selectors.js +60 -72
  209. package/build-module/store/selectors.js.map +1 -1
  210. package/build-style/style-rtl.css +550 -346
  211. package/build-style/style.css +550 -346
  212. package/package.json +32 -31
  213. package/src/components/add-new-template/add-custom-template-modal.js +1 -0
  214. package/src/components/add-new-template/index.js +6 -3
  215. package/src/components/add-new-template/new-template-part.js +15 -3
  216. package/src/components/add-new-template/new-template.js +14 -7
  217. package/src/components/add-new-template/style.scss +0 -4
  218. package/src/components/app/index.js +14 -43
  219. package/src/components/block-editor/editor-canvas.js +69 -0
  220. package/src/components/block-editor/index.js +102 -87
  221. package/src/components/block-editor/resizable-editor.js +9 -64
  222. package/src/components/block-editor/style.scss +25 -1
  223. package/src/components/code-editor/style.scss +1 -1
  224. package/src/components/editor/index.js +170 -236
  225. package/src/components/editor/style.scss +0 -22
  226. package/src/components/global-styles/block-preview-panel.js +29 -0
  227. package/src/components/global-styles/context-menu.js +11 -2
  228. package/src/components/global-styles/custom-css.js +73 -0
  229. package/src/components/global-styles/dimensions-panel.js +2 -5
  230. package/src/components/global-styles/global-styles-provider.js +39 -17
  231. package/src/components/global-styles/hooks.js +8 -3
  232. package/src/components/global-styles/palette.js +1 -1
  233. package/src/components/global-styles/screen-block-list.js +2 -1
  234. package/src/components/global-styles/screen-block.js +9 -1
  235. package/src/components/global-styles/screen-border.js +23 -0
  236. package/src/components/global-styles/screen-colors.js +2 -1
  237. package/src/components/global-styles/screen-css.js +33 -0
  238. package/src/components/global-styles/screen-layout.js +0 -3
  239. package/src/components/global-styles/screen-root.js +30 -1
  240. package/src/components/global-styles/screen-style-variations.js +5 -2
  241. package/src/components/global-styles/style.scss +31 -2
  242. package/src/components/global-styles/ui.js +47 -4
  243. package/src/components/global-styles/use-global-styles-output.js +5 -0
  244. package/src/components/global-styles/utils.js +8 -5
  245. package/src/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +3 -9
  246. package/src/components/header-edit-mode/document-actions/index.js +14 -9
  247. package/src/components/header-edit-mode/document-actions/style.scss +8 -1
  248. package/src/components/header-edit-mode/index.js +96 -78
  249. package/src/components/header-edit-mode/style.scss +5 -33
  250. package/src/components/keyboard-shortcuts/index.js +13 -0
  251. package/src/components/layout/index.js +278 -0
  252. package/src/components/layout/style.scss +176 -0
  253. package/src/components/list/header.js +5 -1
  254. package/src/components/list/index.js +12 -31
  255. package/src/components/list/style.scss +10 -4
  256. package/src/components/navigate-to-link/index.js +2 -8
  257. package/src/components/routes/index.js +1 -1
  258. package/src/components/sidebar/index.js +34 -0
  259. package/src/components/sidebar/style.scss +8 -0
  260. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +42 -7
  261. package/src/components/sidebar-edit-mode/index.js +3 -3
  262. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/style.scss +21 -3
  263. package/src/components/sidebar-edit-mode/settings-header/style.scss +47 -34
  264. package/src/components/sidebar-edit-mode/style.scss +0 -13
  265. package/src/components/sidebar-navigation-item/index.js +51 -0
  266. package/src/components/sidebar-navigation-item/style.scss +17 -0
  267. package/src/components/sidebar-navigation-screen/index.js +55 -0
  268. package/src/components/sidebar-navigation-screen/style.scss +41 -0
  269. package/src/components/sidebar-navigation-screen-main/index.js +72 -0
  270. package/src/components/sidebar-navigation-screen-templates/index.js +181 -0
  271. package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
  272. package/src/components/site-icon/index.js +56 -0
  273. package/src/components/site-icon/style.scss +10 -0
  274. package/src/components/site-title/index.js +39 -0
  275. package/src/components/style-book/index.js +193 -0
  276. package/src/components/style-book/style.scss +78 -0
  277. package/src/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +3 -3
  278. package/src/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +36 -0
  279. package/src/components/template-details/style.scss +4 -0
  280. package/src/index.js +3 -53
  281. package/src/store/actions.js +93 -48
  282. package/src/store/reducer.js +29 -91
  283. package/src/store/selectors.js +61 -101
  284. package/src/store/test/actions.js +3 -15
  285. package/src/store/test/reducer.js +8 -192
  286. package/src/store/test/selectors.js +3 -42
  287. package/src/style.scss +19 -3
  288. package/build/components/editor/global-styles-renderer.js.map +0 -1
  289. package/build/components/navigation-sidebar/index.js +0 -62
  290. package/build/components/navigation-sidebar/index.js.map +0 -1
  291. package/build/components/navigation-sidebar/navigation-panel/constants.js +0 -77
  292. package/build/components/navigation-sidebar/navigation-panel/constants.js.map +0 -1
  293. package/build/components/navigation-sidebar/navigation-panel/index.js +0 -152
  294. package/build/components/navigation-sidebar/navigation-panel/index.js.map +0 -1
  295. package/build/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -81
  296. package/build/components/navigation-sidebar/navigation-panel/template-hierarchy.js.map +0 -1
  297. package/build/components/navigation-sidebar/navigation-toggle/index.js +0 -124
  298. package/build/components/navigation-sidebar/navigation-toggle/index.js.map +0 -1
  299. package/build/components/url-query-controller/index.js.map +0 -1
  300. package/build-module/components/editor/global-styles-renderer.js.map +0 -1
  301. package/build-module/components/navigation-sidebar/index.js +0 -45
  302. package/build-module/components/navigation-sidebar/index.js.map +0 -1
  303. package/build-module/components/navigation-sidebar/navigation-panel/constants.js +0 -49
  304. package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +0 -1
  305. package/build-module/components/navigation-sidebar/navigation-panel/index.js +0 -131
  306. package/build-module/components/navigation-sidebar/navigation-panel/index.js.map +0 -1
  307. package/build-module/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -66
  308. package/build-module/components/navigation-sidebar/navigation-panel/template-hierarchy.js.map +0 -1
  309. package/build-module/components/navigation-sidebar/navigation-toggle/index.js +0 -108
  310. package/build-module/components/navigation-sidebar/navigation-toggle/index.js.map +0 -1
  311. package/build-module/components/url-query-controller/index.js.map +0 -1
  312. package/src/components/navigation-sidebar/index.js +0 -46
  313. package/src/components/navigation-sidebar/navigation-panel/constants.js +0 -94
  314. package/src/components/navigation-sidebar/navigation-panel/index.js +0 -142
  315. package/src/components/navigation-sidebar/navigation-panel/style.scss +0 -152
  316. package/src/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -81
  317. package/src/components/navigation-sidebar/navigation-toggle/index.js +0 -114
  318. package/src/components/navigation-sidebar/navigation-toggle/style.scss +0 -71
  319. package/src/components/navigation-sidebar/navigation-toggle/test/index.js +0 -65
@@ -3,20 +3,10 @@
3
3
  */
4
4
  import { useState, useRef, useCallback } from '@wordpress/element';
5
5
  import { ResizableBox } from '@wordpress/components';
6
- import {
7
- __experimentalUseResizeCanvas as useResizeCanvas,
8
- __unstableEditorStyles as EditorStyles,
9
- __unstableIframe as Iframe,
10
- __unstableUseMouseMoveTypingReset as useMouseMoveTypingReset,
11
- store as blockEditorStore,
12
- } from '@wordpress/block-editor';
13
- import { useSelect } from '@wordpress/data';
14
- import { useMergeRefs, useResizeObserver } from '@wordpress/compose';
15
6
 
16
7
  /**
17
8
  * Internal dependencies
18
9
  */
19
- import { store as editSiteStore } from '../../store';
20
10
  import ResizeHandle from './resize-handle';
21
11
 
22
12
  // Removes the inline styles in the drag handles.
@@ -32,34 +22,22 @@ const HANDLE_STYLES_OVERRIDE = {
32
22
  left: undefined,
33
23
  };
34
24
 
35
- function ResizableEditor( { enableResizing, settings, children, ...props } ) {
36
- const [ resizeObserver, sizes ] = useResizeObserver();
37
- const { deviceType, isZoomOutMode } = useSelect(
38
- ( select ) => ( {
39
- deviceType:
40
- select( editSiteStore ).__experimentalGetPreviewDeviceType(),
41
- isZoomOutMode:
42
- select( blockEditorStore ).__unstableGetEditorMode() ===
43
- 'zoom-out',
44
- } ),
45
- []
46
- );
47
- const deviceStyles = useResizeCanvas( deviceType );
25
+ function ResizableEditor( { enableResizing, height, children } ) {
48
26
  const [ width, setWidth ] = useState( '100%' );
49
- const iframeRef = useRef();
50
- const mouseMoveTypingResetRef = useMouseMoveTypingReset();
51
- const ref = useMergeRefs( [ iframeRef, mouseMoveTypingResetRef ] );
52
-
27
+ const resizableRef = useRef();
53
28
  const resizeWidthBy = useCallback( ( deltaPixels ) => {
54
- if ( iframeRef.current ) {
55
- setWidth( iframeRef.current.offsetWidth + deltaPixels );
29
+ if ( resizableRef.current ) {
30
+ setWidth( resizableRef.current.offsetWidth + deltaPixels );
56
31
  }
57
32
  }, [] );
58
33
  return (
59
34
  <ResizableBox
35
+ ref={ ( api ) => {
36
+ resizableRef.current = api?.resizable;
37
+ } }
60
38
  size={ {
61
39
  width: enableResizing ? width : '100%',
62
- height: enableResizing && sizes.height ? sizes.height : '100%',
40
+ height: enableResizing && height ? height : '100%',
63
41
  } }
64
42
  onResizeStop={ ( event, direction, element ) => {
65
43
  setWidth( element.style.width );
@@ -96,40 +74,7 @@ function ResizableEditor( { enableResizing, settings, children, ...props } ) {
96
74
  right: HANDLE_STYLES_OVERRIDE,
97
75
  } }
98
76
  >
99
- <Iframe
100
- isZoomedOut={ isZoomOutMode }
101
- style={ enableResizing ? {} : deviceStyles }
102
- head={
103
- <>
104
- <EditorStyles styles={ settings.styles } />
105
- <style>{
106
- // Forming a "block formatting context" to prevent margin collapsing.
107
- // @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context
108
- `.is-root-container { display: flow-root; }
109
- body { position: relative; }`
110
- }</style>
111
- { enableResizing && (
112
- <style>
113
- {
114
- // Some themes will have `min-height: 100vh` for the root container,
115
- // which isn't a requirement in auto resize mode.
116
- `.is-root-container { min-height: 0 !important; }`
117
- }
118
- </style>
119
- ) }
120
- </>
121
- }
122
- assets={ settings.__unstableResolvedAssets }
123
- ref={ ref }
124
- name="editor-canvas"
125
- className="edit-site-visual-editor__editor-canvas"
126
- { ...props }
127
- >
128
- { /* Filters need to be rendered before children to avoid Safari rendering issues. */ }
129
- { settings.svgFilters }
130
- { resizeObserver }
131
- { children }
132
- </Iframe>
77
+ { children }
133
78
  </ResizableBox>
134
79
  );
135
80
  }
@@ -14,12 +14,23 @@
14
14
 
15
15
  .edit-site-visual-editor {
16
16
  position: relative;
17
+ height: 100%;
18
+ display: block;
19
+ overflow: hidden;
17
20
  background-color: $gray-800;
18
21
  // Centralize the editor horizontally (flex-direction is column).
19
22
  align-items: center;
20
23
 
24
+ iframe {
25
+ display: block;
26
+ width: 100%;
27
+ height: 100%;
28
+ }
29
+
21
30
  &.is-focus-mode {
22
- padding: $grid-unit-60;
31
+ .edit-site-layout.is-full-canvas & {
32
+ padding: $grid-unit-60;
33
+ }
23
34
 
24
35
  .edit-site-visual-editor__editor-canvas {
25
36
  border-radius: $radius-block-ui;
@@ -38,6 +49,19 @@
38
49
  // Removing this will cancel the bottom margins in the iframe.
39
50
  overflow: auto;
40
51
  }
52
+
53
+ /*
54
+ Temporary to hide the contextual toolbar in view mode.
55
+ See: https://github.com/WordPress/gutenberg/pull/46298
56
+ This rule can possibly be removed once the
57
+ contextual toolbar has been redesigned.
58
+ See: https://github.com/WordPress/gutenberg/issues/40450
59
+ */
60
+ &.is-view-mode {
61
+ .block-editor-block-contextual-toolbar {
62
+ display: none;
63
+ }
64
+ }
41
65
  }
42
66
 
43
67
  .edit-site-visual-editor__back-button {
@@ -1,8 +1,8 @@
1
1
  .edit-site-code-editor {
2
2
  position: relative;
3
3
  width: 100%;
4
+ min-height: 100%;
4
5
  background-color: $white;
5
- flex-grow: 1;
6
6
 
7
7
  &__body {
8
8
  width: 100%;
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useEffect, useMemo } from '@wordpress/element';
4
+ import { useMemo } from '@wordpress/element';
5
5
  import { useSelect, useDispatch } from '@wordpress/data';
6
- import { Popover, Button, Notice } from '@wordpress/components';
6
+ import { Button, Notice } from '@wordpress/components';
7
7
  import { EntityProvider, store as coreStore } from '@wordpress/core-data';
8
+ import { store as preferencesStore } from '@wordpress/preferences';
8
9
  import {
9
10
  BlockContextProvider,
10
11
  BlockBreadcrumb,
@@ -21,34 +22,24 @@ import {
21
22
  EntitiesSavedStates,
22
23
  } from '@wordpress/editor';
23
24
  import { __ } from '@wordpress/i18n';
24
- import {
25
- ShortcutProvider,
26
- store as keyboardShortcutsStore,
27
- } from '@wordpress/keyboard-shortcuts';
28
- import { store as preferencesStore } from '@wordpress/preferences';
25
+ import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
29
26
 
30
27
  /**
31
28
  * Internal dependencies
32
29
  */
33
- import Header from '../header-edit-mode';
34
30
  import { SidebarComplementaryAreaFills } from '../sidebar-edit-mode';
35
- import NavigationSidebar from '../navigation-sidebar';
36
31
  import BlockEditor from '../block-editor';
37
32
  import CodeEditor from '../code-editor';
38
33
  import KeyboardShortcuts from '../keyboard-shortcuts';
39
- import URLQueryController from '../url-query-controller';
40
34
  import InserterSidebar from '../secondary-sidebar/inserter-sidebar';
41
35
  import ListViewSidebar from '../secondary-sidebar/list-view-sidebar';
42
- import ErrorBoundary from '../error-boundary';
43
36
  import WelcomeGuide from '../welcome-guide';
44
37
  import { store as editSiteStore } from '../../store';
45
- import { GlobalStylesRenderer } from './global-styles-renderer';
38
+ import { GlobalStylesRenderer } from '../global-styles-renderer';
46
39
  import { GlobalStylesProvider } from '../global-styles/global-styles-provider';
47
40
  import useTitle from '../routes/use-title';
48
41
 
49
42
  const interfaceLabels = {
50
- /* translators: accessibility text for the editor top bar landmark region. */
51
- header: __( 'Editor top bar' ),
52
43
  /* translators: accessibility text for the editor content landmark region. */
53
44
  body: __( 'Editor content' ),
54
45
  /* translators: accessibility text for the editor settings landmark region. */
@@ -57,286 +48,229 @@ const interfaceLabels = {
57
48
  actions: __( 'Editor publish' ),
58
49
  /* translators: accessibility text for the editor footer landmark region. */
59
50
  footer: __( 'Editor footer' ),
60
- /* translators: accessibility text for the navigation sidebar landmark region. */
61
- drawer: __( 'Navigation Sidebar' ),
62
51
  };
63
52
 
64
- function Editor( { onError } ) {
53
+ export default function Editor() {
65
54
  const {
55
+ editedPostId,
56
+ editedPostType,
57
+ editedPost,
58
+ context,
59
+ hasLoadedPost,
60
+ editorMode,
61
+ canvasMode,
62
+ blockEditorMode,
63
+ isRightSidebarOpen,
66
64
  isInserterOpen,
67
65
  isListViewOpen,
68
66
  isSaveViewOpen,
69
- sidebarIsOpened,
70
- settings,
71
- entityId,
72
- templateType,
73
- page,
74
- template,
75
- templateResolved,
76
- isNavigationOpen,
77
67
  previousShortcut,
78
68
  nextShortcut,
79
- editorMode,
80
69
  showIconLabels,
81
- blockEditorMode,
82
70
  } = useSelect( ( select ) => {
83
71
  const {
84
- isInserterOpened,
85
- isListViewOpened,
86
- isSaveViewOpened,
87
- getSettings,
88
72
  getEditedPostType,
89
73
  getEditedPostId,
90
- getPage,
91
- isNavigationOpened,
74
+ getEditedPostContext,
92
75
  getEditorMode,
76
+ __unstableGetCanvasMode,
77
+ isInserterOpened,
78
+ isListViewOpened,
79
+ isSaveViewOpened,
93
80
  } = select( editSiteStore );
94
81
  const { hasFinishedResolution, getEntityRecord } = select( coreStore );
95
82
  const { __unstableGetEditorMode } = select( blockEditorStore );
83
+ const { getAllShortcutKeyCombinations } = select(
84
+ keyboardShortcutsStore
85
+ );
86
+ const { getActiveComplementaryArea } = select( interfaceStore );
96
87
  const postType = getEditedPostType();
97
88
  const postId = getEditedPostId();
98
89
 
99
- // The currently selected entity to display. Typically template or template part.
90
+ // The currently selected entity to display.
91
+ // Typically template or template part in the site editor.
100
92
  return {
101
- isInserterOpen: isInserterOpened(),
102
- isListViewOpen: isListViewOpened(),
103
- isSaveViewOpen: isSaveViewOpened(),
104
- sidebarIsOpened: !! select(
105
- interfaceStore
106
- ).getActiveComplementaryArea( editSiteStore.name ),
107
- settings: getSettings(),
108
- templateType: postType,
109
- page: getPage(),
110
- template: postId
93
+ editedPostId: postId,
94
+ editedPostType: postType,
95
+ editedPost: postId
111
96
  ? getEntityRecord( 'postType', postType, postId )
112
97
  : null,
113
- templateResolved: postId
98
+ context: getEditedPostContext(),
99
+ hasLoadedPost: postId
114
100
  ? hasFinishedResolution( 'getEntityRecord', [
115
101
  'postType',
116
102
  postType,
117
103
  postId,
118
104
  ] )
119
105
  : false,
120
- entityId: postId,
121
- isNavigationOpen: isNavigationOpened(),
122
- previousShortcut: select(
123
- keyboardShortcutsStore
124
- ).getAllShortcutKeyCombinations( 'core/edit-site/previous-region' ),
125
- nextShortcut: select(
126
- keyboardShortcutsStore
127
- ).getAllShortcutKeyCombinations( 'core/edit-site/next-region' ),
128
106
  editorMode: getEditorMode(),
107
+ canvasMode: __unstableGetCanvasMode(),
108
+ blockEditorMode: __unstableGetEditorMode(),
109
+ isInserterOpen: isInserterOpened(),
110
+ isListViewOpen: isListViewOpened(),
111
+ isSaveViewOpen: isSaveViewOpened(),
112
+ isRightSidebarOpen: getActiveComplementaryArea(
113
+ editSiteStore.name
114
+ ),
115
+ previousShortcut: getAllShortcutKeyCombinations(
116
+ 'core/edit-site/previous-region'
117
+ ),
118
+ nextShortcut: getAllShortcutKeyCombinations(
119
+ 'core/edit-site/next-region'
120
+ ),
129
121
  showIconLabels: select( preferencesStore ).get(
130
122
  'core/edit-site',
131
123
  'showIconLabels'
132
124
  ),
133
- blockEditorMode: __unstableGetEditorMode(),
134
125
  };
135
126
  }, [] );
136
- const { setPage, setIsInserterOpened, setIsSaveViewOpened } =
127
+ const { setIsSaveViewOpened, setEditedPostContext } =
137
128
  useDispatch( editSiteStore );
138
- const { enableComplementaryArea } = useDispatch( interfaceStore );
139
129
 
130
+ const isViewMode = canvasMode === 'view';
131
+ const isEditMode = canvasMode === 'edit';
132
+ const showVisualEditor = isViewMode || editorMode === 'visual';
133
+ const showBlockBreakcrumb =
134
+ isEditMode && showVisualEditor && blockEditorMode !== 'zoom-out';
135
+ const shouldShowInserter = isEditMode && showVisualEditor && isInserterOpen;
136
+ const shouldShowListView = isEditMode && showVisualEditor && isListViewOpen;
137
+ const secondarySidebarLabel = isListViewOpen
138
+ ? __( 'List View' )
139
+ : __( 'Block Library' );
140
140
  const blockContext = useMemo(
141
141
  () => ( {
142
- ...page?.context,
142
+ ...context,
143
143
  queryContext: [
144
- page?.context.queryContext || { page: 1 },
144
+ context?.queryContext || { page: 1 },
145
145
  ( newQueryContext ) =>
146
- setPage( {
147
- ...page,
148
- context: {
149
- ...page?.context,
150
- queryContext: {
151
- ...page?.context.queryContext,
152
- ...newQueryContext,
153
- },
146
+ setEditedPostContext( {
147
+ ...context,
148
+ queryContext: {
149
+ ...context?.queryContext,
150
+ ...newQueryContext,
154
151
  },
155
152
  } ),
156
153
  ],
157
154
  } ),
158
- [ page?.context ]
155
+ [ context ]
159
156
  );
160
-
161
- useEffect( () => {
162
- if ( isNavigationOpen ) {
163
- document.body.classList.add( 'is-navigation-sidebar-open' );
164
- } else {
165
- document.body.classList.remove( 'is-navigation-sidebar-open' );
166
- }
167
- }, [ isNavigationOpen ] );
168
-
169
- useEffect(
170
- function openGlobalStylesOnLoad() {
171
- const searchParams = new URLSearchParams( window.location.search );
172
- if ( searchParams.get( 'styles' ) === 'open' ) {
173
- enableComplementaryArea(
174
- 'core/edit-site',
175
- 'edit-site/global-styles'
176
- );
177
- }
178
- },
179
- [ enableComplementaryArea ]
180
- );
181
-
182
- // Don't render the Editor until the settings are set and loaded.
183
- const isReady =
184
- settings?.siteUrl &&
185
- templateType !== undefined &&
186
- entityId !== undefined;
187
-
188
- const secondarySidebarLabel = isListViewOpen
189
- ? __( 'List View' )
190
- : __( 'Block Library' );
191
-
192
- const secondarySidebar = () => {
193
- if ( editorMode === 'visual' && isInserterOpen ) {
194
- return <InserterSidebar />;
195
- }
196
- if ( editorMode === 'visual' && isListViewOpen ) {
197
- return <ListViewSidebar />;
198
- }
199
- return null;
200
- };
157
+ const isReady = editedPostType !== undefined && editedPostId !== undefined;
201
158
 
202
159
  // Only announce the title once the editor is ready to prevent "Replace"
203
160
  // action in <URlQueryController> from double-announcing.
204
161
  useTitle( isReady && __( 'Editor (beta)' ) );
205
162
 
163
+ if ( ! isReady ) {
164
+ return null;
165
+ }
166
+
206
167
  return (
207
168
  <>
208
- <URLQueryController />
209
- { isReady && (
210
- <ShortcutProvider>
211
- <EntityProvider kind="root" type="site">
212
- <EntityProvider
213
- kind="postType"
214
- type={ templateType }
215
- id={ entityId }
216
- >
217
- <GlobalStylesProvider>
218
- <BlockContextProvider value={ blockContext }>
219
- <GlobalStylesRenderer />
220
- <ErrorBoundary onError={ onError }>
221
- <KeyboardShortcuts.Register />
222
- <SidebarComplementaryAreaFills />
223
- <InterfaceSkeleton
224
- labels={ {
225
- ...interfaceLabels,
226
- secondarySidebar:
227
- secondarySidebarLabel,
228
- } }
229
- className={
230
- showIconLabels &&
231
- 'show-icon-labels'
232
- }
233
- secondarySidebar={ secondarySidebar() }
234
- sidebar={
235
- sidebarIsOpened && (
236
- <ComplementaryArea.Slot scope="core/edit-site" />
237
- )
238
- }
239
- drawer={
240
- <NavigationSidebar.Slot />
241
- }
242
- header={
243
- <Header
244
- showIconLabels={
245
- showIconLabels
169
+ { isEditMode && <WelcomeGuide /> }
170
+ <KeyboardShortcuts.Register />
171
+ <EntityProvider kind="root" type="site">
172
+ <EntityProvider
173
+ kind="postType"
174
+ type={ editedPostType }
175
+ id={ editedPostId }
176
+ >
177
+ <GlobalStylesProvider>
178
+ <BlockContextProvider value={ blockContext }>
179
+ <SidebarComplementaryAreaFills />
180
+ <InterfaceSkeleton
181
+ className={
182
+ showIconLabels && 'show-icon-labels'
183
+ }
184
+ notices={ isEditMode && <EditorSnackbars /> }
185
+ content={
186
+ <>
187
+ <GlobalStylesRenderer />
188
+ <EditorNotices />
189
+ { showVisualEditor && editedPost && (
190
+ <BlockEditor />
191
+ ) }
192
+ { editorMode === 'text' &&
193
+ editedPost && <CodeEditor /> }
194
+ { hasLoadedPost && ! editedPost && (
195
+ <Notice
196
+ status="warning"
197
+ isDismissible={ false }
198
+ >
199
+ { __(
200
+ "You attempted to edit an item that doesn't exist. Perhaps it was deleted?"
201
+ ) }
202
+ </Notice>
203
+ ) }
204
+ { isEditMode && <KeyboardShortcuts /> }
205
+ </>
206
+ }
207
+ secondarySidebar={
208
+ isEditMode &&
209
+ ( ( shouldShowInserter && (
210
+ <InserterSidebar />
211
+ ) ) ||
212
+ ( shouldShowListView && (
213
+ <ListViewSidebar />
214
+ ) ) )
215
+ }
216
+ sidebar={
217
+ isEditMode &&
218
+ isRightSidebarOpen && (
219
+ <ComplementaryArea.Slot scope="core/edit-site" />
220
+ )
221
+ }
222
+ actions={
223
+ isEditMode && (
224
+ <>
225
+ { isSaveViewOpen ? (
226
+ <EntitiesSavedStates
227
+ close={ () =>
228
+ setIsSaveViewOpened(
229
+ false
230
+ )
246
231
  }
247
232
  />
248
- }
249
- notices={ <EditorSnackbars /> }
250
- content={
251
- <>
252
- <EditorNotices />
253
- { editorMode === 'visual' &&
254
- template && (
255
- <BlockEditor
256
- setIsInserterOpen={
257
- setIsInserterOpened
258
- }
259
- />
260
- ) }
261
- { editorMode === 'text' &&
262
- template && (
263
- <CodeEditor />
264
- ) }
265
- { templateResolved &&
266
- ! template &&
267
- settings?.siteUrl &&
268
- entityId && (
269
- <Notice
270
- status="warning"
271
- isDismissible={
272
- false
273
- }
274
- >
275
- { __(
276
- "You attempted to edit an item that doesn't exist. Perhaps it was deleted?"
277
- ) }
278
- </Notice>
279
- ) }
280
- <KeyboardShortcuts />
281
- </>
282
- }
283
- actions={
284
- <>
285
- { isSaveViewOpen ? (
286
- <EntitiesSavedStates
287
- close={ () =>
288
- setIsSaveViewOpened(
289
- false
290
- )
291
- }
292
- />
293
- ) : (
294
- <div className="edit-site-editor__toggle-save-panel">
295
- <Button
296
- variant="secondary"
297
- className="edit-site-editor__toggle-save-panel-button"
298
- onClick={ () =>
299
- setIsSaveViewOpened(
300
- true
301
- )
302
- }
303
- aria-expanded={
304
- false
305
- }
306
- >
307
- { __(
308
- 'Open save panel'
309
- ) }
310
- </Button>
311
- </div>
312
- ) }
313
- </>
314
- }
315
- footer={
316
- blockEditorMode !==
317
- 'zoom-out' ? (
318
- <BlockBreadcrumb
319
- rootLabelText={ __(
320
- 'Template'
233
+ ) : (
234
+ <div className="edit-site-editor__toggle-save-panel">
235
+ <Button
236
+ variant="secondary"
237
+ className="edit-site-editor__toggle-save-panel-button"
238
+ onClick={ () =>
239
+ setIsSaveViewOpened(
240
+ true
241
+ )
242
+ }
243
+ aria-expanded={ false }
244
+ >
245
+ { __(
246
+ 'Open save panel'
321
247
  ) }
322
- />
323
- ) : undefined
324
- }
325
- shortcuts={ {
326
- previous: previousShortcut,
327
- next: nextShortcut,
328
- } }
248
+ </Button>
249
+ </div>
250
+ ) }
251
+ </>
252
+ )
253
+ }
254
+ footer={
255
+ showBlockBreakcrumb && (
256
+ <BlockBreadcrumb
257
+ rootLabelText={ __( 'Template' ) }
329
258
  />
330
- <WelcomeGuide />
331
- <Popover.Slot />
332
- </ErrorBoundary>
333
- </BlockContextProvider>
334
- </GlobalStylesProvider>
335
- </EntityProvider>
336
- </EntityProvider>
337
- </ShortcutProvider>
338
- ) }
259
+ )
260
+ }
261
+ shortcuts={ {
262
+ previous: previousShortcut,
263
+ next: nextShortcut,
264
+ } }
265
+ labels={ {
266
+ ...interfaceLabels,
267
+ secondarySidebar: secondarySidebarLabel,
268
+ } }
269
+ />
270
+ </BlockContextProvider>
271
+ </GlobalStylesProvider>
272
+ </EntityProvider>
273
+ </EntityProvider>
339
274
  </>
340
275
  );
341
276
  }
342
- export default Editor;
@@ -1,11 +1,3 @@
1
- html #wpadminbar {
2
- display: none;
3
- }
4
-
5
- html.wp-toolbar {
6
- padding-top: 0;
7
- }
8
-
9
1
  .edit-site-editor__toggle-save-panel {
10
2
  box-sizing: border-box;
11
3
  width: $sidebar-width;
@@ -22,20 +14,6 @@ html.wp-toolbar {
22
14
  }
23
15
  }
24
16
 
25
- .edit-site-visual-editor {
26
- position: relative;
27
- height: 100%;
28
- display: block;
29
- overflow: hidden;
30
-
31
- iframe {
32
- display: block;
33
- width: 100%;
34
- height: 100%;
35
- background-color: $white;
36
- }
37
- }
38
-
39
17
  // Adjust the position of the notices
40
18
  .edit-site .components-editor-notices__snackbar {
41
19
  position: fixed;