@wordpress/edit-site 4.19.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/add-new-template/add-custom-template-modal.js +1 -0
  3. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
  4. package/build/components/add-new-template/index.js +8 -5
  5. package/build/components/add-new-template/index.js.map +1 -1
  6. package/build/components/add-new-template/new-template-part.js +21 -6
  7. package/build/components/add-new-template/new-template-part.js.map +1 -1
  8. package/build/components/add-new-template/new-template.js +12 -8
  9. package/build/components/add-new-template/new-template.js.map +1 -1
  10. package/build/components/app/index.js +15 -30
  11. package/build/components/app/index.js.map +1 -1
  12. package/build/components/block-editor/editor-canvas.js +64 -0
  13. package/build/components/block-editor/editor-canvas.js.map +1 -0
  14. package/build/components/block-editor/index.js +61 -59
  15. package/build/components/block-editor/index.js.map +1 -1
  16. package/build/components/block-editor/resizable-editor.js +10 -44
  17. package/build/components/block-editor/resizable-editor.js.map +1 -1
  18. package/build/components/editor/index.js +80 -127
  19. package/build/components/editor/index.js.map +1 -1
  20. package/build/components/global-styles/block-preview-panel.js +42 -0
  21. package/build/components/global-styles/block-preview-panel.js.map +1 -0
  22. package/build/components/global-styles/context-menu.js +6 -2
  23. package/build/components/global-styles/context-menu.js.map +1 -1
  24. package/build/components/global-styles/custom-css.js +61 -0
  25. package/build/components/global-styles/custom-css.js.map +1 -0
  26. package/build/components/global-styles/dimensions-panel.js +2 -6
  27. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  28. package/build/components/global-styles/global-styles-provider.js +15 -2
  29. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  30. package/build/components/global-styles/hooks.js +5 -2
  31. package/build/components/global-styles/hooks.js.map +1 -1
  32. package/build/components/global-styles/palette.js +1 -1
  33. package/build/components/global-styles/palette.js.map +1 -1
  34. package/build/components/global-styles/screen-block-list.js +2 -1
  35. package/build/components/global-styles/screen-block-list.js.map +1 -1
  36. package/build/components/global-styles/screen-block.js +10 -2
  37. package/build/components/global-styles/screen-block.js.map +1 -1
  38. package/build/components/global-styles/screen-border.js +43 -0
  39. package/build/components/global-styles/screen-border.js.map +1 -0
  40. package/build/components/global-styles/screen-colors.js +1 -1
  41. package/build/components/global-styles/screen-colors.js.map +1 -1
  42. package/build/components/global-styles/screen-css.js +42 -0
  43. package/build/components/global-styles/screen-css.js.map +1 -0
  44. package/build/components/global-styles/screen-layout.js +0 -5
  45. package/build/components/global-styles/screen-layout.js.map +1 -1
  46. package/build/components/global-styles/screen-root.js +14 -1
  47. package/build/components/global-styles/screen-root.js.map +1 -1
  48. package/build/components/global-styles/screen-style-variations.js +3 -3
  49. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  50. package/build/components/global-styles/ui.js +50 -4
  51. package/build/components/global-styles/ui.js.map +1 -1
  52. package/build/components/global-styles/use-global-styles-output.js +5 -1
  53. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  54. package/build/components/global-styles/utils.js +3 -3
  55. package/build/components/global-styles/utils.js.map +1 -1
  56. package/build/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +4 -8
  57. package/build/components/global-styles-renderer/index.js.map +1 -0
  58. package/build/components/header-edit-mode/document-actions/index.js +12 -5
  59. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  60. package/build/components/header-edit-mode/index.js +19 -12
  61. package/build/components/header-edit-mode/index.js.map +1 -1
  62. package/build/components/keyboard-shortcuts/index.js +11 -1
  63. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  64. package/build/components/layout/index.js +231 -0
  65. package/build/components/layout/index.js.map +1 -0
  66. package/build/components/list/header.js +5 -1
  67. package/build/components/list/header.js.map +1 -1
  68. package/build/components/list/index.js +4 -22
  69. package/build/components/list/index.js.map +1 -1
  70. package/build/components/navigate-to-link/index.js +1 -3
  71. package/build/components/navigate-to-link/index.js.map +1 -1
  72. package/build/components/routes/index.js +1 -1
  73. package/build/components/routes/index.js.map +1 -1
  74. package/build/components/sidebar/index.js +42 -0
  75. package/build/components/sidebar/index.js.map +1 -0
  76. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +24 -4
  77. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  78. package/build/components/sidebar-edit-mode/index.js +1 -1
  79. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  80. package/build/components/sidebar-navigation-item/index.js +53 -0
  81. package/build/components/sidebar-navigation-item/index.js.map +1 -0
  82. package/build/components/sidebar-navigation-screen/index.js +49 -0
  83. package/build/components/sidebar-navigation-screen/index.js.map +1 -0
  84. package/build/components/sidebar-navigation-screen-main/index.js +76 -0
  85. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -0
  86. package/build/components/sidebar-navigation-screen-templates/index.js +188 -0
  87. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -0
  88. package/build/components/site-icon/index.js +70 -0
  89. package/build/components/site-icon/index.js.map +1 -0
  90. package/build/components/site-title/index.js +55 -0
  91. package/build/components/site-title/index.js.map +1 -0
  92. package/build/components/style-book/index.js +173 -0
  93. package/build/components/style-book/index.js.map +1 -0
  94. package/build/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +5 -4
  95. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -0
  96. package/build/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +53 -0
  97. package/build/components/sync-state-with-url/use-sync-sidebar-path-with-url.js.map +1 -0
  98. package/build/index.js +2 -45
  99. package/build/index.js.map +1 -1
  100. package/build/store/actions.js +93 -43
  101. package/build/store/actions.js.map +1 -1
  102. package/build/store/reducer.js +35 -107
  103. package/build/store/reducer.js.map +1 -1
  104. package/build/store/selectors.js +69 -78
  105. package/build/store/selectors.js.map +1 -1
  106. package/build-module/components/add-new-template/add-custom-template-modal.js +1 -0
  107. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  108. package/build-module/components/add-new-template/index.js +7 -5
  109. package/build-module/components/add-new-template/index.js.map +1 -1
  110. package/build-module/components/add-new-template/new-template-part.js +18 -6
  111. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  112. package/build-module/components/add-new-template/new-template.js +13 -9
  113. package/build-module/components/add-new-template/new-template.js.map +1 -1
  114. package/build-module/components/app/index.js +15 -28
  115. package/build-module/components/app/index.js.map +1 -1
  116. package/build-module/components/block-editor/editor-canvas.js +51 -0
  117. package/build-module/components/block-editor/editor-canvas.js.map +1 -0
  118. package/build-module/components/block-editor/index.js +61 -60
  119. package/build-module/components/block-editor/index.js.map +1 -1
  120. package/build-module/components/block-editor/resizable-editor.js +11 -40
  121. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  122. package/build-module/components/editor/index.js +81 -124
  123. package/build-module/components/editor/index.js.map +1 -1
  124. package/build-module/components/global-styles/block-preview-panel.js +32 -0
  125. package/build-module/components/global-styles/block-preview-panel.js.map +1 -0
  126. package/build-module/components/global-styles/context-menu.js +7 -3
  127. package/build-module/components/global-styles/context-menu.js.map +1 -1
  128. package/build-module/components/global-styles/custom-css.js +51 -0
  129. package/build-module/components/global-styles/custom-css.js.map +1 -0
  130. package/build-module/components/global-styles/dimensions-panel.js +3 -7
  131. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  132. package/build-module/components/global-styles/global-styles-provider.js +15 -2
  133. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  134. package/build-module/components/global-styles/hooks.js +5 -3
  135. package/build-module/components/global-styles/hooks.js.map +1 -1
  136. package/build-module/components/global-styles/palette.js +1 -1
  137. package/build-module/components/global-styles/palette.js.map +1 -1
  138. package/build-module/components/global-styles/screen-block-list.js +2 -1
  139. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  140. package/build-module/components/global-styles/screen-block.js +8 -2
  141. package/build-module/components/global-styles/screen-block.js.map +1 -1
  142. package/build-module/components/global-styles/screen-border.js +27 -0
  143. package/build-module/components/global-styles/screen-border.js.map +1 -0
  144. package/build-module/components/global-styles/screen-colors.js +1 -1
  145. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  146. package/build-module/components/global-styles/screen-css.js +28 -0
  147. package/build-module/components/global-styles/screen-css.js.map +1 -0
  148. package/build-module/components/global-styles/screen-layout.js +0 -4
  149. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  150. package/build-module/components/global-styles/screen-root.js +14 -1
  151. package/build-module/components/global-styles/screen-root.js.map +1 -1
  152. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  153. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  154. package/build-module/components/global-styles/ui.js +48 -5
  155. package/build-module/components/global-styles/ui.js.map +1 -1
  156. package/build-module/components/global-styles/use-global-styles-output.js +5 -1
  157. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  158. package/build-module/components/global-styles/utils.js +4 -4
  159. package/build-module/components/global-styles/utils.js.map +1 -1
  160. package/build-module/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +4 -7
  161. package/build-module/components/global-styles-renderer/index.js.map +1 -0
  162. package/build-module/components/header-edit-mode/document-actions/index.js +13 -6
  163. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  164. package/build-module/components/header-edit-mode/index.js +16 -11
  165. package/build-module/components/header-edit-mode/index.js.map +1 -1
  166. package/build-module/components/keyboard-shortcuts/index.js +10 -1
  167. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  168. package/build-module/components/layout/index.js +203 -0
  169. package/build-module/components/layout/index.js.map +1 -0
  170. package/build-module/components/list/header.js +5 -1
  171. package/build-module/components/list/header.js.map +1 -1
  172. package/build-module/components/list/index.js +4 -19
  173. package/build-module/components/list/index.js.map +1 -1
  174. package/build-module/components/navigate-to-link/index.js +1 -3
  175. package/build-module/components/navigate-to-link/index.js.map +1 -1
  176. package/build-module/components/routes/index.js +1 -1
  177. package/build-module/components/routes/index.js.map +1 -1
  178. package/build-module/components/sidebar/index.js +30 -0
  179. package/build-module/components/sidebar/index.js.map +1 -0
  180. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +27 -7
  181. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  182. package/build-module/components/sidebar-edit-mode/index.js +3 -3
  183. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  184. package/build-module/components/sidebar-navigation-item/index.js +40 -0
  185. package/build-module/components/sidebar-navigation-item/index.js.map +1 -0
  186. package/build-module/components/sidebar-navigation-screen/index.js +39 -0
  187. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -0
  188. package/build-module/components/sidebar-navigation-screen-main/index.js +57 -0
  189. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -0
  190. package/build-module/components/sidebar-navigation-screen-templates/index.js +165 -0
  191. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -0
  192. package/build-module/components/site-icon/index.js +55 -0
  193. package/build-module/components/site-icon/index.js.map +1 -0
  194. package/build-module/components/site-title/index.js +43 -0
  195. package/build-module/components/site-title/index.js.map +1 -0
  196. package/build-module/components/style-book/index.js +156 -0
  197. package/build-module/components/style-book/index.js.map +1 -0
  198. package/build-module/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +4 -3
  199. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -0
  200. package/build-module/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +43 -0
  201. package/build-module/components/sync-state-with-url/use-sync-sidebar-path-with-url.js.map +1 -0
  202. package/build-module/index.js +5 -36
  203. package/build-module/index.js.map +1 -1
  204. package/build-module/store/actions.js +87 -42
  205. package/build-module/store/actions.js.map +1 -1
  206. package/build-module/store/reducer.js +35 -102
  207. package/build-module/store/reducer.js.map +1 -1
  208. package/build-module/store/selectors.js +60 -72
  209. package/build-module/store/selectors.js.map +1 -1
  210. package/build-style/style-rtl.css +550 -346
  211. package/build-style/style.css +550 -346
  212. package/package.json +32 -31
  213. package/src/components/add-new-template/add-custom-template-modal.js +1 -0
  214. package/src/components/add-new-template/index.js +6 -3
  215. package/src/components/add-new-template/new-template-part.js +15 -3
  216. package/src/components/add-new-template/new-template.js +14 -7
  217. package/src/components/add-new-template/style.scss +0 -4
  218. package/src/components/app/index.js +14 -43
  219. package/src/components/block-editor/editor-canvas.js +69 -0
  220. package/src/components/block-editor/index.js +102 -87
  221. package/src/components/block-editor/resizable-editor.js +9 -64
  222. package/src/components/block-editor/style.scss +25 -1
  223. package/src/components/code-editor/style.scss +1 -1
  224. package/src/components/editor/index.js +170 -236
  225. package/src/components/editor/style.scss +0 -22
  226. package/src/components/global-styles/block-preview-panel.js +29 -0
  227. package/src/components/global-styles/context-menu.js +11 -2
  228. package/src/components/global-styles/custom-css.js +73 -0
  229. package/src/components/global-styles/dimensions-panel.js +2 -5
  230. package/src/components/global-styles/global-styles-provider.js +39 -17
  231. package/src/components/global-styles/hooks.js +8 -3
  232. package/src/components/global-styles/palette.js +1 -1
  233. package/src/components/global-styles/screen-block-list.js +2 -1
  234. package/src/components/global-styles/screen-block.js +9 -1
  235. package/src/components/global-styles/screen-border.js +23 -0
  236. package/src/components/global-styles/screen-colors.js +2 -1
  237. package/src/components/global-styles/screen-css.js +33 -0
  238. package/src/components/global-styles/screen-layout.js +0 -3
  239. package/src/components/global-styles/screen-root.js +30 -1
  240. package/src/components/global-styles/screen-style-variations.js +5 -2
  241. package/src/components/global-styles/style.scss +31 -2
  242. package/src/components/global-styles/ui.js +47 -4
  243. package/src/components/global-styles/use-global-styles-output.js +5 -0
  244. package/src/components/global-styles/utils.js +8 -5
  245. package/src/components/{editor/global-styles-renderer.js → global-styles-renderer/index.js} +3 -9
  246. package/src/components/header-edit-mode/document-actions/index.js +14 -9
  247. package/src/components/header-edit-mode/document-actions/style.scss +8 -1
  248. package/src/components/header-edit-mode/index.js +96 -78
  249. package/src/components/header-edit-mode/style.scss +5 -33
  250. package/src/components/keyboard-shortcuts/index.js +13 -0
  251. package/src/components/layout/index.js +278 -0
  252. package/src/components/layout/style.scss +176 -0
  253. package/src/components/list/header.js +5 -1
  254. package/src/components/list/index.js +12 -31
  255. package/src/components/list/style.scss +10 -4
  256. package/src/components/navigate-to-link/index.js +2 -8
  257. package/src/components/routes/index.js +1 -1
  258. package/src/components/sidebar/index.js +34 -0
  259. package/src/components/sidebar/style.scss +8 -0
  260. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +42 -7
  261. package/src/components/sidebar-edit-mode/index.js +3 -3
  262. package/src/components/sidebar-edit-mode/navigation-menu-sidebar/style.scss +21 -3
  263. package/src/components/sidebar-edit-mode/settings-header/style.scss +47 -34
  264. package/src/components/sidebar-edit-mode/style.scss +0 -13
  265. package/src/components/sidebar-navigation-item/index.js +51 -0
  266. package/src/components/sidebar-navigation-item/style.scss +17 -0
  267. package/src/components/sidebar-navigation-screen/index.js +55 -0
  268. package/src/components/sidebar-navigation-screen/style.scss +41 -0
  269. package/src/components/sidebar-navigation-screen-main/index.js +72 -0
  270. package/src/components/sidebar-navigation-screen-templates/index.js +181 -0
  271. package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
  272. package/src/components/site-icon/index.js +56 -0
  273. package/src/components/site-icon/style.scss +10 -0
  274. package/src/components/site-title/index.js +39 -0
  275. package/src/components/style-book/index.js +193 -0
  276. package/src/components/style-book/style.scss +78 -0
  277. package/src/components/{url-query-controller/index.js → sync-state-with-url/use-init-edited-entity-from-url.js} +3 -3
  278. package/src/components/sync-state-with-url/use-sync-sidebar-path-with-url.js +36 -0
  279. package/src/components/template-details/style.scss +4 -0
  280. package/src/index.js +3 -53
  281. package/src/store/actions.js +93 -48
  282. package/src/store/reducer.js +29 -91
  283. package/src/store/selectors.js +61 -101
  284. package/src/store/test/actions.js +3 -15
  285. package/src/store/test/reducer.js +8 -192
  286. package/src/store/test/selectors.js +3 -42
  287. package/src/style.scss +19 -3
  288. package/build/components/editor/global-styles-renderer.js.map +0 -1
  289. package/build/components/navigation-sidebar/index.js +0 -62
  290. package/build/components/navigation-sidebar/index.js.map +0 -1
  291. package/build/components/navigation-sidebar/navigation-panel/constants.js +0 -77
  292. package/build/components/navigation-sidebar/navigation-panel/constants.js.map +0 -1
  293. package/build/components/navigation-sidebar/navigation-panel/index.js +0 -152
  294. package/build/components/navigation-sidebar/navigation-panel/index.js.map +0 -1
  295. package/build/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -81
  296. package/build/components/navigation-sidebar/navigation-panel/template-hierarchy.js.map +0 -1
  297. package/build/components/navigation-sidebar/navigation-toggle/index.js +0 -124
  298. package/build/components/navigation-sidebar/navigation-toggle/index.js.map +0 -1
  299. package/build/components/url-query-controller/index.js.map +0 -1
  300. package/build-module/components/editor/global-styles-renderer.js.map +0 -1
  301. package/build-module/components/navigation-sidebar/index.js +0 -45
  302. package/build-module/components/navigation-sidebar/index.js.map +0 -1
  303. package/build-module/components/navigation-sidebar/navigation-panel/constants.js +0 -49
  304. package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +0 -1
  305. package/build-module/components/navigation-sidebar/navigation-panel/index.js +0 -131
  306. package/build-module/components/navigation-sidebar/navigation-panel/index.js.map +0 -1
  307. package/build-module/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -66
  308. package/build-module/components/navigation-sidebar/navigation-panel/template-hierarchy.js.map +0 -1
  309. package/build-module/components/navigation-sidebar/navigation-toggle/index.js +0 -108
  310. package/build-module/components/navigation-sidebar/navigation-toggle/index.js.map +0 -1
  311. package/build-module/components/url-query-controller/index.js.map +0 -1
  312. package/src/components/navigation-sidebar/index.js +0 -46
  313. package/src/components/navigation-sidebar/navigation-panel/constants.js +0 -94
  314. package/src/components/navigation-sidebar/navigation-panel/index.js +0 -142
  315. package/src/components/navigation-sidebar/navigation-panel/style.scss +0 -152
  316. package/src/components/navigation-sidebar/navigation-panel/template-hierarchy.js +0 -81
  317. package/src/components/navigation-sidebar/navigation-toggle/index.js +0 -114
  318. package/src/components/navigation-sidebar/navigation-toggle/style.scss +0 -71
  319. package/src/components/navigation-sidebar/navigation-toggle/test/index.js +0 -65
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { get, find } from 'lodash';
4
+ import { get } from 'lodash';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
@@ -120,8 +120,7 @@ function findInPresetsBy(
120
120
  for ( const origin of origins ) {
121
121
  const presets = presetByOrigin[ origin ];
122
122
  if ( presets ) {
123
- const presetObject = find(
124
- presets,
123
+ const presetObject = presets.find(
125
124
  ( preset ) =>
126
125
  preset[ presetProperty ] === presetValueValue
127
126
  );
@@ -164,7 +163,9 @@ export function getPresetVariableFromValue(
164
163
 
165
164
  const cssVarInfix = STYLE_PATH_TO_CSS_VAR_INFIX[ variableStylePath ];
166
165
 
167
- const metadata = find( PRESET_METADATA, [ 'cssVarInfix', cssVarInfix ] );
166
+ const metadata = PRESET_METADATA.find(
167
+ ( data ) => data.cssVarInfix === cssVarInfix
168
+ );
168
169
 
169
170
  if ( ! metadata ) {
170
171
  // The property doesn't have preset data
@@ -196,7 +197,9 @@ function getValueFromPresetVariable(
196
197
  variable,
197
198
  [ presetType, slug ]
198
199
  ) {
199
- const metadata = find( PRESET_METADATA, [ 'cssVarInfix', presetType ] );
200
+ const metadata = PRESET_METADATA.find(
201
+ ( data ) => data.cssVarInfix === presetType
202
+ );
200
203
  if ( ! metadata ) {
201
204
  return variable;
202
205
  }
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { filter } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -30,10 +25,9 @@ function useGlobalStylesRenderer() {
30
25
  }
31
26
 
32
27
  const currentStoreSettings = getSettings();
33
- const nonGlobalStyles = filter(
34
- currentStoreSettings.styles,
35
- ( style ) => ! style.isGlobalStyles
36
- );
28
+ const nonGlobalStyles = Object.values(
29
+ currentStoreSettings.styles ?? []
30
+ ).filter( ( style ) => ! style.isGlobalStyles );
37
31
  updateSettings( {
38
32
  ...currentStoreSettings,
39
33
  styles: [ ...nonGlobalStyles, ...styles ],
@@ -20,7 +20,11 @@ import {
20
20
  } from '@wordpress/components';
21
21
  import { chevronDown } from '@wordpress/icons';
22
22
  import { useState, useMemo } from '@wordpress/element';
23
- import { store as blockEditorStore } from '@wordpress/block-editor';
23
+ import {
24
+ store as blockEditorStore,
25
+ useBlockDisplayInformation,
26
+ BlockIcon,
27
+ } from '@wordpress/block-editor';
24
28
  import { store as coreStore } from '@wordpress/core-data';
25
29
  import { store as editorStore } from '@wordpress/editor';
26
30
  import { store as preferencesStore } from '@wordpress/preferences';
@@ -52,10 +56,13 @@ function useSecondaryText() {
52
56
  []
53
57
  );
54
58
 
59
+ const blockInformation = useBlockDisplayInformation( activeEntityBlockId );
60
+
55
61
  if ( activeEntityBlockId ) {
56
62
  return {
57
63
  label: getBlockDisplayText( getBlock( activeEntityBlockId ) ),
58
64
  isActive: true,
65
+ icon: blockInformation?.icon,
59
66
  };
60
67
  }
61
68
 
@@ -90,9 +97,10 @@ export default function DocumentActions() {
90
97
  templateType: postType,
91
98
  };
92
99
  }, [] );
100
+
93
101
  const entityLabel =
94
102
  templateType === 'wp_template_part' ? 'template part' : 'template';
95
- const { label } = useSecondaryText();
103
+ const { label, icon } = useSecondaryText();
96
104
 
97
105
  // Use internal state instead of a ref to make sure that the component
98
106
  // re-renders when the popover's anchor updates.
@@ -150,13 +158,10 @@ export default function DocumentActions() {
150
158
  </VisuallyHidden>
151
159
  { decodeEntities( entityTitle ) }
152
160
  </Text>
153
-
154
- <Text
155
- size="body"
156
- className="edit-site-document-actions__secondary-item"
157
- >
158
- { label ?? '' }
159
- </Text>
161
+ <div className="edit-site-document-actions__secondary-item">
162
+ <BlockIcon icon={ icon } showColors />
163
+ <Text size="body">{ label ?? '' }</Text>
164
+ </div>
160
165
 
161
166
  <Dropdown
162
167
  popoverProps={ popoverProps }
@@ -41,9 +41,12 @@
41
41
  white-space: nowrap;
42
42
  overflow: hidden;
43
43
  text-overflow: ellipsis;
44
+ color: currentColor;
44
45
  }
45
46
 
46
47
  .edit-site-document-actions__secondary-item {
48
+ display: flex;
49
+ align-items: center;
47
50
  white-space: nowrap;
48
51
  overflow: hidden;
49
52
  text-overflow: ellipsis;
@@ -51,9 +54,13 @@
51
54
  opacity: 0;
52
55
  padding: 0;
53
56
  transition: all ease 0.2s;
54
- background: $gray-200;
57
+ background: rgba(var(--wp-block-synced-color--rgb), 0.04);
55
58
  border-radius: 2px;
56
59
  @include reduce-motion(transition);
60
+
61
+ .block-editor-block-icon.has-colors {
62
+ color: var(--wp-block-synced-color);
63
+ }
57
64
  }
58
65
 
59
66
  &.has-secondary-label {
@@ -27,6 +27,7 @@ import {
27
27
  VisuallyHidden,
28
28
  } from '@wordpress/components';
29
29
  import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
30
+ import { store as preferencesStore } from '@wordpress/preferences';
30
31
 
31
32
  /**
32
33
  * Internal dependencies
@@ -37,12 +38,13 @@ import UndoButton from './undo-redo/undo';
37
38
  import RedoButton from './undo-redo/redo';
38
39
  import DocumentActions from './document-actions';
39
40
  import { store as editSiteStore } from '../../store';
41
+ import { useHasStyleBook } from '../style-book';
40
42
 
41
43
  const preventDefault = ( event ) => {
42
44
  event.preventDefault();
43
45
  };
44
46
 
45
- export default function Header( { showIconLabels } ) {
47
+ export default function HeaderEditMode() {
46
48
  const inserterButton = useRef();
47
49
  const {
48
50
  deviceType,
@@ -53,6 +55,7 @@ export default function Header( { showIconLabels } ) {
53
55
  isVisualMode,
54
56
  blockEditorMode,
55
57
  homeUrl,
58
+ showIconLabels,
56
59
  } = useSelect( ( select ) => {
57
60
  const {
58
61
  __experimentalGetPreviewDeviceType,
@@ -81,6 +84,10 @@ export default function Header( { showIconLabels } ) {
81
84
  isVisualMode: getEditorMode() === 'visual',
82
85
  blockEditorMode: __unstableGetEditorMode(),
83
86
  homeUrl: getUnstableBase()?.home,
87
+ showIconLabels: select( preferencesStore ).get(
88
+ 'core/edit-site',
89
+ 'showIconLabels'
90
+ ),
84
91
  };
85
92
  }, [] );
86
93
 
@@ -107,6 +114,8 @@ export default function Header( { showIconLabels } ) {
107
114
  [ setIsListViewOpened, isListViewOpen ]
108
115
  );
109
116
 
117
+ const hasStyleBook = useHasStyleBook();
118
+
110
119
  const isFocusMode = templateType === 'wp_template_part';
111
120
 
112
121
  /* translators: button label text should, if possible, be under 16 characters. */
@@ -121,93 +130,102 @@ export default function Header( { showIconLabels } ) {
121
130
  const isZoomedOutView = blockEditorMode === 'zoom-out';
122
131
 
123
132
  return (
124
- <div className="edit-site-header-edit-mode">
125
- <NavigableToolbar
126
- className="edit-site-header-edit-mode__start"
127
- aria-label={ __( 'Document tools' ) }
128
- >
129
- <div className="edit-site-header-edit-mode__toolbar">
130
- <ToolbarItem
131
- ref={ inserterButton }
132
- as={ Button }
133
- className="edit-site-header-edit-mode__inserter-toggle"
134
- variant="primary"
135
- isPressed={ isInserterOpen }
136
- onMouseDown={ preventDefault }
137
- onClick={ openInserter }
138
- disabled={ ! isVisualMode }
139
- icon={ plus }
140
- label={ showIconLabels ? shortLabel : longLabel }
141
- showTooltip={ ! showIconLabels }
142
- />
143
- { isLargeViewport && (
144
- <>
145
- <ToolbarItem
146
- as={ ToolSelector }
147
- showTooltip={ ! showIconLabels }
148
- variant={
149
- showIconLabels ? 'tertiary' : undefined
150
- }
151
- disabled={ ! isVisualMode }
152
- />
153
- <ToolbarItem
154
- as={ UndoButton }
155
- showTooltip={ ! showIconLabels }
156
- variant={
157
- showIconLabels ? 'tertiary' : undefined
158
- }
159
- />
160
- <ToolbarItem
161
- as={ RedoButton }
162
- showTooltip={ ! showIconLabels }
163
- variant={
164
- showIconLabels ? 'tertiary' : undefined
165
- }
166
- />
167
- <ToolbarItem
168
- as={ Button }
169
- className="edit-site-header-edit-mode__list-view-toggle"
170
- disabled={ ! isVisualMode && isZoomedOutView }
171
- icon={ listView }
172
- isPressed={ isListViewOpen }
173
- /* translators: button label text should, if possible, be under 16 characters. */
174
- label={ __( 'List View' ) }
175
- onClick={ toggleListView }
176
- shortcut={ listViewShortcut }
177
- showTooltip={ ! showIconLabels }
178
- variant={
179
- showIconLabels ? 'tertiary' : undefined
180
- }
181
- />
182
- { isZoomedOutViewExperimentEnabled && (
133
+ <div
134
+ className={ classnames( 'edit-site-header-edit-mode', {
135
+ 'show-icon-labels': showIconLabels,
136
+ } ) }
137
+ >
138
+ { ! hasStyleBook && (
139
+ <NavigableToolbar
140
+ className="edit-site-header-edit-mode__start"
141
+ aria-label={ __( 'Document tools' ) }
142
+ >
143
+ <div className="edit-site-header-edit-mode__toolbar">
144
+ <ToolbarItem
145
+ ref={ inserterButton }
146
+ as={ Button }
147
+ className="edit-site-header-edit-mode__inserter-toggle"
148
+ variant="primary"
149
+ isPressed={ isInserterOpen }
150
+ onMouseDown={ preventDefault }
151
+ onClick={ openInserter }
152
+ disabled={ ! isVisualMode }
153
+ icon={ plus }
154
+ label={ showIconLabels ? shortLabel : longLabel }
155
+ showTooltip={ ! showIconLabels }
156
+ />
157
+ { isLargeViewport && (
158
+ <>
159
+ <ToolbarItem
160
+ as={ ToolSelector }
161
+ showTooltip={ ! showIconLabels }
162
+ variant={
163
+ showIconLabels ? 'tertiary' : undefined
164
+ }
165
+ disabled={ ! isVisualMode }
166
+ />
167
+ <ToolbarItem
168
+ as={ UndoButton }
169
+ showTooltip={ ! showIconLabels }
170
+ variant={
171
+ showIconLabels ? 'tertiary' : undefined
172
+ }
173
+ />
174
+ <ToolbarItem
175
+ as={ RedoButton }
176
+ showTooltip={ ! showIconLabels }
177
+ variant={
178
+ showIconLabels ? 'tertiary' : undefined
179
+ }
180
+ />
183
181
  <ToolbarItem
184
182
  as={ Button }
185
- icon={ chevronUpDown }
186
- isPressed={ isZoomedOutView }
183
+ className="edit-site-header-edit-mode__list-view-toggle"
184
+ disabled={
185
+ ! isVisualMode || isZoomedOutView
186
+ }
187
+ icon={ listView }
188
+ isPressed={ isListViewOpen }
187
189
  /* translators: button label text should, if possible, be under 16 characters. */
188
- label={ __( 'Zoom-out View' ) }
189
- onClick={ () => {
190
- setPreviewDeviceType( 'desktop' );
191
- __unstableSetEditorMode(
192
- isZoomedOutView
193
- ? 'edit'
194
- : 'zoom-out'
195
- );
196
- } }
190
+ label={ __( 'List View' ) }
191
+ onClick={ toggleListView }
192
+ shortcut={ listViewShortcut }
193
+ showTooltip={ ! showIconLabels }
194
+ variant={
195
+ showIconLabels ? 'tertiary' : undefined
196
+ }
197
197
  />
198
- ) }
199
- </>
200
- ) }
201
- </div>
202
- </NavigableToolbar>
198
+ { isZoomedOutViewExperimentEnabled && (
199
+ <ToolbarItem
200
+ as={ Button }
201
+ className="edit-site-header-edit-mode__zoom-out-view-toggle"
202
+ icon={ chevronUpDown }
203
+ isPressed={ isZoomedOutView }
204
+ /* translators: button label text should, if possible, be under 16 characters. */
205
+ label={ __( 'Zoom-out View' ) }
206
+ onClick={ () => {
207
+ setPreviewDeviceType( 'desktop' );
208
+ __unstableSetEditorMode(
209
+ isZoomedOutView
210
+ ? 'edit'
211
+ : 'zoom-out'
212
+ );
213
+ } }
214
+ />
215
+ ) }
216
+ </>
217
+ ) }
218
+ </div>
219
+ </NavigableToolbar>
220
+ ) }
203
221
 
204
222
  <div className="edit-site-header-edit-mode__center">
205
- <DocumentActions />
223
+ { hasStyleBook ? __( 'Style Book' ) : <DocumentActions /> }
206
224
  </div>
207
225
 
208
226
  <div className="edit-site-header-edit-mode__end">
209
227
  <div className="edit-site-header-edit-mode__actions">
210
- { ! isFocusMode && (
228
+ { ! isFocusMode && ! hasStyleBook && (
211
229
  <div
212
230
  className={ classnames(
213
231
  'edit-site-header-edit-mode__preview-options',
@@ -1,20 +1,15 @@
1
1
  $header-toolbar-min-width: 335px;
2
2
 
3
3
  .edit-site-header-edit-mode {
4
+ height: $header-height;
4
5
  align-items: center;
5
6
  background-color: $white;
7
+ color: $gray-900;
6
8
  display: flex;
7
- height: $header-height;
8
9
  box-sizing: border-box;
9
10
  width: 100%;
10
11
  justify-content: space-between;
11
-
12
- body.is-fullscreen-mode & {
13
- padding-left: 60px;
14
- transition: padding-left 20ms linear;
15
- transition-delay: 80ms;
16
- @include reduce-motion("transition");
17
- }
12
+ border-bottom: $border-width solid $gray-200;
18
13
 
19
14
  .edit-site-header-edit-mode__start {
20
15
  display: flex;
@@ -40,29 +35,6 @@ $header-toolbar-min-width: 335px;
40
35
  }
41
36
  }
42
37
 
43
- // Keeps the document title centered when the sidebar is open
44
- body.is-navigation-sidebar-open {
45
- .edit-site-header-edit-mode {
46
- padding-left: 0;
47
- transition: padding-left 20ms linear;
48
- transition-delay: 0ms;
49
- @include reduce-motion("transition");
50
- }
51
- }
52
-
53
- // Centred document title on small screens with sidebar open
54
- @media ( max-width: #{ ($break-large - 1) } ) {
55
- body.is-navigation-sidebar-open .edit-site-header-edit-mode {
56
- .edit-site-header-edit-mode__inserter-toggle ~ .components-button,
57
- .edit-site-header-edit-mode__end .components-button:not(.is-primary) {
58
- display: none;
59
- }
60
- .edit-site-save-button__button {
61
- margin-right: 0;
62
- }
63
- }
64
- }
65
-
66
38
  .edit-site-header-edit-mode__toolbar {
67
39
  display: flex;
68
40
  align-items: center;
@@ -177,7 +149,7 @@ body.is-navigation-sidebar-open {
177
149
 
178
150
  // Button text label styles
179
151
 
180
- .show-icon-labels .edit-site-header-edit-mode {
152
+ .edit-site-header-edit-mode.show-icon-labels {
181
153
  .components-button.has-icon {
182
154
  width: auto;
183
155
 
@@ -218,7 +190,7 @@ body.is-navigation-sidebar-open {
218
190
  padding: 0 $grid-unit-10;
219
191
  }
220
192
 
221
- .edit-site-header__start .edit-site-header__toolbar > * + * {
193
+ .edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar > * + * {
222
194
  margin-left: $grid-unit-10;
223
195
  }
224
196
  }
@@ -6,6 +6,7 @@ import {
6
6
  useShortcut,
7
7
  store as keyboardShortcutsStore,
8
8
  } from '@wordpress/keyboard-shortcuts';
9
+ import { isAppleOS } from '@wordpress/keycodes';
9
10
  import { useDispatch, useSelect } from '@wordpress/data';
10
11
  import { __ } from '@wordpress/i18n';
11
12
  import { store as coreStore } from '@wordpress/core-data';
@@ -119,6 +120,18 @@ function KeyboardShortcutsRegister() {
119
120
  modifier: 'primaryShift',
120
121
  character: 'z',
121
122
  },
123
+ // Disable on Apple OS because it conflicts with the browser's
124
+ // history shortcut. It's a fine alias for both Windows and Linux.
125
+ // Since there's no conflict for Ctrl+Shift+Z on both Windows and
126
+ // Linux, we keep it as the default for consistency.
127
+ aliases: isAppleOS()
128
+ ? []
129
+ : [
130
+ {
131
+ modifier: 'primary',
132
+ character: 'y',
133
+ },
134
+ ],
122
135
  } );
123
136
 
124
137
  registerShortcut( {