@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
@@ -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,22 +1,8 @@
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
- z-index: z-index(".edit-site-editor__toggle-save-panel");
11
- position: fixed !important; // Need to override the default relative positioning
12
- top: -9999em;
13
- bottom: auto;
14
- left: auto;
15
- right: 0;
2
+ box-sizing: border-box;
16
3
  width: $sidebar-width;
17
4
  background-color: $white;
18
5
  border: 1px dotted $gray-300;
19
- height: auto !important; // Need to override the default sidebar positioning
20
6
  padding: $grid-unit-30;
21
7
  display: flex;
22
8
  justify-content: center;
@@ -28,20 +14,6 @@ html.wp-toolbar {
28
14
  }
29
15
  }
30
16
 
31
- .edit-site-visual-editor {
32
- position: relative;
33
- height: 100%;
34
- display: block;
35
- overflow: hidden;
36
-
37
- iframe {
38
- display: block;
39
- width: 100%;
40
- height: 100%;
41
- background-color: $white;
42
- }
43
- }
44
-
45
17
  // Adjust the position of the notices
46
18
  .edit-site .components-editor-notices__snackbar {
47
19
  position: fixed;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { BlockPreview } from '@wordpress/block-editor';
5
+ import { getBlockType, getBlockFromExample } from '@wordpress/blocks';
6
+ import { useResizeObserver } from '@wordpress/compose';
7
+
8
+ const BlockPreviewPanel = ( { name } ) => {
9
+ const blockExample = getBlockType( name )?.example;
10
+ const [
11
+ containerResizeListener,
12
+ { width: containerWidth, height: containerHeight },
13
+ ] = useResizeObserver();
14
+ const viewportWidth = blockExample?.viewportWidth || containerWidth;
15
+
16
+ return ! blockExample ? null : (
17
+ <div className="edit-site-global-styles__block-preview-panel">
18
+ { containerResizeListener }
19
+
20
+ <BlockPreview
21
+ viewportWidth={ viewportWidth }
22
+ __experimentalMinHeight={ containerHeight }
23
+ blocks={ getBlockFromExample( name, blockExample ) }
24
+ />
25
+ </div>
26
+ );
27
+ };
28
+
29
+ export default BlockPreviewPanel;
@@ -2,7 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __experimentalItemGroup as ItemGroup } from '@wordpress/components';
5
- import { typography, color, layout } from '@wordpress/icons';
5
+ import { typography, border, color, layout } from '@wordpress/icons';
6
6
  import { __ } from '@wordpress/i18n';
7
7
 
8
8
  /**
@@ -19,7 +19,7 @@ function ContextMenu( { name, parentMenu = '' } ) {
19
19
  const hasColorPanel = useHasColorPanel( name );
20
20
  const hasBorderPanel = useHasBorderPanel( name );
21
21
  const hasDimensionsPanel = useHasDimensionsPanel( name );
22
- const hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;
22
+ const hasLayoutPanel = hasDimensionsPanel;
23
23
 
24
24
  return (
25
25
  <ItemGroup>
@@ -41,6 +41,15 @@ function ContextMenu( { name, parentMenu = '' } ) {
41
41
  { __( 'Colors' ) }
42
42
  </NavigationButtonAsItem>
43
43
  ) }
44
+ { hasBorderPanel && (
45
+ <NavigationButtonAsItem
46
+ icon={ border }
47
+ path={ parentMenu + '/border' }
48
+ aria-label={ __( 'Border styles' ) }
49
+ >
50
+ { __( 'Border' ) }
51
+ </NavigationButtonAsItem>
52
+ ) }
44
53
  { hasLayoutPanel && (
45
54
  <NavigationButtonAsItem
46
55
  icon={ layout }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { TextareaControl, Panel, PanelBody } from '@wordpress/components';
5
+ import { __ } from '@wordpress/i18n';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { useStyle } from './hooks';
11
+
12
+ function CustomCSSControl() {
13
+ const [ customCSS, setCustomCSS ] = useStyle( 'css' );
14
+ const [ themeCSS ] = useStyle( 'css', null, 'base' );
15
+ const ignoreThemeCustomCSS = '/* IgnoreThemeCustomCSS */';
16
+
17
+ // If there is custom css from theme.json show it in the edit box
18
+ // so the user can selectively overwrite it, rather than have the user CSS
19
+ // completely overwrite the theme CSS by default.
20
+ const themeCustomCSS =
21
+ ! customCSS && themeCSS
22
+ ? `/* ${ __(
23
+ 'Theme Custom CSS start'
24
+ ) } */\n${ themeCSS }\n/* ${ __( 'Theme Custom CSS end' ) } */`
25
+ : undefined;
26
+
27
+ function handleOnChange( value ) {
28
+ // If there is theme custom CSS, but the user clears the input box then save the
29
+ // ignoreThemeCustomCSS string so that the theme custom CSS is not re-applied.
30
+ if ( themeCSS && value === '' ) {
31
+ setCustomCSS( ignoreThemeCustomCSS );
32
+ return;
33
+ }
34
+ setCustomCSS( value );
35
+ }
36
+
37
+ const originalThemeCustomCSS =
38
+ themeCSS && customCSS && themeCustomCSS !== customCSS
39
+ ? themeCSS
40
+ : undefined;
41
+
42
+ return (
43
+ <>
44
+ <TextareaControl
45
+ value={
46
+ customCSS?.replace( ignoreThemeCustomCSS, '' ) ||
47
+ themeCustomCSS
48
+ }
49
+ onChange={ ( value ) => handleOnChange( value ) }
50
+ rows={ 15 }
51
+ className="edit-site-global-styles__custom-css-input"
52
+ spellCheck={ false }
53
+ help={ __(
54
+ "Enter your custom CSS in the textarea and preview in the editor. Changes won't take effect until you've saved the template."
55
+ ) }
56
+ />
57
+ { originalThemeCustomCSS && (
58
+ <Panel>
59
+ <PanelBody
60
+ title={ __( 'Original Theme Custom CSS' ) }
61
+ initialOpen={ false }
62
+ >
63
+ <pre className="edit-site-global-styles__custom-css-theme-css">
64
+ { originalThemeCustomCSS }
65
+ </pre>
66
+ </PanelBody>
67
+ </Panel>
68
+ ) }
69
+ </>
70
+ );
71
+ }
72
+
73
+ export default CustomCSSControl;