@wordpress/edit-site 4.18.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 (352) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/components/add-new-template/add-custom-template-modal.js +4 -1
  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 +13 -85
  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 +42 -2
  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 +37 -2
  31. package/build/components/global-styles/hooks.js.map +1 -1
  32. package/build/components/global-styles/palette.js +9 -2
  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/typography-panel.js +52 -16
  51. package/build/components/global-styles/typography-panel.js.map +1 -1
  52. package/build/components/global-styles/ui.js +50 -4
  53. package/build/components/global-styles/ui.js.map +1 -1
  54. package/build/components/global-styles/use-global-styles-output.js +47 -8
  55. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  56. package/build/components/global-styles/utils.js +3 -3
  57. package/build/components/global-styles/utils.js.map +1 -1
  58. package/build/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +4 -8
  59. package/build/components/global-styles-renderer/index.js.map +1 -0
  60. package/build/components/header-edit-mode/document-actions/index.js +14 -5
  61. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  62. package/build/components/header-edit-mode/index.js +31 -17
  63. package/build/components/header-edit-mode/index.js.map +1 -1
  64. package/build/components/keyboard-shortcuts/index.js +14 -1
  65. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  66. package/build/components/layout/index.js +231 -0
  67. package/build/components/layout/index.js.map +1 -0
  68. package/build/components/list/header.js +5 -1
  69. package/build/components/list/header.js.map +1 -1
  70. package/build/components/list/index.js +4 -22
  71. package/build/components/list/index.js.map +1 -1
  72. package/build/components/list/table.js +1 -1
  73. package/build/components/list/table.js.map +1 -1
  74. package/build/components/list/use-register-shortcuts.js +3 -0
  75. package/build/components/list/use-register-shortcuts.js.map +1 -1
  76. package/build/components/navigate-to-link/index.js +1 -3
  77. package/build/components/navigate-to-link/index.js.map +1 -1
  78. package/build/components/routes/index.js +1 -1
  79. package/build/components/routes/index.js.map +1 -1
  80. package/build/components/save-button/index.js +20 -2
  81. package/build/components/save-button/index.js.map +1 -1
  82. package/build/components/sidebar/index.js +42 -0
  83. package/build/components/sidebar/index.js.map +1 -0
  84. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +24 -4
  85. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  86. package/build/components/sidebar-edit-mode/index.js +1 -1
  87. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  88. package/build/components/sidebar-edit-mode/template-card/index.js +4 -2
  89. package/build/components/sidebar-edit-mode/template-card/index.js.map +1 -1
  90. package/build/components/sidebar-navigation-item/index.js +53 -0
  91. package/build/components/sidebar-navigation-item/index.js.map +1 -0
  92. package/build/components/sidebar-navigation-screen/index.js +49 -0
  93. package/build/components/sidebar-navigation-screen/index.js.map +1 -0
  94. package/build/components/sidebar-navigation-screen-main/index.js +76 -0
  95. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -0
  96. package/build/components/sidebar-navigation-screen-templates/index.js +188 -0
  97. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -0
  98. package/build/components/site-icon/index.js +70 -0
  99. package/build/components/site-icon/index.js.map +1 -0
  100. package/build/components/site-title/index.js +55 -0
  101. package/build/components/site-title/index.js.map +1 -0
  102. package/build/components/style-book/index.js +173 -0
  103. package/build/components/style-book/index.js.map +1 -0
  104. package/build/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +5 -4
  105. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -0
  106. package/build/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +53 -0
  107. package/build/components/sync-state-with-url/use-sync-sidebar-path-with-url.js.map +1 -0
  108. package/build/components/template-details/index.js +4 -2
  109. package/build/components/template-details/index.js.map +1 -1
  110. package/build/index.js +2 -45
  111. package/build/index.js.map +1 -1
  112. package/build/store/actions.js +93 -43
  113. package/build/store/actions.js.map +1 -1
  114. package/build/store/reducer.js +35 -107
  115. package/build/store/reducer.js.map +1 -1
  116. package/build/store/selectors.js +69 -78
  117. package/build/store/selectors.js.map +1 -1
  118. package/build-module/components/add-new-template/add-custom-template-modal.js +3 -1
  119. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  120. package/build-module/components/add-new-template/index.js +7 -5
  121. package/build-module/components/add-new-template/index.js.map +1 -1
  122. package/build-module/components/add-new-template/new-template-part.js +18 -6
  123. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  124. package/build-module/components/add-new-template/new-template.js +13 -9
  125. package/build-module/components/add-new-template/new-template.js.map +1 -1
  126. package/build-module/components/app/index.js +15 -28
  127. package/build-module/components/app/index.js.map +1 -1
  128. package/build-module/components/block-editor/editor-canvas.js +51 -0
  129. package/build-module/components/block-editor/editor-canvas.js.map +1 -0
  130. package/build-module/components/block-editor/index.js +61 -60
  131. package/build-module/components/block-editor/index.js.map +1 -1
  132. package/build-module/components/block-editor/resizable-editor.js +15 -82
  133. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  134. package/build-module/components/editor/index.js +81 -124
  135. package/build-module/components/editor/index.js.map +1 -1
  136. package/build-module/components/global-styles/block-preview-panel.js +32 -0
  137. package/build-module/components/global-styles/block-preview-panel.js.map +1 -0
  138. package/build-module/components/global-styles/context-menu.js +7 -3
  139. package/build-module/components/global-styles/context-menu.js.map +1 -1
  140. package/build-module/components/global-styles/custom-css.js +51 -0
  141. package/build-module/components/global-styles/custom-css.js.map +1 -0
  142. package/build-module/components/global-styles/dimensions-panel.js +43 -3
  143. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  144. package/build-module/components/global-styles/global-styles-provider.js +15 -2
  145. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  146. package/build-module/components/global-styles/hooks.js +32 -4
  147. package/build-module/components/global-styles/hooks.js.map +1 -1
  148. package/build-module/components/global-styles/palette.js +10 -4
  149. package/build-module/components/global-styles/palette.js.map +1 -1
  150. package/build-module/components/global-styles/screen-block-list.js +2 -1
  151. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  152. package/build-module/components/global-styles/screen-block.js +8 -2
  153. package/build-module/components/global-styles/screen-block.js.map +1 -1
  154. package/build-module/components/global-styles/screen-border.js +27 -0
  155. package/build-module/components/global-styles/screen-border.js.map +1 -0
  156. package/build-module/components/global-styles/screen-colors.js +1 -1
  157. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  158. package/build-module/components/global-styles/screen-css.js +28 -0
  159. package/build-module/components/global-styles/screen-css.js.map +1 -0
  160. package/build-module/components/global-styles/screen-layout.js +0 -4
  161. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  162. package/build-module/components/global-styles/screen-root.js +14 -1
  163. package/build-module/components/global-styles/screen-root.js.map +1 -1
  164. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  165. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  166. package/build-module/components/global-styles/typography-panel.js +53 -16
  167. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  168. package/build-module/components/global-styles/ui.js +48 -5
  169. package/build-module/components/global-styles/ui.js.map +1 -1
  170. package/build-module/components/global-styles/use-global-styles-output.js +48 -9
  171. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  172. package/build-module/components/global-styles/utils.js +4 -4
  173. package/build-module/components/global-styles/utils.js.map +1 -1
  174. package/build-module/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +4 -7
  175. package/build-module/components/global-styles-renderer/index.js.map +1 -0
  176. package/build-module/components/header-edit-mode/document-actions/index.js +14 -6
  177. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  178. package/build-module/components/header-edit-mode/index.js +27 -16
  179. package/build-module/components/header-edit-mode/index.js.map +1 -1
  180. package/build-module/components/keyboard-shortcuts/index.js +13 -1
  181. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  182. package/build-module/components/layout/index.js +203 -0
  183. package/build-module/components/layout/index.js.map +1 -0
  184. package/build-module/components/list/header.js +5 -1
  185. package/build-module/components/list/header.js.map +1 -1
  186. package/build-module/components/list/index.js +4 -19
  187. package/build-module/components/list/index.js.map +1 -1
  188. package/build-module/components/list/table.js +1 -1
  189. package/build-module/components/list/table.js.map +1 -1
  190. package/build-module/components/list/use-register-shortcuts.js +3 -0
  191. package/build-module/components/list/use-register-shortcuts.js.map +1 -1
  192. package/build-module/components/navigate-to-link/index.js +1 -3
  193. package/build-module/components/navigate-to-link/index.js.map +1 -1
  194. package/build-module/components/routes/index.js +1 -1
  195. package/build-module/components/routes/index.js.map +1 -1
  196. package/build-module/components/save-button/index.js +21 -2
  197. package/build-module/components/save-button/index.js.map +1 -1
  198. package/build-module/components/sidebar/index.js +30 -0
  199. package/build-module/components/sidebar/index.js.map +1 -0
  200. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +27 -7
  201. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  202. package/build-module/components/sidebar-edit-mode/index.js +3 -3
  203. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  204. package/build-module/components/sidebar-edit-mode/template-card/index.js +3 -2
  205. package/build-module/components/sidebar-edit-mode/template-card/index.js.map +1 -1
  206. package/build-module/components/sidebar-navigation-item/index.js +40 -0
  207. package/build-module/components/sidebar-navigation-item/index.js.map +1 -0
  208. package/build-module/components/sidebar-navigation-screen/index.js +39 -0
  209. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -0
  210. package/build-module/components/sidebar-navigation-screen-main/index.js +57 -0
  211. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -0
  212. package/build-module/components/sidebar-navigation-screen-templates/index.js +165 -0
  213. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -0
  214. package/build-module/components/site-icon/index.js +55 -0
  215. package/build-module/components/site-icon/index.js.map +1 -0
  216. package/build-module/components/site-title/index.js +43 -0
  217. package/build-module/components/site-title/index.js.map +1 -0
  218. package/build-module/components/style-book/index.js +156 -0
  219. package/build-module/components/style-book/index.js.map +1 -0
  220. package/build-module/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +4 -3
  221. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -0
  222. package/build-module/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +43 -0
  223. package/build-module/components/sync-state-with-url/use-sync-sidebar-path-with-url.js.map +1 -0
  224. package/build-module/components/template-details/index.js +3 -2
  225. package/build-module/components/template-details/index.js.map +1 -1
  226. package/build-module/index.js +5 -36
  227. package/build-module/index.js.map +1 -1
  228. package/build-module/store/actions.js +87 -42
  229. package/build-module/store/actions.js.map +1 -1
  230. package/build-module/store/reducer.js +35 -102
  231. package/build-module/store/reducer.js.map +1 -1
  232. package/build-module/store/selectors.js +60 -72
  233. package/build-module/store/selectors.js.map +1 -1
  234. package/build-style/style-rtl.css +558 -354
  235. package/build-style/style.css +558 -354
  236. package/package.json +33 -31
  237. package/src/components/add-new-template/add-custom-template-modal.js +6 -1
  238. package/src/components/add-new-template/index.js +6 -3
  239. package/src/components/add-new-template/new-template-part.js +15 -3
  240. package/src/components/add-new-template/new-template.js +14 -7
  241. package/src/components/add-new-template/style.scss +0 -4
  242. package/src/components/app/index.js +14 -43
  243. package/src/components/block-editor/editor-canvas.js +69 -0
  244. package/src/components/block-editor/index.js +102 -87
  245. package/src/components/block-editor/resizable-editor.js +12 -112
  246. package/src/components/block-editor/style.scss +25 -1
  247. package/src/components/code-editor/style.scss +1 -1
  248. package/src/components/editor/index.js +170 -236
  249. package/src/components/editor/style.scss +1 -29
  250. package/src/components/global-styles/block-preview-panel.js +29 -0
  251. package/src/components/global-styles/context-menu.js +11 -2
  252. package/src/components/global-styles/custom-css.js +73 -0
  253. package/src/components/global-styles/dimensions-panel.js +56 -1
  254. package/src/components/global-styles/global-styles-provider.js +39 -17
  255. package/src/components/global-styles/hooks.js +44 -3
  256. package/src/components/global-styles/palette.js +16 -2
  257. package/src/components/global-styles/screen-block-list.js +2 -1
  258. package/src/components/global-styles/screen-block.js +9 -1
  259. package/src/components/global-styles/screen-border.js +23 -0
  260. package/src/components/global-styles/screen-colors.js +2 -1
  261. package/src/components/global-styles/screen-css.js +33 -0
  262. package/src/components/global-styles/screen-layout.js +0 -3
  263. package/src/components/global-styles/screen-root.js +30 -1
  264. package/src/components/global-styles/screen-style-variations.js +5 -2
  265. package/src/components/global-styles/style.scss +31 -2
  266. package/src/components/global-styles/test/typography-utils.js +82 -98
  267. package/src/components/global-styles/test/use-global-styles-output.js +6 -6
  268. package/src/components/global-styles/typography-panel.js +57 -15
  269. package/src/components/global-styles/ui.js +47 -4
  270. package/src/components/global-styles/use-global-styles-output.js +52 -10
  271. package/src/components/global-styles/utils.js +8 -5
  272. package/src/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +3 -9
  273. package/src/components/header-edit-mode/document-actions/index.js +16 -10
  274. package/src/components/header-edit-mode/document-actions/style.scss +8 -1
  275. package/src/components/header-edit-mode/index.js +104 -82
  276. package/src/components/header-edit-mode/style.scss +5 -33
  277. package/src/components/keyboard-shortcuts/index.js +17 -0
  278. package/src/components/layout/index.js +278 -0
  279. package/src/components/layout/style.scss +176 -0
  280. package/src/components/list/header.js +5 -1
  281. package/src/components/list/index.js +12 -31
  282. package/src/components/list/style.scss +10 -4
  283. package/src/components/list/table.js +1 -1
  284. package/src/components/list/use-register-shortcuts.js +4 -0
  285. package/src/components/navigate-to-link/index.js +2 -8
  286. package/src/components/routes/index.js +1 -1
  287. package/src/components/save-button/index.js +17 -1
  288. package/src/components/sidebar/index.js +34 -0
  289. package/src/components/sidebar/style.scss +8 -0
  290. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +42 -7
  291. package/src/components/sidebar-edit-mode/index.js +3 -3
  292. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/style.scss +21 -3
  293. package/src/components/sidebar-edit-mode/settings-header/style.scss +47 -34
  294. package/src/components/sidebar-edit-mode/style.scss +0 -13
  295. package/src/components/sidebar-edit-mode/template-card/index.js +3 -2
  296. package/src/components/sidebar-navigation-item/index.js +51 -0
  297. package/src/components/sidebar-navigation-item/style.scss +17 -0
  298. package/src/components/sidebar-navigation-screen/index.js +55 -0
  299. package/src/components/sidebar-navigation-screen/style.scss +41 -0
  300. package/src/components/sidebar-navigation-screen-main/index.js +72 -0
  301. package/src/components/sidebar-navigation-screen-templates/index.js +181 -0
  302. package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
  303. package/src/components/site-icon/index.js +56 -0
  304. package/src/components/site-icon/style.scss +10 -0
  305. package/src/components/site-title/index.js +39 -0
  306. package/src/components/style-book/index.js +193 -0
  307. package/src/components/style-book/style.scss +78 -0
  308. package/src/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +3 -3
  309. package/src/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +36 -0
  310. package/src/components/template-details/index.js +3 -2
  311. package/src/components/template-details/style.scss +4 -0
  312. package/src/index.js +3 -53
  313. package/src/store/actions.js +93 -48
  314. package/src/store/reducer.js +29 -91
  315. package/src/store/selectors.js +61 -101
  316. package/src/store/test/actions.js +3 -15
  317. package/src/store/test/reducer.js +8 -192
  318. package/src/store/test/selectors.js +3 -42
  319. package/src/style.scss +19 -3
  320. package/build/components/editor/global-styles-renderer.js.map +0 -1
  321. package/build/components/navigation-sidebar/index.js +0 -62
  322. package/build/components/navigation-sidebar/index.js.map +0 -1
  323. package/build/components/navigation-sidebar/navigation-panel/constants.js +0 -77
  324. package/build/components/navigation-sidebar/navigation-panel/constants.js.map +0 -1
  325. package/build/components/navigation-sidebar/navigation-panel/index.js +0 -152
  326. package/build/components/navigation-sidebar/navigation-panel/index.js.map +0 -1
  327. package/build/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -81
  328. package/build/components/navigation-sidebar/navigation-panel/template-hierarchy.js.map +0 -1
  329. package/build/components/navigation-sidebar/navigation-toggle/index.js +0 -124
  330. package/build/components/navigation-sidebar/navigation-toggle/index.js.map +0 -1
  331. package/build/components/url-query-controller/index.js.map +0 -1
  332. package/build-module/components/editor/global-styles-renderer.js.map +0 -1
  333. package/build-module/components/navigation-sidebar/index.js +0 -45
  334. package/build-module/components/navigation-sidebar/index.js.map +0 -1
  335. package/build-module/components/navigation-sidebar/navigation-panel/constants.js +0 -49
  336. package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +0 -1
  337. package/build-module/components/navigation-sidebar/navigation-panel/index.js +0 -131
  338. package/build-module/components/navigation-sidebar/navigation-panel/index.js.map +0 -1
  339. package/build-module/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -66
  340. package/build-module/components/navigation-sidebar/navigation-panel/template-hierarchy.js.map +0 -1
  341. package/build-module/components/navigation-sidebar/navigation-toggle/index.js +0 -108
  342. package/build-module/components/navigation-sidebar/navigation-toggle/index.js.map +0 -1
  343. package/build-module/components/url-query-controller/index.js.map +0 -1
  344. package/src/components/navigation-sidebar/index.js +0 -46
  345. package/src/components/navigation-sidebar/navigation-panel/constants.js +0 -94
  346. package/src/components/navigation-sidebar/navigation-panel/index.js +0 -142
  347. package/src/components/navigation-sidebar/navigation-panel/style.scss +0 -159
  348. package/src/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -81
  349. package/src/components/navigation-sidebar/navigation-toggle/index.js +0 -114
  350. package/src/components/navigation-sidebar/navigation-toggle/style.scss +0 -71
  351. package/src/components/navigation-sidebar/navigation-toggle/test/__snapshots__/index.js.snap +0 -41
  352. package/src/components/navigation-sidebar/navigation-toggle/test/index.js +0 -69
@@ -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,46 @@ 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
+
157
+ // eslint-disable-next-line @wordpress/data-no-store-string-literals
158
+ const { enableComplementaryArea } = useDispatch( 'core/interface' );
159
159
 
160
160
  const NavMenuSidebarToggle = () => (
161
161
  <ToolbarGroup>
162
162
  <ToolbarButton
163
163
  className="components-toolbar__control"
164
- label={
165
- isNavigationSidebarOpen
166
- ? __( 'Close list view' )
167
- : __( 'Open list view' )
164
+ label={ __( 'Open navigation list view' ) }
165
+ onClick={ () =>
166
+ enableComplementaryArea(
167
+ 'core/edit-site',
168
+ 'edit-site/block-inspector'
169
+ )
168
170
  }
169
- onClick={ toggleNavigationSidebar }
170
171
  icon={ listView }
171
- isActive={ isNavigationSidebarOpen }
172
172
  />
173
173
  </ToolbarGroup>
174
174
  );
175
175
 
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
176
  let MaybeNavMenuSidebarToggle = Fragment;
177
+ const isOffCanvasNavigationEditorEnabled =
178
+ window?.__experimentalEnableOffCanvasNavigationEditor === true;
180
179
 
181
- if ( process.env.IS_GUTENBERG_PLUGIN ) {
180
+ if ( isOffCanvasNavigationEditorEnabled ) {
182
181
  MaybeNavMenuSidebarToggle = NavMenuSidebarToggle;
183
182
  }
184
183
 
@@ -196,64 +195,80 @@ export default function BlockEditor( { setIsInserterOpen } ) {
196
195
  ( fillProps ) => (
197
196
  <NavigateToLink
198
197
  { ...fillProps }
199
- activePage={ page }
200
198
  onActivePageChange={ setPage }
201
199
  />
202
200
  ),
203
- [ page ]
201
+ []
204
202
  ) }
205
203
  </__experimentalLinkControl.ViewerFill>
206
204
  <SidebarInspectorFill>
207
205
  <BlockInspector />
208
206
  </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>
207
+ { /* Potentially this could be a generic slot (e.g. EditorCanvas.Slot) if there are other uses for it. */ }
208
+ <StyleBook.Slot>
209
+ { ( [ styleBook ] ) =>
210
+ styleBook ? (
211
+ <div className="edit-site-visual-editor is-focus-mode">
212
+ <ResizableEditor enableResizing>
213
+ { styleBook }
214
+ </ResizableEditor>
215
+ </div>
216
+ ) : (
217
+ <BlockTools
218
+ className={ classnames( 'edit-site-visual-editor', {
219
+ 'is-focus-mode': isTemplatePart || !! styleBook,
220
+ 'is-view-mode': isViewMode,
221
+ } ) }
222
+ __unstableContentRef={ contentRef }
223
+ onClick={ ( event ) => {
224
+ // Clear selected block when clicking on the gray background.
225
+ if ( event.target === event.currentTarget ) {
226
+ clearSelectedBlock();
227
+ }
228
+ } }
229
+ >
230
+ <BlockEditorKeyboardShortcuts.Register />
231
+ <BackButton />
232
+ <ResizableEditor
233
+ enableResizing={ enableResizing }
234
+ height={ sizes.height }
235
+ >
236
+ <EditorCanvas
237
+ enableResizing={ enableResizing }
238
+ settings={ settings }
239
+ contentRef={ mergedRefs }
240
+ readonly={ canvasMode === 'view' }
241
+ >
242
+ { resizeObserver }
243
+ <BlockList
244
+ className="edit-site-block-editor__block-list wp-site-blocks"
245
+ __experimentalLayout={ LAYOUT }
246
+ renderAppender={
247
+ isTemplatePart && hasBlocks
248
+ ? false
249
+ : undefined
250
+ }
251
+ />
252
+ </EditorCanvas>
253
+ </ResizableEditor>
254
+ <__unstableBlockSettingsMenuFirstItem>
255
+ { ( { onClose } ) => (
256
+ <BlockInspectorButton onClick={ onClose } />
257
+ ) }
258
+ </__unstableBlockSettingsMenuFirstItem>
259
+ <__unstableBlockToolbarLastItem>
260
+ <__unstableBlockNameContext.Consumer>
261
+ { ( blockName ) =>
262
+ blockName === 'core/navigation' && (
263
+ <MaybeNavMenuSidebarToggle />
264
+ )
265
+ }
266
+ </__unstableBlockNameContext.Consumer>
267
+ </__unstableBlockToolbarLastItem>
268
+ </BlockTools>
269
+ )
270
+ }
271
+ </StyleBook.Slot>
257
272
  <ReusableBlocksMenuItems />
258
273
  </BlockEditorProvider>
259
274
  );
@@ -1,29 +1,14 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useState, useEffect, useRef, useCallback } from '@wordpress/element';
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 } 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
- const DEFAULT_STYLES = {
23
- width: '100%',
24
- height: '100%',
25
- };
26
-
27
12
  // Removes the inline styles in the drag handles.
28
13
  const HANDLE_STYLES_OVERRIDE = {
29
14
  position: undefined,
@@ -37,72 +22,22 @@ const HANDLE_STYLES_OVERRIDE = {
37
22
  left: undefined,
38
23
  };
39
24
 
40
- function ResizableEditor( { enableResizing, settings, children, ...props } ) {
41
- const { deviceType, isZoomOutMode } = useSelect(
42
- ( select ) => ( {
43
- deviceType:
44
- select( editSiteStore ).__experimentalGetPreviewDeviceType(),
45
- isZoomOutMode:
46
- select( blockEditorStore ).__unstableGetEditorMode() ===
47
- 'zoom-out',
48
- } ),
49
- []
50
- );
51
- const deviceStyles = useResizeCanvas( deviceType );
52
- const [ width, setWidth ] = useState( DEFAULT_STYLES.width );
53
- const [ height, setHeight ] = useState( DEFAULT_STYLES.height );
54
- const iframeRef = useRef();
55
- const mouseMoveTypingResetRef = useMouseMoveTypingReset();
56
- const ref = useMergeRefs( [ iframeRef, mouseMoveTypingResetRef ] );
57
-
58
- useEffect(
59
- function autoResizeIframeHeight() {
60
- if ( ! iframeRef.current || ! enableResizing ) {
61
- return;
62
- }
63
-
64
- const iframe = iframeRef.current;
65
-
66
- function setFrameHeight() {
67
- setHeight( iframe.contentDocument.body.scrollHeight );
68
- }
69
-
70
- let resizeObserver;
71
-
72
- function registerObserver() {
73
- resizeObserver?.disconnect();
74
-
75
- resizeObserver = new iframe.contentWindow.ResizeObserver(
76
- setFrameHeight
77
- );
78
-
79
- // Observe the body, since the `html` element seems to always
80
- // have a height of `100%`.
81
- resizeObserver.observe( iframe.contentDocument.body );
82
- setFrameHeight();
83
- }
84
-
85
- iframe.addEventListener( 'load', registerObserver );
86
-
87
- return () => {
88
- resizeObserver?.disconnect();
89
- iframe.removeEventListener( 'load', registerObserver );
90
- };
91
- },
92
- [ enableResizing, iframeRef.current ]
93
- );
94
-
25
+ function ResizableEditor( { enableResizing, height, children } ) {
26
+ const [ width, setWidth ] = useState( '100%' );
27
+ const resizableRef = useRef();
95
28
  const resizeWidthBy = useCallback( ( deltaPixels ) => {
96
- if ( iframeRef.current ) {
97
- setWidth( iframeRef.current.offsetWidth + deltaPixels );
29
+ if ( resizableRef.current ) {
30
+ setWidth( resizableRef.current.offsetWidth + deltaPixels );
98
31
  }
99
32
  }, [] );
100
-
101
33
  return (
102
34
  <ResizableBox
35
+ ref={ ( api ) => {
36
+ resizableRef.current = api?.resizable;
37
+ } }
103
38
  size={ {
104
- width,
105
- height,
39
+ width: enableResizing ? width : '100%',
40
+ height: enableResizing && height ? height : '100%',
106
41
  } }
107
42
  onResizeStop={ ( event, direction, element ) => {
108
43
  setWidth( element.style.width );
@@ -139,42 +74,7 @@ function ResizableEditor( { enableResizing, settings, children, ...props } ) {
139
74
  right: HANDLE_STYLES_OVERRIDE,
140
75
  } }
141
76
  >
142
- <Iframe
143
- isZoomedOut={ isZoomOutMode }
144
- style={ enableResizing ? { height } : deviceStyles }
145
- head={
146
- <>
147
- <EditorStyles styles={ settings.styles } />
148
- <style>{
149
- // Forming a "block formatting context" to prevent margin collapsing.
150
- // @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context
151
- `.is-root-container { display: flow-root; }`
152
- }</style>
153
- { enableResizing && (
154
- <style>
155
- {
156
- // Force the <html> and <body>'s heights to fit the content.
157
- `html, body { height: -moz-fit-content !important; height: fit-content !important; min-height: 0 !important; }`
158
- }
159
- {
160
- // Some themes will have `min-height: 100vh` for the root container,
161
- // which isn't a requirement in auto resize mode.
162
- `.is-root-container { min-height: 0 !important; }`
163
- }
164
- </style>
165
- ) }
166
- </>
167
- }
168
- assets={ settings.__unstableResolvedAssets }
169
- ref={ ref }
170
- name="editor-canvas"
171
- className="edit-site-visual-editor__editor-canvas"
172
- { ...props }
173
- >
174
- { /* Filters need to be rendered before children to avoid Safari rendering issues. */ }
175
- { settings.svgFilters }
176
- { children }
177
- </Iframe>
77
+ { children }
178
78
  </ResizableBox>
179
79
  );
180
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%;