@wordpress/edit-site 5.2.0 → 5.3.1

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 (409) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/add-new-template/add-custom-generic-template-modal.js +8 -10
  3. package/build/components/add-new-template/add-custom-generic-template-modal.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-template-modal.js +0 -1
  5. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
  6. package/build/components/add-new-template/new-template-part.js +9 -32
  7. package/build/components/add-new-template/new-template-part.js.map +1 -1
  8. package/build/components/add-new-template/new-template.js +5 -4
  9. package/build/components/add-new-template/new-template.js.map +1 -1
  10. package/build/components/add-new-template/utils.js +1 -9
  11. package/build/components/add-new-template/utils.js.map +1 -1
  12. package/build/components/app/index.js +2 -7
  13. package/build/components/app/index.js.map +1 -1
  14. package/build/components/block-editor/editor-canvas.js +13 -2
  15. package/build/components/block-editor/editor-canvas.js.map +1 -1
  16. package/build/components/block-editor/index.js +16 -14
  17. package/build/components/block-editor/index.js.map +1 -1
  18. package/build/components/block-editor/inserter-media-categories.js +237 -0
  19. package/build/components/block-editor/inserter-media-categories.js.map +1 -0
  20. package/build/components/canvas-spinner/index.js +20 -0
  21. package/build/components/canvas-spinner/index.js.map +1 -0
  22. package/build/components/create-template-part-modal/index.js +4 -2
  23. package/build/components/create-template-part-modal/index.js.map +1 -1
  24. package/build/components/editor/index.js +9 -5
  25. package/build/components/editor/index.js.map +1 -1
  26. package/build/components/error-boundary/index.js +2 -12
  27. package/build/components/error-boundary/index.js.map +1 -1
  28. package/build/components/error-boundary/warning.js +5 -28
  29. package/build/components/error-boundary/warning.js.map +1 -1
  30. package/build/components/global-styles/block-preview-panel.js +2 -2
  31. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  32. package/build/components/global-styles/border-panel.js +17 -9
  33. package/build/components/global-styles/border-panel.js.map +1 -1
  34. package/build/components/global-styles/color-palette-panel.js +13 -7
  35. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  36. package/build/components/global-styles/context-menu.js +39 -4
  37. package/build/components/global-styles/context-menu.js.map +1 -1
  38. package/build/components/global-styles/custom-css.js +65 -14
  39. package/build/components/global-styles/custom-css.js.map +1 -1
  40. package/build/components/global-styles/dimensions-panel.js +49 -31
  41. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  42. package/build/components/global-styles/global-styles-provider.js +13 -3
  43. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  44. package/build/components/global-styles/gradients-palette-panel.js +17 -11
  45. package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
  46. package/build/components/global-styles/hooks.js +21 -142
  47. package/build/components/global-styles/hooks.js.map +1 -1
  48. package/build/components/global-styles/index.js +0 -28
  49. package/build/components/global-styles/index.js.map +1 -1
  50. package/build/components/global-styles/palette.js +11 -4
  51. package/build/components/global-styles/palette.js.map +1 -1
  52. package/build/components/global-styles/preview.js +18 -15
  53. package/build/components/global-styles/preview.js.map +1 -1
  54. package/build/components/global-styles/screen-background-color.js +27 -13
  55. package/build/components/global-styles/screen-background-color.js.map +1 -1
  56. package/build/components/global-styles/screen-border.js +10 -4
  57. package/build/components/global-styles/screen-border.js.map +1 -1
  58. package/build/components/global-styles/screen-button-color.js +16 -9
  59. package/build/components/global-styles/screen-button-color.js.map +1 -1
  60. package/build/components/global-styles/screen-colors.js +43 -34
  61. package/build/components/global-styles/screen-colors.js.map +1 -1
  62. package/build/components/global-styles/screen-css.js +20 -8
  63. package/build/components/global-styles/screen-css.js.map +1 -1
  64. package/build/components/global-styles/screen-heading-color.js +23 -16
  65. package/build/components/global-styles/screen-heading-color.js.map +1 -1
  66. package/build/components/global-styles/screen-layout.js +3 -3
  67. package/build/components/global-styles/screen-layout.js.map +1 -1
  68. package/build/components/global-styles/screen-link-color.js +18 -11
  69. package/build/components/global-styles/screen-link-color.js.map +1 -1
  70. package/build/components/global-styles/screen-root.js +25 -9
  71. package/build/components/global-styles/screen-root.js.map +1 -1
  72. package/build/components/global-styles/screen-style-variations.js +8 -4
  73. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  74. package/build/components/global-styles/screen-text-color.js +14 -7
  75. package/build/components/global-styles/screen-text-color.js.map +1 -1
  76. package/build/components/global-styles/screen-typography.js +18 -12
  77. package/build/components/global-styles/screen-typography.js.map +1 -1
  78. package/build/components/global-styles/shadow-panel.js +196 -0
  79. package/build/components/global-styles/shadow-panel.js.map +1 -0
  80. package/build/components/global-styles/typography-panel.js +43 -29
  81. package/build/components/global-styles/typography-panel.js.map +1 -1
  82. package/build/components/global-styles/typography-preview.js +19 -9
  83. package/build/components/global-styles/typography-preview.js.map +1 -1
  84. package/build/components/global-styles/ui.js +104 -34
  85. package/build/components/global-styles/ui.js.map +1 -1
  86. package/build/components/global-styles/utils.js +5 -334
  87. package/build/components/global-styles/utils.js.map +1 -1
  88. package/build/components/global-styles-renderer/index.js +7 -5
  89. package/build/components/global-styles-renderer/index.js.map +1 -1
  90. package/build/components/header-edit-mode/document-actions/index.js +2 -2
  91. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  92. package/build/components/keyboard-shortcut-help-modal/index.js +0 -1
  93. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  94. package/build/components/layout/index.js +11 -11
  95. package/build/components/layout/index.js.map +1 -1
  96. package/build/components/list/actions/rename-menu-item.js +8 -11
  97. package/build/components/list/actions/rename-menu-item.js.map +1 -1
  98. package/build/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +9 -6
  99. package/build/components/navigation-inspector/index.js.map +1 -0
  100. package/build/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +14 -14
  101. package/build/components/navigation-inspector/navigation-menu.js.map +1 -0
  102. package/build/components/sidebar/index.js +3 -1
  103. package/build/components/sidebar/index.js.map +1 -1
  104. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +3 -18
  105. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  106. package/build/components/sidebar-edit-mode/index.js +1 -14
  107. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  108. package/build/components/sidebar-navigation-screen/index.js +3 -2
  109. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  110. package/build/components/sidebar-navigation-screen-main/index.js +23 -1
  111. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  112. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +52 -0
  113. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -0
  114. package/build/components/sidebar-navigation-screen-templates/index.js +3 -8
  115. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  116. package/build/components/site-hub/index.js +11 -10
  117. package/build/components/site-hub/index.js.map +1 -1
  118. package/build/components/site-icon/index.js +1 -1
  119. package/build/components/site-icon/index.js.map +1 -1
  120. package/build/components/style-book/index.js +7 -4
  121. package/build/components/style-book/index.js.map +1 -1
  122. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +6 -4
  123. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  124. package/build/components/template-part-converter/convert-to-template-part.js +5 -9
  125. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  126. package/build/experiments.js +19 -0
  127. package/build/experiments.js.map +1 -0
  128. package/build/hooks/push-changes-to-global-styles/index.js +65 -6
  129. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  130. package/build/index.js +53 -60
  131. package/build/index.js.map +1 -1
  132. package/build/store/actions.js +1 -27
  133. package/build/store/actions.js.map +1 -1
  134. package/build/store/index.js +8 -0
  135. package/build/store/index.js.map +1 -1
  136. package/build/store/private-actions.js +40 -0
  137. package/build/store/private-actions.js.map +1 -0
  138. package/build/store/private-selectors.js +18 -0
  139. package/build/store/private-selectors.js.map +1 -0
  140. package/build/store/selectors.js +7 -40
  141. package/build/store/selectors.js.map +1 -1
  142. package/build/store/utils.js +77 -0
  143. package/build/store/utils.js.map +1 -0
  144. package/build/utils/template-part-create.js +71 -0
  145. package/build/utils/template-part-create.js.map +1 -0
  146. package/build-module/components/add-new-template/add-custom-generic-template-modal.js +9 -11
  147. package/build-module/components/add-new-template/add-custom-generic-template-modal.js.map +1 -1
  148. package/build-module/components/add-new-template/add-custom-template-modal.js +0 -1
  149. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  150. package/build-module/components/add-new-template/new-template-part.js +8 -31
  151. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  152. package/build-module/components/add-new-template/new-template.js +4 -4
  153. package/build-module/components/add-new-template/new-template.js.map +1 -1
  154. package/build-module/components/add-new-template/utils.js +0 -5
  155. package/build-module/components/add-new-template/utils.js.map +1 -1
  156. package/build-module/components/app/index.js +2 -7
  157. package/build-module/components/app/index.js.map +1 -1
  158. package/build-module/components/block-editor/editor-canvas.js +13 -3
  159. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  160. package/build-module/components/block-editor/index.js +17 -15
  161. package/build-module/components/block-editor/index.js.map +1 -1
  162. package/build-module/components/block-editor/inserter-media-categories.js +225 -0
  163. package/build-module/components/block-editor/inserter-media-categories.js.map +1 -0
  164. package/build-module/components/canvas-spinner/index.js +12 -0
  165. package/build-module/components/canvas-spinner/index.js.map +1 -0
  166. package/build-module/components/create-template-part-modal/index.js +5 -3
  167. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  168. package/build-module/components/editor/index.js +7 -5
  169. package/build-module/components/editor/index.js.map +1 -1
  170. package/build-module/components/error-boundary/index.js +2 -12
  171. package/build-module/components/error-boundary/index.js.map +1 -1
  172. package/build-module/components/error-boundary/warning.js +5 -28
  173. package/build-module/components/error-boundary/warning.js.map +1 -1
  174. package/build-module/components/global-styles/block-preview-panel.js +2 -2
  175. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  176. package/build-module/components/global-styles/border-panel.js +17 -11
  177. package/build-module/components/global-styles/border-panel.js.map +1 -1
  178. package/build-module/components/global-styles/color-palette-panel.js +11 -7
  179. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  180. package/build-module/components/global-styles/context-menu.js +40 -8
  181. package/build-module/components/global-styles/context-menu.js.map +1 -1
  182. package/build-module/components/global-styles/custom-css.js +61 -15
  183. package/build-module/components/global-styles/custom-css.js.map +1 -1
  184. package/build-module/components/global-styles/dimensions-panel.js +49 -32
  185. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  186. package/build-module/components/global-styles/global-styles-provider.js +7 -2
  187. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  188. package/build-module/components/global-styles/gradients-palette-panel.js +15 -11
  189. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  190. package/build-module/components/global-styles/hooks.js +23 -134
  191. package/build-module/components/global-styles/hooks.js.map +1 -1
  192. package/build-module/components/global-styles/index.js +0 -2
  193. package/build-module/components/global-styles/index.js.map +1 -1
  194. package/build-module/components/global-styles/palette.js +10 -5
  195. package/build-module/components/global-styles/palette.js.map +1 -1
  196. package/build-module/components/global-styles/preview.js +18 -14
  197. package/build-module/components/global-styles/preview.js.map +1 -1
  198. package/build-module/components/global-styles/screen-background-color.js +26 -15
  199. package/build-module/components/global-styles/screen-background-color.js.map +1 -1
  200. package/build-module/components/global-styles/screen-border.js +10 -5
  201. package/build-module/components/global-styles/screen-border.js.map +1 -1
  202. package/build-module/components/global-styles/screen-button-color.js +16 -11
  203. package/build-module/components/global-styles/screen-button-color.js.map +1 -1
  204. package/build-module/components/global-styles/screen-colors.js +43 -37
  205. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  206. package/build-module/components/global-styles/screen-css.js +21 -9
  207. package/build-module/components/global-styles/screen-css.js.map +1 -1
  208. package/build-module/components/global-styles/screen-heading-color.js +23 -18
  209. package/build-module/components/global-styles/screen-heading-color.js.map +1 -1
  210. package/build-module/components/global-styles/screen-layout.js +4 -4
  211. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  212. package/build-module/components/global-styles/screen-link-color.js +18 -13
  213. package/build-module/components/global-styles/screen-link-color.js.map +1 -1
  214. package/build-module/components/global-styles/screen-root.js +23 -9
  215. package/build-module/components/global-styles/screen-root.js.map +1 -1
  216. package/build-module/components/global-styles/screen-style-variations.js +5 -2
  217. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  218. package/build-module/components/global-styles/screen-text-color.js +14 -9
  219. package/build-module/components/global-styles/screen-text-color.js.map +1 -1
  220. package/build-module/components/global-styles/screen-typography.js +16 -12
  221. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  222. package/build-module/components/global-styles/shadow-panel.js +177 -0
  223. package/build-module/components/global-styles/shadow-panel.js.map +1 -0
  224. package/build-module/components/global-styles/typography-panel.js +43 -31
  225. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  226. package/build-module/components/global-styles/typography-preview.js +17 -9
  227. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  228. package/build-module/components/global-styles/ui.js +98 -35
  229. package/build-module/components/global-styles/ui.js.map +1 -1
  230. package/build-module/components/global-styles/utils.js +4 -319
  231. package/build-module/components/global-styles/utils.js.map +1 -1
  232. package/build-module/components/global-styles-renderer/index.js +5 -5
  233. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  234. package/build-module/components/header-edit-mode/document-actions/index.js +2 -2
  235. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  236. package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
  237. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  238. package/build-module/components/layout/index.js +10 -11
  239. package/build-module/components/layout/index.js.map +1 -1
  240. package/build-module/components/list/actions/rename-menu-item.js +9 -12
  241. package/build-module/components/list/actions/rename-menu-item.js.map +1 -1
  242. package/build-module/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +9 -6
  243. package/build-module/components/navigation-inspector/index.js.map +1 -0
  244. package/build-module/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +14 -15
  245. package/build-module/components/navigation-inspector/navigation-menu.js.map +1 -0
  246. package/build-module/components/sidebar/index.js +2 -1
  247. package/build-module/components/sidebar/index.js.map +1 -1
  248. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +6 -21
  249. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  250. package/build-module/components/sidebar-edit-mode/index.js +1 -13
  251. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  252. package/build-module/components/sidebar-navigation-screen/index.js +3 -2
  253. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  254. package/build-module/components/sidebar-navigation-screen-main/index.js +22 -2
  255. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  256. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +40 -0
  257. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -0
  258. package/build-module/components/sidebar-navigation-screen-templates/index.js +4 -9
  259. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  260. package/build-module/components/site-hub/index.js +10 -10
  261. package/build-module/components/site-hub/index.js.map +1 -1
  262. package/build-module/components/site-icon/index.js +1 -1
  263. package/build-module/components/site-icon/index.js.map +1 -1
  264. package/build-module/components/style-book/index.js +8 -5
  265. package/build-module/components/style-book/index.js.map +1 -1
  266. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +5 -4
  267. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  268. package/build-module/components/template-part-converter/convert-to-template-part.js +5 -9
  269. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  270. package/build-module/experiments.js +9 -0
  271. package/build-module/experiments.js.map +1 -0
  272. package/build-module/hooks/push-changes-to-global-styles/index.js +62 -3
  273. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  274. package/build-module/index.js +52 -60
  275. package/build-module/index.js.map +1 -1
  276. package/build-module/store/actions.js +0 -23
  277. package/build-module/store/actions.js.map +1 -1
  278. package/build-module/store/index.js +5 -0
  279. package/build-module/store/index.js.map +1 -1
  280. package/build-module/store/private-actions.js +29 -0
  281. package/build-module/store/private-actions.js.map +1 -0
  282. package/build-module/store/private-selectors.js +11 -0
  283. package/build-module/store/private-selectors.js.map +1 -0
  284. package/build-module/store/selectors.js +6 -37
  285. package/build-module/store/selectors.js.map +1 -1
  286. package/build-module/store/utils.js +66 -0
  287. package/build-module/store/utils.js.map +1 -0
  288. package/build-module/utils/template-part-create.js +53 -0
  289. package/build-module/utils/template-part-create.js.map +1 -0
  290. package/build-style/style-rtl.css +314 -216
  291. package/build-style/style.css +314 -216
  292. package/package.json +32 -30
  293. package/src/components/add-new-template/add-custom-generic-template-modal.js +20 -28
  294. package/src/components/add-new-template/add-custom-template-modal.js +0 -1
  295. package/src/components/add-new-template/new-template-part.js +14 -34
  296. package/src/components/add-new-template/new-template.js +5 -3
  297. package/src/components/add-new-template/style.scss +0 -4
  298. package/src/components/add-new-template/utils.js +0 -14
  299. package/src/components/app/index.js +2 -2
  300. package/src/components/block-editor/editor-canvas.js +12 -2
  301. package/src/components/block-editor/index.js +16 -28
  302. package/src/components/block-editor/inserter-media-categories.js +247 -0
  303. package/src/components/block-editor/style.scss +20 -7
  304. package/src/components/canvas-spinner/index.js +12 -0
  305. package/src/components/canvas-spinner/style.scss +7 -0
  306. package/src/components/create-template-part-modal/index.js +75 -67
  307. package/src/components/create-template-part-modal/style.scss +0 -10
  308. package/src/components/editor/index.js +8 -5
  309. package/src/components/error-boundary/index.js +2 -10
  310. package/src/components/error-boundary/warning.js +6 -35
  311. package/src/components/global-styles/README.md +1 -75
  312. package/src/components/global-styles/block-preview-panel.js +2 -2
  313. package/src/components/global-styles/border-panel.js +19 -17
  314. package/src/components/global-styles/color-palette-panel.js +10 -7
  315. package/src/components/global-styles/context-menu.js +114 -44
  316. package/src/components/global-styles/custom-css.js +76 -19
  317. package/src/components/global-styles/dimensions-panel.js +46 -36
  318. package/src/components/global-styles/global-styles-provider.js +6 -2
  319. package/src/components/global-styles/gradients-palette-panel.js +17 -11
  320. package/src/components/global-styles/hooks.js +31 -155
  321. package/src/components/global-styles/index.js +0 -2
  322. package/src/components/global-styles/palette.js +9 -5
  323. package/src/components/global-styles/preview.js +19 -13
  324. package/src/components/global-styles/screen-background-color.js +37 -21
  325. package/src/components/global-styles/screen-border.js +10 -5
  326. package/src/components/global-styles/screen-button-color.js +21 -19
  327. package/src/components/global-styles/screen-colors.js +48 -65
  328. package/src/components/global-styles/screen-css.js +30 -14
  329. package/src/components/global-styles/screen-heading-color.js +32 -27
  330. package/src/components/global-styles/screen-layout.js +4 -7
  331. package/src/components/global-styles/screen-link-color.js +26 -26
  332. package/src/components/global-styles/screen-root.js +24 -9
  333. package/src/components/global-styles/screen-style-variations.js +7 -2
  334. package/src/components/global-styles/screen-text-color.js +15 -19
  335. package/src/components/global-styles/screen-typography.js +27 -12
  336. package/src/components/global-styles/shadow-panel.js +174 -0
  337. package/src/components/global-styles/style.scss +85 -1
  338. package/src/components/global-styles/typography-panel.js +60 -48
  339. package/src/components/global-styles/typography-preview.js +28 -9
  340. package/src/components/global-styles/ui.js +97 -53
  341. package/src/components/global-styles/utils.js +4 -371
  342. package/src/components/global-styles-renderer/index.js +3 -4
  343. package/src/components/header-edit-mode/document-actions/index.js +1 -1
  344. package/src/components/keyboard-shortcut-help-modal/index.js +0 -1
  345. package/src/components/layout/index.js +12 -4
  346. package/src/components/layout/style.scss +4 -5
  347. package/src/components/list/actions/rename-menu-item.js +14 -23
  348. package/src/components/list/style.scss +0 -4
  349. package/src/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +2 -2
  350. package/src/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +10 -12
  351. package/src/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/style.scss +0 -17
  352. package/src/components/sidebar/index.js +2 -0
  353. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +8 -32
  354. package/src/components/sidebar-edit-mode/index.js +0 -11
  355. package/src/components/sidebar-edit-mode/settings-header/style.scss +8 -0
  356. package/src/components/sidebar-navigation-item/style.scss +28 -3
  357. package/src/components/sidebar-navigation-screen/index.js +4 -3
  358. package/src/components/sidebar-navigation-screen/style.scss +2 -0
  359. package/src/components/sidebar-navigation-screen-main/index.js +23 -1
  360. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +45 -0
  361. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +12 -0
  362. package/src/components/sidebar-navigation-screen-templates/index.js +12 -19
  363. package/src/components/site-hub/index.js +8 -10
  364. package/src/components/site-hub/style.scss +7 -1
  365. package/src/components/site-icon/index.js +1 -1
  366. package/src/components/site-icon/style.scss +2 -2
  367. package/src/components/style-book/index.js +10 -5
  368. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +4 -3
  369. package/src/components/template-part-converter/convert-to-template-part.js +12 -10
  370. package/src/experiments.js +10 -0
  371. package/src/hooks/push-changes-to-global-styles/index.js +63 -5
  372. package/src/index.js +51 -59
  373. package/src/store/actions.js +0 -24
  374. package/src/store/index.js +5 -0
  375. package/src/store/private-actions.js +29 -0
  376. package/src/store/private-selectors.js +10 -0
  377. package/src/store/selectors.js +6 -37
  378. package/src/store/test/utils.js +181 -0
  379. package/src/store/utils.js +69 -0
  380. package/src/style.scss +4 -2
  381. package/src/utils/template-part-create.js +62 -0
  382. package/src/utils/test/template-part-create.js +63 -0
  383. package/build/components/global-styles/context.js +0 -22
  384. package/build/components/global-styles/context.js.map +0 -1
  385. package/build/components/global-styles/typography-utils.js +0 -92
  386. package/build/components/global-styles/typography-utils.js.map +0 -1
  387. package/build/components/global-styles/use-global-styles-output.js +0 -943
  388. package/build/components/global-styles/use-global-styles-output.js.map +0 -1
  389. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -42
  390. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +0 -1
  391. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
  392. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +0 -1
  393. package/build-module/components/global-styles/context.js +0 -12
  394. package/build-module/components/global-styles/context.js.map +0 -1
  395. package/build-module/components/global-styles/typography-utils.js +0 -84
  396. package/build-module/components/global-styles/typography-utils.js.map +0 -1
  397. package/build-module/components/global-styles/use-global-styles-output.js +0 -901
  398. package/build-module/components/global-styles/use-global-styles-output.js.map +0 -1
  399. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -28
  400. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +0 -1
  401. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
  402. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +0 -1
  403. package/src/components/global-styles/context.js +0 -15
  404. package/src/components/global-styles/test/typography-utils.js +0 -393
  405. package/src/components/global-styles/test/use-global-styles-output.js +0 -814
  406. package/src/components/global-styles/test/utils.js +0 -206
  407. package/src/components/global-styles/typography-utils.js +0 -87
  408. package/src/components/global-styles/use-global-styles-output.js +0 -1059
  409. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -37
@@ -0,0 +1,247 @@
1
+ /**
2
+ * The `edit-site` settings here need to be in sync with the corresponding ones in `site-editor` package.
3
+ * See `packages/edit-site/src/components/block-editor/inserter-media-categories.js`.
4
+ *
5
+ * In the future we could consider creating an Openvese package that can be used in both `editor` and `site-editor`.
6
+ * The rest of the settings would still need to be in sync though.
7
+ */
8
+
9
+ /**
10
+ * WordPress dependencies
11
+ */
12
+ import { __, sprintf, _x } from '@wordpress/i18n';
13
+ import { resolveSelect } from '@wordpress/data';
14
+ import { decodeEntities } from '@wordpress/html-entities';
15
+
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+ import { store as coreStore } from '@wordpress/core-data';
20
+
21
+ /** @typedef {import('@wordpress/block-editor').InserterMediaRequest} InserterMediaRequest */
22
+ /** @typedef {import('@wordpress/block-editor').InserterMediaItem} InserterMediaItem */
23
+ /**
24
+ * Interface for inserter media category labels.
25
+ *
26
+ * @typedef {Object} InserterMediaCategoryLabels
27
+ * @property {string} name General name of the media category. It's used in the inserter media items list.
28
+ * @property {string} [search_items='Search'] Label for searching items. Default is ‘Search Posts’ / ‘Search Pages’.
29
+ */
30
+ /**
31
+ * Interface for inserter media category.
32
+ *
33
+ * @typedef {Object} InserterMediaCategory
34
+ * @property {string} name The name of the media category, that should be unique among all media categories.
35
+ * @property {InserterMediaCategoryLabels} labels Labels for the media category.
36
+ * @property {('image'|'audio'|'video')} mediaType The media type of the media category.
37
+ * @property {(InserterMediaRequest) => Promise<InserterMediaItem[]>} fetch The function to fetch media items for the category.
38
+ * @property {(InserterMediaItem) => string} [getReportUrl] If the media category supports reporting media items, this function should return
39
+ * the report url for the media item. It accepts the `InserterMediaItem` as an argument.
40
+ * @property {boolean} [isExternalResource] If the media category is an external resource, this should be set to true.
41
+ * This is used to avoid making a request to the external resource when the user
42
+ * opens the inserter for the first time.
43
+ */
44
+
45
+ const getExternalLink = ( url, text ) =>
46
+ `<a ${ getExternalLinkAttributes( url ) }>${ text }</a>`;
47
+
48
+ const getExternalLinkAttributes = ( url ) =>
49
+ `href="${ url }" target="_blank" rel="noreferrer noopener"`;
50
+
51
+ const getOpenverseLicense = ( license, licenseVersion ) => {
52
+ let licenseName = license.trim();
53
+ // PDM has no abbreviation
54
+ if ( license !== 'pdm' ) {
55
+ licenseName = license.toUpperCase().replace( 'SAMPLING', 'Sampling' );
56
+ }
57
+ // If version is known, append version to the name.
58
+ // The license has to have a version to be valid. Only
59
+ // PDM (public domain mark) doesn't have a version.
60
+ if ( licenseVersion ) {
61
+ licenseName += ` ${ licenseVersion }`;
62
+ }
63
+ // For licenses other than public-domain marks, prepend 'CC' to the name.
64
+ if ( ! [ 'pdm', 'cc0' ].includes( license ) ) {
65
+ licenseName = `CC ${ licenseName }`;
66
+ }
67
+ return licenseName;
68
+ };
69
+
70
+ const getOpenverseCaption = ( item ) => {
71
+ const {
72
+ title,
73
+ foreign_landing_url: foreignLandingUrl,
74
+ creator,
75
+ creator_url: creatorUrl,
76
+ license,
77
+ license_version: licenseVersion,
78
+ license_url: licenseUrl,
79
+ } = item;
80
+ const fullLicense = getOpenverseLicense( license, licenseVersion );
81
+ const _creator = decodeEntities( creator );
82
+ let _caption;
83
+ if ( _creator ) {
84
+ _caption = title
85
+ ? sprintf(
86
+ // translators: %1s: Title of a media work from Openverse; %2s: Name of the work's creator; %3s: Work's licence e.g: "CC0 1.0".
87
+ _x( '"%1$s" by %2$s/ %3$s', 'caption' ),
88
+ getExternalLink(
89
+ foreignLandingUrl,
90
+ decodeEntities( title )
91
+ ),
92
+ creatorUrl
93
+ ? getExternalLink( creatorUrl, _creator )
94
+ : _creator,
95
+ licenseUrl
96
+ ? getExternalLink(
97
+ `${ licenseUrl }?ref=openverse`,
98
+ fullLicense
99
+ )
100
+ : fullLicense
101
+ )
102
+ : sprintf(
103
+ // translators: %1s: Link attributes for a given Openverse media work; %2s: Name of the work's creator; %3s: Works's licence e.g: "CC0 1.0".
104
+ _x( '<a %1$s>Work</a> by %2$s/ %3$s', 'caption' ),
105
+ getExternalLinkAttributes( foreignLandingUrl ),
106
+ creatorUrl
107
+ ? getExternalLink( creatorUrl, _creator )
108
+ : _creator,
109
+ licenseUrl
110
+ ? getExternalLink(
111
+ `${ licenseUrl }?ref=openverse`,
112
+ fullLicense
113
+ )
114
+ : fullLicense
115
+ );
116
+ } else {
117
+ _caption = title
118
+ ? sprintf(
119
+ // translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: "CC0 1.0".
120
+ _x( '"%1$s"/ %2$s', 'caption' ),
121
+ getExternalLink(
122
+ foreignLandingUrl,
123
+ decodeEntities( title )
124
+ ),
125
+ licenseUrl
126
+ ? getExternalLink(
127
+ `${ licenseUrl }?ref=openverse`,
128
+ fullLicense
129
+ )
130
+ : fullLicense
131
+ )
132
+ : sprintf(
133
+ // translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: "CC0 1.0".
134
+ _x( '<a %1$s>Work</a>/ %3$s', 'caption' ),
135
+ getExternalLinkAttributes( foreignLandingUrl ),
136
+ licenseUrl
137
+ ? getExternalLink(
138
+ `${ licenseUrl }?ref=openverse`,
139
+ fullLicense
140
+ )
141
+ : fullLicense
142
+ );
143
+ }
144
+ return _caption.replace( /\s{2}/g, ' ' );
145
+ };
146
+
147
+ const coreMediaFetch = async ( query = {} ) => {
148
+ const mediaItems = await resolveSelect( coreStore ).getMediaItems( {
149
+ ...query,
150
+ orderBy: !! query?.search ? 'relevance' : 'date',
151
+ } );
152
+ return mediaItems.map( ( mediaItem ) => ( {
153
+ ...mediaItem,
154
+ alt: mediaItem.alt_text,
155
+ url: mediaItem.source_url,
156
+ previewUrl: mediaItem.media_details?.sizes?.medium?.source_url,
157
+ caption: mediaItem.caption?.raw,
158
+ } ) );
159
+ };
160
+
161
+ /** @type {InserterMediaCategory[]} */
162
+ const inserterMediaCategories = [
163
+ {
164
+ name: 'images',
165
+ labels: {
166
+ name: __( 'Images' ),
167
+ search_items: __( 'Search images' ),
168
+ },
169
+ mediaType: 'image',
170
+ async fetch( query = {} ) {
171
+ return coreMediaFetch( { ...query, media_type: 'image' } );
172
+ },
173
+ },
174
+ {
175
+ name: 'videos',
176
+ labels: {
177
+ name: __( 'Videos' ),
178
+ search_items: __( 'Search videos' ),
179
+ },
180
+ mediaType: 'video',
181
+ async fetch( query = {} ) {
182
+ return coreMediaFetch( { ...query, media_type: 'video' } );
183
+ },
184
+ },
185
+ {
186
+ name: 'audio',
187
+ labels: {
188
+ name: __( 'Audio' ),
189
+ search_items: __( 'Search audio' ),
190
+ },
191
+ mediaType: 'audio',
192
+ async fetch( query = {} ) {
193
+ return coreMediaFetch( { ...query, media_type: 'audio' } );
194
+ },
195
+ },
196
+ {
197
+ name: 'openverse',
198
+ labels: {
199
+ name: __( 'Openverse' ),
200
+ search_items: __( 'Search Openverse' ),
201
+ },
202
+ mediaType: 'image',
203
+ async fetch( query = {} ) {
204
+ const defaultArgs = {
205
+ mature: false,
206
+ excluded_source: 'flickr,inaturalist,wikimedia',
207
+ license: 'pdm,cc0',
208
+ };
209
+ const finalQuery = { ...query, ...defaultArgs };
210
+ const mapFromInserterMediaRequest = {
211
+ per_page: 'page_size',
212
+ search: 'q',
213
+ };
214
+ const url = new URL(
215
+ 'https://api.openverse.engineering/v1/images/'
216
+ );
217
+ Object.entries( finalQuery ).forEach( ( [ key, value ] ) => {
218
+ const queryKey = mapFromInserterMediaRequest[ key ] || key;
219
+ url.searchParams.set( queryKey, value );
220
+ } );
221
+ const response = await window.fetch( url, {
222
+ headers: {
223
+ 'User-Agent': 'WordPress/inserter-media-fetch',
224
+ },
225
+ } );
226
+ const jsonResponse = await response.json();
227
+ const results = jsonResponse.results;
228
+ return results.map( ( result ) => ( {
229
+ ...result,
230
+ // This is a temp solution for better titles, until Openverse API
231
+ // completes the cleaning up of some titles of their upstream data.
232
+ title: result.title?.toLowerCase().startsWith( 'file:' )
233
+ ? result.title.slice( 5 )
234
+ : result.title,
235
+ sourceId: result.id,
236
+ id: undefined,
237
+ caption: getOpenverseCaption( result ),
238
+ previewUrl: result.thumbnail,
239
+ } ) );
240
+ },
241
+ getReportUrl: ( { sourceId } ) =>
242
+ `https://wordpress.org/openverse/image/${ sourceId }/report/`,
243
+ isExternalResource: true,
244
+ },
245
+ ];
246
+
247
+ export default inserterMediaCategories;
@@ -27,6 +27,11 @@
27
27
  height: 100%;
28
28
  }
29
29
 
30
+ .edit-site-visual-editor__editor-canvas {
31
+ height: 100%;
32
+ background: $white;
33
+ }
34
+
30
35
  &.is-focus-mode {
31
36
  .edit-site-layout.is-full-canvas & {
32
37
  padding: $grid-unit-60;
@@ -97,13 +102,16 @@
97
102
 
98
103
  &.is-variation-separator {
99
104
  height: 100%;
105
+ width: $grid-unit-30;
106
+ right: 0;
100
107
 
101
108
  &::after {
102
- width: 1px;
109
+ width: 2px;
103
110
  border-radius: 0;
104
- background: $gray-800;
105
- left: auto;
106
- right: 50%;
111
+ background: transparent;
112
+ left: 50%;
113
+ transform: translateX(-1px);
114
+ right: 0;
107
115
  transition: all ease 0.2s;
108
116
  transition-delay: 0.1s;
109
117
  @include reduce-motion;
@@ -112,10 +120,10 @@
112
120
 
113
121
  &::after {
114
122
  position: absolute;
115
- top: 0;
123
+ top: $grid-unit-30;
116
124
  left: $grid-unit-05;
117
125
  right: 0;
118
- bottom: 0;
126
+ bottom: $grid-unit-30;
119
127
  content: "";
120
128
  width: $grid-unit-05;
121
129
  background: $gray-600;
@@ -137,7 +145,6 @@
137
145
  background: $gray-400;
138
146
  }
139
147
  &.is-variation-separator::after {
140
- width: 2px;
141
148
  background: var(--wp-admin-theme-color);
142
149
  }
143
150
  }
@@ -145,4 +152,10 @@
145
152
  &:focus::after {
146
153
  box-shadow: 0 0 0 1px $gray-800, 0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color);
147
154
  }
155
+
156
+ &.is-variation-separator:focus::after {
157
+ border-radius: $radius-block-ui;
158
+ box-shadow: inset 0 0 0 2px var(--wp-admin-theme-color);
159
+ }
148
160
  }
161
+
@@ -0,0 +1,12 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { Spinner } from '@wordpress/components';
5
+
6
+ export default function CanvasSpinner() {
7
+ return (
8
+ <div className="edit-site-canvas-spinner">
9
+ <Spinner />
10
+ </div>
11
+ );
12
+ }
@@ -0,0 +1,7 @@
1
+ .edit-site-canvas-spinner {
2
+ width: 100%;
3
+ height: 100%;
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ }
@@ -13,6 +13,7 @@ import {
13
13
  Modal,
14
14
  __experimentalRadioGroup as RadioGroup,
15
15
  __experimentalRadio as Radio,
16
+ __experimentalVStack as VStack,
16
17
  } from '@wordpress/components';
17
18
  import { __ } from '@wordpress/i18n';
18
19
  import { useState } from '@wordpress/element';
@@ -40,7 +41,6 @@ export default function CreateTemplatePartModal( { closeModal, onCreate } ) {
40
41
  return (
41
42
  <Modal
42
43
  title={ __( 'Create a template part' ) }
43
- closeLabel={ __( 'Close' ) }
44
44
  onRequestClose={ closeModal }
45
45
  overlayClassName="edit-site-create-template-part-modal"
46
46
  >
@@ -54,76 +54,84 @@ export default function CreateTemplatePartModal( { closeModal, onCreate } ) {
54
54
  await onCreate( { title, area } );
55
55
  } }
56
56
  >
57
- <TextControl
58
- label={ __( 'Name' ) }
59
- value={ title }
60
- onChange={ setTitle }
61
- required
62
- />
63
- <BaseControl
64
- label={ __( 'Area' ) }
65
- id={ `edit-site-create-template-part-modal__area-selection-${ instanceId }` }
66
- className="edit-site-create-template-part-modal__area-base-control"
67
- >
68
- <RadioGroup
57
+ <VStack spacing="4">
58
+ <TextControl
59
+ __nextHasNoMarginBottom
60
+ label={ __( 'Name' ) }
61
+ value={ title }
62
+ onChange={ setTitle }
63
+ required
64
+ />
65
+ <BaseControl
69
66
  label={ __( 'Area' ) }
70
- className="edit-site-create-template-part-modal__area-radio-group"
71
67
  id={ `edit-site-create-template-part-modal__area-selection-${ instanceId }` }
72
- onChange={ setArea }
73
- checked={ area }
68
+ className="edit-site-create-template-part-modal__area-base-control"
74
69
  >
75
- { templatePartAreas.map(
76
- ( { icon, label, area: value, description } ) => (
77
- <Radio
78
- key={ label }
79
- value={ value }
80
- className="edit-site-create-template-part-modal__area-radio"
81
- >
82
- <Flex align="start" justify="start">
83
- <FlexItem>
84
- <Icon icon={ icon } />
85
- </FlexItem>
86
- <FlexBlock className="edit-site-create-template-part-modal__option-label">
87
- { label }
88
- <div>{ description }</div>
89
- </FlexBlock>
90
-
91
- <FlexItem className="edit-site-create-template-part-modal__checkbox">
92
- { area === value && (
93
- <Icon icon={ check } />
94
- ) }
95
- </FlexItem>
96
- </Flex>
97
- </Radio>
98
- )
99
- ) }
100
- </RadioGroup>
101
- </BaseControl>
102
- <Flex
103
- className="edit-site-create-template-part-modal__modal-actions"
104
- justify="flex-end"
105
- >
106
- <FlexItem>
107
- <Button
108
- variant="secondary"
109
- onClick={ () => {
110
- closeModal();
111
- } }
112
- >
113
- { __( 'Cancel' ) }
114
- </Button>
115
- </FlexItem>
116
- <FlexItem>
117
- <Button
118
- variant="primary"
119
- type="submit"
120
- disabled={ ! title }
121
- isBusy={ isSubmitting }
70
+ <RadioGroup
71
+ label={ __( 'Area' ) }
72
+ className="edit-site-create-template-part-modal__area-radio-group"
73
+ id={ `edit-site-create-template-part-modal__area-selection-${ instanceId }` }
74
+ onChange={ setArea }
75
+ checked={ area }
122
76
  >
123
- { __( 'Create' ) }
124
- </Button>
125
- </FlexItem>
126
- </Flex>
77
+ { templatePartAreas.map(
78
+ ( {
79
+ icon,
80
+ label,
81
+ area: value,
82
+ description,
83
+ } ) => (
84
+ <Radio
85
+ key={ label }
86
+ value={ value }
87
+ className="edit-site-create-template-part-modal__area-radio"
88
+ >
89
+ <Flex align="start" justify="start">
90
+ <FlexItem>
91
+ <Icon icon={ icon } />
92
+ </FlexItem>
93
+ <FlexBlock className="edit-site-create-template-part-modal__option-label">
94
+ { label }
95
+ <div>{ description }</div>
96
+ </FlexBlock>
97
+
98
+ <FlexItem className="edit-site-create-template-part-modal__checkbox">
99
+ { area === value && (
100
+ <Icon icon={ check } />
101
+ ) }
102
+ </FlexItem>
103
+ </Flex>
104
+ </Radio>
105
+ )
106
+ ) }
107
+ </RadioGroup>
108
+ </BaseControl>
109
+ <Flex
110
+ className="edit-site-create-template-part-modal__modal-actions"
111
+ justify="flex-end"
112
+ >
113
+ <FlexItem>
114
+ <Button
115
+ variant="secondary"
116
+ onClick={ () => {
117
+ closeModal();
118
+ } }
119
+ >
120
+ { __( 'Cancel' ) }
121
+ </Button>
122
+ </FlexItem>
123
+ <FlexItem>
124
+ <Button
125
+ variant="primary"
126
+ type="submit"
127
+ disabled={ ! title }
128
+ isBusy={ isSubmitting }
129
+ >
130
+ { __( 'Create' ) }
131
+ </Button>
132
+ </FlexItem>
133
+ </Flex>
134
+ </VStack>
127
135
  </form>
128
136
  </Modal>
129
137
  );
@@ -8,16 +8,6 @@
8
8
  }
9
9
  }
10
10
 
11
-
12
- .edit-site-create-template-part-modal__modal-actions {
13
- padding-top: $grid-unit-15;
14
- }
15
-
16
- .edit-site-create-template-part-modal__area-base-control .components-base-control__label {
17
- margin: $grid-unit-20 0 $grid-unit-10;
18
- cursor: auto;
19
- }
20
-
21
11
  .edit-site-create-template-part-modal__area-radio-group {
22
12
  width: 100%;
23
13
  border: $border-width solid $gray-700;
@@ -37,6 +37,8 @@ import { store as editSiteStore } from '../../store';
37
37
  import { GlobalStylesRenderer } from '../global-styles-renderer';
38
38
  import { GlobalStylesProvider } from '../global-styles/global-styles-provider';
39
39
  import useTitle from '../routes/use-title';
40
+ import CanvasSpinner from '../canvas-spinner';
41
+ import { unlock } from '../../experiments';
40
42
 
41
43
  const interfaceLabels = {
42
44
  /* translators: accessibility text for the editor content landmark region. */
@@ -70,11 +72,11 @@ export default function Editor() {
70
72
  getEditedPostId,
71
73
  getEditedPostContext,
72
74
  getEditorMode,
73
- __unstableGetCanvasMode,
75
+ getCanvasMode,
74
76
  isInserterOpened,
75
77
  isListViewOpened,
76
78
  isSaveViewOpened,
77
- } = select( editSiteStore );
79
+ } = unlock( select( editSiteStore ) );
78
80
  const { hasFinishedResolution, getEntityRecord } = select( coreStore );
79
81
  const { __unstableGetEditorMode } = select( blockEditorStore );
80
82
  const { getActiveComplementaryArea } = select( interfaceStore );
@@ -98,7 +100,7 @@ export default function Editor() {
98
100
  ] )
99
101
  : false,
100
102
  editorMode: getEditorMode(),
101
- canvasMode: __unstableGetCanvasMode(),
103
+ canvasMode: getCanvasMode(),
102
104
  blockEditorMode: __unstableGetEditorMode(),
103
105
  isInserterOpen: isInserterOpened(),
104
106
  isListViewOpen: isListViewOpened(),
@@ -149,7 +151,7 @@ export default function Editor() {
149
151
  useTitle( isReady && __( 'Editor (beta)' ) );
150
152
 
151
153
  if ( ! isReady ) {
152
- return null;
154
+ return <CanvasSpinner />;
153
155
  }
154
156
 
155
157
  return (
@@ -179,7 +181,8 @@ export default function Editor() {
179
181
  <BlockEditor />
180
182
  ) }
181
183
  { editorMode === 'text' &&
182
- editedPost && <CodeEditor /> }
184
+ editedPost &&
185
+ isEditMode && <CodeEditor /> }
183
186
  { hasLoadedPost && ! editedPost && (
184
187
  <Notice
185
188
  status="warning"
@@ -14,8 +14,6 @@ export default class ErrorBoundary extends Component {
14
14
  constructor() {
15
15
  super( ...arguments );
16
16
 
17
- this.reboot = this.reboot.bind( this );
18
-
19
17
  this.state = {
20
18
  error: null,
21
19
  };
@@ -29,13 +27,8 @@ export default class ErrorBoundary extends Component {
29
27
  return { error };
30
28
  }
31
29
 
32
- reboot() {
33
- this.props.onError();
34
- }
35
-
36
30
  render() {
37
- const { error } = this.state;
38
- if ( ! error ) {
31
+ if ( ! this.state.error ) {
39
32
  return this.props.children;
40
33
  }
41
34
 
@@ -44,8 +37,7 @@ export default class ErrorBoundary extends Component {
44
37
  message={ __(
45
38
  'The editor has encountered an unexpected error.'
46
39
  ) }
47
- error={ error }
48
- reboot={ this.reboot }
40
+ error={ this.state.error }
49
41
  />
50
42
  );
51
43
  }
@@ -15,41 +15,12 @@ function CopyButton( { text, children } ) {
15
15
  );
16
16
  }
17
17
 
18
- export default function ErrorBoundaryWarning( {
19
- message,
20
- error,
21
- reboot,
22
- dashboardLink,
23
- } ) {
24
- const actions = [];
25
-
26
- if ( reboot ) {
27
- actions.push(
28
- <Button key="recovery" onClick={ reboot } variant="secondary">
29
- { __( 'Attempt Recovery' ) }
30
- </Button>
31
- );
32
- }
33
-
34
- if ( error ) {
35
- actions.push(
36
- <CopyButton key="copy-error" text={ error.stack }>
37
- { __( 'Copy Error' ) }
38
- </CopyButton>
39
- );
40
- }
41
-
42
- if ( dashboardLink ) {
43
- actions.push(
44
- <Button
45
- key="back-to-dashboard"
46
- variant="secondary"
47
- href={ dashboardLink }
48
- >
49
- { __( 'Back to dashboard' ) }
50
- </Button>
51
- );
52
- }
18
+ export default function ErrorBoundaryWarning( { message, error } ) {
19
+ const actions = [
20
+ <CopyButton key="copy-error" text={ error.stack }>
21
+ { __( 'Copy Error' ) }
22
+ </CopyButton>,
23
+ ];
53
24
 
54
25
  return (
55
26
  <Warning className="editor-error-boundary" actions={ actions }>