@wordpress/edit-site 5.22.0 → 5.24.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 (524) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/actions/index.js +115 -15
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/add-new-template/new-template.js +0 -7
  5. package/build/components/add-new-template/new-template.js.map +1 -1
  6. package/build/components/block-editor/site-editor-canvas.js +7 -2
  7. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +54 -63
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/dataviews/add-filter.js +91 -0
  11. package/build/components/dataviews/add-filter.js.map +1 -0
  12. package/build/components/dataviews/constants.js +14 -0
  13. package/build/components/dataviews/constants.js.map +1 -0
  14. package/build/components/dataviews/dataviews.js +30 -9
  15. package/build/components/dataviews/dataviews.js.map +1 -1
  16. package/build/components/dataviews/filter-summary.js +62 -0
  17. package/build/components/dataviews/filter-summary.js.map +1 -0
  18. package/build/components/dataviews/filters.js +37 -48
  19. package/build/components/dataviews/filters.js.map +1 -1
  20. package/build/components/dataviews/index.js +9 -2
  21. package/build/components/dataviews/index.js.map +1 -1
  22. package/build/components/dataviews/item-actions.js +139 -17
  23. package/build/components/dataviews/item-actions.js.map +1 -1
  24. package/build/components/dataviews/pagination.js +7 -2
  25. package/build/components/dataviews/pagination.js.map +1 -1
  26. package/build/components/dataviews/reset-filters.js +33 -0
  27. package/build/components/dataviews/reset-filters.js.map +1 -0
  28. package/build/components/dataviews/search.js +1 -0
  29. package/build/components/dataviews/search.js.map +1 -1
  30. package/build/components/dataviews/view-actions.js +49 -32
  31. package/build/components/dataviews/view-actions.js.map +1 -1
  32. package/build/components/dataviews/view-grid.js +48 -25
  33. package/build/components/dataviews/view-grid.js.map +1 -1
  34. package/build/components/dataviews/view-list.js +130 -14
  35. package/build/components/dataviews/view-list.js.map +1 -1
  36. package/build/components/dataviews/view-side-by-side.js +20 -0
  37. package/build/components/dataviews/view-side-by-side.js.map +1 -0
  38. package/build/components/editor/index.js +52 -56
  39. package/build/components/editor/index.js.map +1 -1
  40. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  41. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  42. package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
  43. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  44. package/build/components/global-styles/header.js +4 -2
  45. package/build/components/global-styles/header.js.map +1 -1
  46. package/build/components/global-styles/screen-block-list.js +22 -16
  47. package/build/components/global-styles/screen-block-list.js.map +1 -1
  48. package/build/components/global-styles/screen-revisions/index.js +66 -24
  49. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  50. package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
  51. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  52. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  53. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  54. package/build/components/global-styles/screen-root.js +3 -3
  55. package/build/components/global-styles/screen-root.js.map +1 -1
  56. package/build/components/global-styles/ui.js +31 -39
  57. package/build/components/global-styles/ui.js.map +1 -1
  58. package/build/components/global-styles-renderer/index.js +1 -1
  59. package/build/components/global-styles-renderer/index.js.map +1 -1
  60. package/build/components/header-edit-mode/document-actions/index.js +21 -16
  61. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  62. package/build/components/header-edit-mode/document-tools/index.js +160 -0
  63. package/build/components/header-edit-mode/document-tools/index.js.map +1 -0
  64. package/build/components/header-edit-mode/index.js +50 -117
  65. package/build/components/header-edit-mode/index.js.map +1 -1
  66. package/build/components/header-edit-mode/more-menu/index.js +1 -1
  67. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  68. package/build/components/header-edit-mode/more-menu/site-export.js +2 -6
  69. package/build/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  70. package/build/components/layout/index.js +4 -19
  71. package/build/components/layout/index.js.map +1 -1
  72. package/build/components/list/added-by.js +44 -54
  73. package/build/components/list/added-by.js.map +1 -1
  74. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +11 -15
  75. package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  76. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  77. package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  78. package/build/components/page-content-focus-notifications/index.js +22 -0
  79. package/build/components/page-content-focus-notifications/index.js.map +1 -0
  80. package/build/components/page-main/index.js +2 -1
  81. package/build/components/page-main/index.js.map +1 -1
  82. package/build/components/page-pages/index.js +137 -88
  83. package/build/components/page-pages/index.js.map +1 -1
  84. package/build/components/page-pages/side-editor.js +25 -0
  85. package/build/components/page-pages/side-editor.js.map +1 -0
  86. package/build/components/page-patterns/grid-item.js +2 -2
  87. package/build/components/page-patterns/grid-item.js.map +1 -1
  88. package/build/components/page-patterns/patterns-list.js +3 -3
  89. package/build/components/page-patterns/patterns-list.js.map +1 -1
  90. package/build/components/page-patterns/use-patterns.js +2 -2
  91. package/build/components/page-patterns/use-patterns.js.map +1 -1
  92. package/build/components/page-templates/dataviews-templates.js +316 -0
  93. package/build/components/page-templates/dataviews-templates.js.map +1 -0
  94. package/build/components/page-templates/template-actions.js +168 -0
  95. package/build/components/page-templates/template-actions.js.map +1 -0
  96. package/build/components/preferences-modal/index.js +1 -1
  97. package/build/components/preferences-modal/index.js.map +1 -1
  98. package/build/components/save-button/index.js +9 -6
  99. package/build/components/save-button/index.js.map +1 -1
  100. package/build/components/save-hub/index.js +14 -0
  101. package/build/components/save-hub/index.js.map +1 -1
  102. package/build/components/sidebar/index.js +1 -2
  103. package/build/components/sidebar/index.js.map +1 -1
  104. package/build/components/sidebar-dataviews/add-new-view.js +124 -0
  105. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -0
  106. package/build/components/sidebar-dataviews/custom-dataviews-list.js +191 -0
  107. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  108. package/build/components/sidebar-dataviews/dataview-item.js +71 -0
  109. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -0
  110. package/build/components/sidebar-dataviews/default-views.js +65 -0
  111. package/build/components/sidebar-dataviews/default-views.js.map +1 -0
  112. package/build/components/sidebar-dataviews/index.js +21 -38
  113. package/build/components/sidebar-dataviews/index.js.map +1 -1
  114. package/build/components/sidebar-edit-mode/default-sidebar.js +2 -6
  115. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  116. package/build/components/sidebar-edit-mode/index.js +6 -5
  117. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  118. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +18 -29
  119. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  120. package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
  121. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  122. package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
  123. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  124. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +5 -8
  125. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  126. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +6 -14
  127. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  128. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +4 -12
  129. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  130. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  131. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  132. package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
  133. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  134. package/build/components/sidebar-edit-mode/template-panel/hooks.js +3 -3
  135. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  137. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  139. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-page/index.js +23 -4
  141. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  142. package/build/components/sidebar-navigation-screen-page/page-details.js +3 -11
  143. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  144. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  145. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  146. package/build/components/site-hub/index.js +18 -6
  147. package/build/components/site-hub/index.js.map +1 -1
  148. package/build/components/start-template-options/index.js +12 -16
  149. package/build/components/start-template-options/index.js.map +1 -1
  150. package/build/components/style-book/index.js +22 -12
  151. package/build/components/style-book/index.js.map +1 -1
  152. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +150 -55
  153. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  154. package/build/components/template-part-converter/convert-to-regular.js +1 -1
  155. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  156. package/build/components/welcome-guide/page.js +2 -2
  157. package/build/components/welcome-guide/page.js.map +1 -1
  158. package/build/components/welcome-guide/template.js +6 -3
  159. package/build/components/welcome-guide/template.js.map +1 -1
  160. package/build/hooks/commands/use-edit-mode-commands.js +24 -14
  161. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  162. package/build/hooks/push-changes-to-global-styles/index.js +3 -1
  163. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  164. package/build/hooks/template-part-edit.js +6 -2
  165. package/build/hooks/template-part-edit.js.map +1 -1
  166. package/build/index.js +0 -3
  167. package/build/index.js.map +1 -1
  168. package/build/store/actions.js +39 -83
  169. package/build/store/actions.js.map +1 -1
  170. package/build/store/private-actions.js +2 -27
  171. package/build/store/private-actions.js.map +1 -1
  172. package/build/store/private-selectors.js +0 -23
  173. package/build/store/private-selectors.js.map +1 -1
  174. package/build/store/reducer.js +1 -40
  175. package/build/store/reducer.js.map +1 -1
  176. package/build/store/selectors.js +33 -67
  177. package/build/store/selectors.js.map +1 -1
  178. package/build/utils/constants.js +3 -14
  179. package/build/utils/constants.js.map +1 -1
  180. package/build-module/components/actions/index.js +113 -14
  181. package/build-module/components/actions/index.js.map +1 -1
  182. package/build-module/components/add-new-template/new-template.js +0 -7
  183. package/build-module/components/add-new-template/new-template.js.map +1 -1
  184. package/build-module/components/block-editor/site-editor-canvas.js +7 -2
  185. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  186. package/build-module/components/block-editor/use-site-editor-settings.js +54 -62
  187. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  188. package/build-module/components/dataviews/add-filter.js +84 -0
  189. package/build-module/components/dataviews/add-filter.js.map +1 -0
  190. package/build-module/components/dataviews/constants.js +6 -0
  191. package/build-module/components/dataviews/constants.js.map +1 -0
  192. package/build-module/components/dataviews/dataviews.js +29 -9
  193. package/build-module/components/dataviews/dataviews.js.map +1 -1
  194. package/build-module/components/dataviews/filter-summary.js +55 -0
  195. package/build-module/components/dataviews/filter-summary.js.map +1 -0
  196. package/build-module/components/dataviews/filters.js +37 -48
  197. package/build-module/components/dataviews/filters.js.map +1 -1
  198. package/build-module/components/dataviews/index.js +1 -1
  199. package/build-module/components/dataviews/index.js.map +1 -1
  200. package/build-module/components/dataviews/item-actions.js +142 -20
  201. package/build-module/components/dataviews/item-actions.js.map +1 -1
  202. package/build-module/components/dataviews/pagination.js +7 -2
  203. package/build-module/components/dataviews/pagination.js.map +1 -1
  204. package/build-module/components/dataviews/reset-filters.js +26 -0
  205. package/build-module/components/dataviews/reset-filters.js.map +1 -0
  206. package/build-module/components/dataviews/search.js +1 -0
  207. package/build-module/components/dataviews/search.js.map +1 -1
  208. package/build-module/components/dataviews/view-actions.js +50 -33
  209. package/build-module/components/dataviews/view-actions.js.map +1 -1
  210. package/build-module/components/dataviews/view-grid.js +49 -26
  211. package/build-module/components/dataviews/view-grid.js.map +1 -1
  212. package/build-module/components/dataviews/view-list.js +132 -16
  213. package/build-module/components/dataviews/view-list.js.map +1 -1
  214. package/build-module/components/dataviews/view-side-by-side.js +12 -0
  215. package/build-module/components/dataviews/view-side-by-side.js.map +1 -0
  216. package/build-module/components/editor/index.js +55 -59
  217. package/build-module/components/editor/index.js.map +1 -1
  218. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  219. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  220. package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
  221. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  222. package/build-module/components/global-styles/header.js +4 -2
  223. package/build-module/components/global-styles/header.js.map +1 -1
  224. package/build-module/components/global-styles/screen-block-list.js +23 -17
  225. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  226. package/build-module/components/global-styles/screen-revisions/index.js +67 -25
  227. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  228. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
  229. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  230. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  231. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  232. package/build-module/components/global-styles/screen-root.js +3 -3
  233. package/build-module/components/global-styles/screen-root.js.map +1 -1
  234. package/build-module/components/global-styles/ui.js +31 -39
  235. package/build-module/components/global-styles/ui.js.map +1 -1
  236. package/build-module/components/global-styles-renderer/index.js +1 -1
  237. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  238. package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
  239. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  240. package/build-module/components/header-edit-mode/document-tools/index.js +152 -0
  241. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -0
  242. package/build-module/components/header-edit-mode/index.js +54 -121
  243. package/build-module/components/header-edit-mode/index.js.map +1 -1
  244. package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
  245. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  246. package/build-module/components/header-edit-mode/more-menu/site-export.js +2 -6
  247. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  248. package/build-module/components/layout/index.js +5 -20
  249. package/build-module/components/layout/index.js.map +1 -1
  250. package/build-module/components/list/added-by.js +45 -56
  251. package/build-module/components/list/added-by.js.map +1 -1
  252. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +11 -15
  253. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  254. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  255. package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  256. package/build-module/components/page-content-focus-notifications/index.js +14 -0
  257. package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
  258. package/build-module/components/page-main/index.js +2 -1
  259. package/build-module/components/page-main/index.js.map +1 -1
  260. package/build-module/components/page-pages/index.js +141 -90
  261. package/build-module/components/page-pages/index.js.map +1 -1
  262. package/build-module/components/page-pages/side-editor.js +17 -0
  263. package/build-module/components/page-pages/side-editor.js.map +1 -0
  264. package/build-module/components/page-patterns/grid-item.js +2 -2
  265. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  266. package/build-module/components/page-patterns/patterns-list.js +4 -4
  267. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  268. package/build-module/components/page-patterns/use-patterns.js +3 -3
  269. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  270. package/build-module/components/page-templates/dataviews-templates.js +308 -0
  271. package/build-module/components/page-templates/dataviews-templates.js.map +1 -0
  272. package/build-module/components/page-templates/template-actions.js +157 -0
  273. package/build-module/components/page-templates/template-actions.js.map +1 -0
  274. package/build-module/components/preferences-modal/index.js +1 -1
  275. package/build-module/components/preferences-modal/index.js.map +1 -1
  276. package/build-module/components/save-button/index.js +11 -8
  277. package/build-module/components/save-button/index.js.map +1 -1
  278. package/build-module/components/save-hub/index.js +14 -0
  279. package/build-module/components/save-hub/index.js.map +1 -1
  280. package/build-module/components/sidebar/index.js +1 -2
  281. package/build-module/components/sidebar/index.js.map +1 -1
  282. package/build-module/components/sidebar-dataviews/add-new-view.js +116 -0
  283. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -0
  284. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +182 -0
  285. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  286. package/build-module/components/sidebar-dataviews/dataview-item.js +63 -0
  287. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -0
  288. package/build-module/components/sidebar-dataviews/default-views.js +57 -0
  289. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -0
  290. package/build-module/components/sidebar-dataviews/index.js +22 -39
  291. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  292. package/build-module/components/sidebar-edit-mode/default-sidebar.js +2 -6
  293. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  294. package/build-module/components/sidebar-edit-mode/index.js +6 -5
  295. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  296. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +20 -31
  297. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  298. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
  299. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  300. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
  301. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  302. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +6 -8
  303. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  304. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +8 -16
  305. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  306. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +5 -13
  307. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  308. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  309. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  310. package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
  311. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  312. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +4 -4
  313. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  314. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  315. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  316. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  317. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  318. package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
  319. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  320. package/build-module/components/sidebar-navigation-screen-page/page-details.js +3 -11
  321. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  322. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  323. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  324. package/build-module/components/site-hub/index.js +19 -7
  325. package/build-module/components/site-hub/index.js.map +1 -1
  326. package/build-module/components/start-template-options/index.js +13 -16
  327. package/build-module/components/start-template-options/index.js.map +1 -1
  328. package/build-module/components/style-book/index.js +22 -12
  329. package/build-module/components/style-book/index.js.map +1 -1
  330. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +150 -56
  331. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  332. package/build-module/components/template-part-converter/convert-to-regular.js +1 -1
  333. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  334. package/build-module/components/welcome-guide/page.js +2 -2
  335. package/build-module/components/welcome-guide/page.js.map +1 -1
  336. package/build-module/components/welcome-guide/template.js +6 -3
  337. package/build-module/components/welcome-guide/template.js.map +1 -1
  338. package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
  339. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  340. package/build-module/hooks/push-changes-to-global-styles/index.js +4 -2
  341. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  342. package/build-module/hooks/template-part-edit.js +6 -2
  343. package/build-module/hooks/template-part-edit.js.map +1 -1
  344. package/build-module/index.js +0 -3
  345. package/build-module/index.js.map +1 -1
  346. package/build-module/store/actions.js +37 -80
  347. package/build-module/store/actions.js.map +1 -1
  348. package/build-module/store/private-actions.js +1 -25
  349. package/build-module/store/private-actions.js.map +1 -1
  350. package/build-module/store/private-selectors.js +0 -22
  351. package/build-module/store/private-selectors.js.map +1 -1
  352. package/build-module/store/reducer.js +1 -38
  353. package/build-module/store/reducer.js.map +1 -1
  354. package/build-module/store/selectors.js +27 -62
  355. package/build-module/store/selectors.js.map +1 -1
  356. package/build-module/utils/constants.js +1 -11
  357. package/build-module/utils/constants.js.map +1 -1
  358. package/build-style/style-rtl.css +221 -181
  359. package/build-style/style.css +221 -181
  360. package/package.json +41 -41
  361. package/src/components/actions/index.js +150 -14
  362. package/src/components/add-new-template/new-template.js +0 -5
  363. package/src/components/block-editor/site-editor-canvas.js +8 -2
  364. package/src/components/block-editor/style.scss +0 -87
  365. package/src/components/block-editor/use-site-editor-settings.js +68 -89
  366. package/src/components/dataviews/README.md +80 -83
  367. package/src/components/dataviews/add-filter.js +108 -0
  368. package/src/components/dataviews/constants.js +5 -0
  369. package/src/components/dataviews/dataviews.js +28 -10
  370. package/src/components/dataviews/filter-summary.js +79 -0
  371. package/src/components/dataviews/filters.js +48 -58
  372. package/src/components/dataviews/index.js +1 -1
  373. package/src/components/dataviews/item-actions.js +169 -30
  374. package/src/components/dataviews/pagination.js +9 -4
  375. package/src/components/dataviews/reset-filters.js +26 -0
  376. package/src/components/dataviews/search.js +1 -0
  377. package/src/components/dataviews/style.scss +89 -9
  378. package/src/components/dataviews/view-actions.js +77 -49
  379. package/src/components/dataviews/view-grid.js +63 -38
  380. package/src/components/dataviews/view-list.js +182 -18
  381. package/src/components/dataviews/view-side-by-side.js +9 -0
  382. package/src/components/editor/index.js +135 -123
  383. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  384. package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
  385. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
  386. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
  387. package/src/components/global-styles/header.js +2 -1
  388. package/src/components/global-styles/screen-block-list.js +37 -26
  389. package/src/components/global-styles/screen-revisions/index.js +91 -35
  390. package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
  391. package/src/components/global-styles/screen-revisions/style.scss +52 -28
  392. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
  393. package/src/components/global-styles/screen-root.js +2 -1
  394. package/src/components/global-styles/style.scss +0 -11
  395. package/src/components/global-styles/ui.js +60 -75
  396. package/src/components/global-styles-renderer/index.js +1 -1
  397. package/src/components/header-edit-mode/document-actions/index.js +20 -18
  398. package/src/components/header-edit-mode/document-tools/index.js +201 -0
  399. package/src/components/header-edit-mode/index.js +87 -184
  400. package/src/components/header-edit-mode/more-menu/index.js +1 -1
  401. package/src/components/header-edit-mode/more-menu/site-export.js +2 -6
  402. package/src/components/header-edit-mode/style.scss +35 -2
  403. package/src/components/layout/index.js +4 -11
  404. package/src/components/layout/style.scss +6 -18
  405. package/src/components/list/added-by.js +24 -64
  406. package/src/components/list/style.scss +11 -13
  407. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +10 -22
  408. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  409. package/src/components/page-content-focus-notifications/index.js +14 -0
  410. package/src/components/page-main/index.js +6 -1
  411. package/src/components/page-pages/index.js +167 -91
  412. package/src/components/page-pages/side-editor.js +14 -0
  413. package/src/components/page-patterns/grid-item.js +3 -3
  414. package/src/components/page-patterns/patterns-list.js +10 -4
  415. package/src/components/page-patterns/use-patterns.js +4 -3
  416. package/src/components/page-templates/dataviews-templates.js +345 -0
  417. package/src/components/page-templates/style.scss +13 -0
  418. package/src/components/page-templates/template-actions.js +209 -0
  419. package/src/components/preferences-modal/index.js +1 -1
  420. package/src/components/save-button/index.js +37 -24
  421. package/src/components/save-hub/index.js +15 -0
  422. package/src/components/save-hub/style.scss +7 -0
  423. package/src/components/sidebar/index.js +1 -2
  424. package/src/components/sidebar-dataviews/add-new-view.js +141 -0
  425. package/src/components/sidebar-dataviews/custom-dataviews-list.js +229 -0
  426. package/src/components/sidebar-dataviews/dataview-item.js +67 -0
  427. package/src/components/sidebar-dataviews/default-views.js +59 -0
  428. package/src/components/sidebar-dataviews/index.js +36 -45
  429. package/src/components/sidebar-dataviews/style.scss +29 -0
  430. package/src/components/sidebar-edit-mode/default-sidebar.js +6 -6
  431. package/src/components/sidebar-edit-mode/index.js +13 -9
  432. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +31 -57
  433. package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
  434. package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
  435. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +10 -8
  436. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +13 -12
  437. package/src/components/sidebar-edit-mode/page-panels/style.scss +14 -19
  438. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +10 -9
  439. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +6 -6
  440. package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
  441. package/src/components/sidebar-edit-mode/template-panel/hooks.js +11 -7
  442. package/src/components/sidebar-navigation-screen/style.scss +1 -0
  443. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  444. package/src/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  445. package/src/components/sidebar-navigation-screen-page/index.js +24 -3
  446. package/src/components/sidebar-navigation-screen-page/page-details.js +4 -17
  447. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  448. package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
  449. package/src/components/site-hub/index.js +9 -8
  450. package/src/components/start-template-options/index.js +14 -12
  451. package/src/components/style-book/index.js +48 -35
  452. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +182 -63
  453. package/src/components/template-part-converter/convert-to-regular.js +1 -1
  454. package/src/components/welcome-guide/page.js +2 -2
  455. package/src/components/welcome-guide/template.js +4 -2
  456. package/src/hooks/commands/use-edit-mode-commands.js +22 -16
  457. package/src/hooks/push-changes-to-global-styles/index.js +13 -6
  458. package/src/hooks/template-part-edit.js +4 -2
  459. package/src/index.js +0 -8
  460. package/src/store/actions.js +42 -96
  461. package/src/store/private-actions.js +1 -24
  462. package/src/store/private-selectors.js +0 -22
  463. package/src/store/reducer.js +0 -39
  464. package/src/store/selectors.js +43 -95
  465. package/src/store/test/actions.js +14 -169
  466. package/src/store/test/reducer.js +0 -62
  467. package/src/store/test/selectors.js +0 -117
  468. package/src/style.scss +2 -0
  469. package/src/utils/constants.js +1 -11
  470. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -77
  471. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  472. package/build/components/block-editor/block-editor-provider/index.js +0 -31
  473. package/build/components/block-editor/block-editor-provider/index.js.map +0 -1
  474. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -110
  475. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  476. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -84
  477. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  478. package/build/components/block-editor/index.js +0 -30
  479. package/build/components/block-editor/index.js.map +0 -1
  480. package/build/components/dataviews/in-filter.js +0 -49
  481. package/build/components/dataviews/in-filter.js.map +0 -1
  482. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  483. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -50
  484. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  485. package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  486. package/build/components/page-content-focus-manager/index.js +0 -61
  487. package/build/components/page-content-focus-manager/index.js.map +0 -1
  488. package/build/components/page-pages/default-views.js +0 -62
  489. package/build/components/page-pages/default-views.js.map +0 -1
  490. package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
  491. package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  492. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -69
  493. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  494. package/build-module/components/block-editor/block-editor-provider/index.js +0 -23
  495. package/build-module/components/block-editor/block-editor-provider/index.js.map +0 -1
  496. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -102
  497. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  498. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -78
  499. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  500. package/build-module/components/block-editor/index.js +0 -22
  501. package/build-module/components/block-editor/index.js.map +0 -1
  502. package/build-module/components/dataviews/in-filter.js +0 -41
  503. package/build-module/components/dataviews/in-filter.js.map +0 -1
  504. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  505. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -43
  506. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  507. package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  508. package/build-module/components/page-content-focus-manager/index.js +0 -52
  509. package/build-module/components/page-content-focus-manager/index.js.map +0 -1
  510. package/build-module/components/page-pages/default-views.js +0 -55
  511. package/build-module/components/page-pages/default-views.js.map +0 -1
  512. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
  513. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  514. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -75
  515. package/src/components/block-editor/block-editor-provider/index.js +0 -29
  516. package/src/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -114
  517. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +0 -116
  518. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -90
  519. package/src/components/block-editor/index.js +0 -28
  520. package/src/components/dataviews/in-filter.js +0 -45
  521. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -52
  522. package/src/components/page-content-focus-manager/index.js +0 -51
  523. package/src/components/page-pages/default-views.js +0 -60
  524. package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
@@ -0,0 +1,201 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useCallback, useRef } from '@wordpress/element';
5
+ import { useViewportMatch } from '@wordpress/compose';
6
+ import {
7
+ ToolSelector,
8
+ NavigableToolbar,
9
+ store as blockEditorStore,
10
+ privateApis as blockEditorPrivateApis,
11
+ } from '@wordpress/block-editor';
12
+ import { useSelect, useDispatch } from '@wordpress/data';
13
+ import { _x, __ } from '@wordpress/i18n';
14
+ import { listView, plus, chevronUpDown } from '@wordpress/icons';
15
+ import { Button, ToolbarItem } from '@wordpress/components';
16
+ import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
17
+
18
+ /**
19
+ * Internal dependencies
20
+ */
21
+ import UndoButton from '../undo-redo/undo';
22
+ import RedoButton from '../undo-redo/redo';
23
+ import { store as editSiteStore } from '../../../store';
24
+ import { unlock } from '../../../lock-unlock';
25
+
26
+ const { useShouldContextualToolbarShow } = unlock( blockEditorPrivateApis );
27
+
28
+ const preventDefault = ( event ) => {
29
+ event.preventDefault();
30
+ };
31
+
32
+ export default function DocumentTools( {
33
+ blockEditorMode,
34
+ hasFixedToolbar,
35
+ isDistractionFree,
36
+ showIconLabels,
37
+ setListViewToggleElement,
38
+ } ) {
39
+ const inserterButton = useRef();
40
+ const { isInserterOpen, isListViewOpen, listViewShortcut, isVisualMode } =
41
+ useSelect( ( select ) => {
42
+ const {
43
+ __experimentalGetPreviewDeviceType,
44
+ isInserterOpened,
45
+ isListViewOpened,
46
+ getEditorMode,
47
+ } = select( editSiteStore );
48
+ const { getShortcutRepresentation } = select(
49
+ keyboardShortcutsStore
50
+ );
51
+
52
+ return {
53
+ deviceType: __experimentalGetPreviewDeviceType(),
54
+ isInserterOpen: isInserterOpened(),
55
+ isListViewOpen: isListViewOpened(),
56
+ listViewShortcut: getShortcutRepresentation(
57
+ 'core/edit-site/toggle-list-view'
58
+ ),
59
+ isVisualMode: getEditorMode() === 'visual',
60
+ };
61
+ }, [] );
62
+
63
+ const {
64
+ __experimentalSetPreviewDeviceType: setPreviewDeviceType,
65
+ setIsInserterOpened,
66
+ setIsListViewOpened,
67
+ } = useDispatch( editSiteStore );
68
+ const { __unstableSetEditorMode } = useDispatch( blockEditorStore );
69
+
70
+ const isLargeViewport = useViewportMatch( 'medium' );
71
+
72
+ const toggleInserter = useCallback( () => {
73
+ if ( isInserterOpen ) {
74
+ // Focusing the inserter button should close the inserter popover.
75
+ // However, there are some cases it won't close when the focus is lost.
76
+ // See https://github.com/WordPress/gutenberg/issues/43090 for more details.
77
+ inserterButton.current.focus();
78
+ setIsInserterOpened( false );
79
+ } else {
80
+ setIsInserterOpened( true );
81
+ }
82
+ }, [ isInserterOpen, setIsInserterOpened ] );
83
+
84
+ const toggleListView = useCallback(
85
+ () => setIsListViewOpened( ! isListViewOpen ),
86
+ [ setIsListViewOpened, isListViewOpen ]
87
+ );
88
+
89
+ const {
90
+ shouldShowContextualToolbar,
91
+ canFocusHiddenToolbar,
92
+ fixedToolbarCanBeFocused,
93
+ } = useShouldContextualToolbarShow();
94
+ // If there's a block toolbar to be focused, disable the focus shortcut for the document toolbar.
95
+ // There's a fixed block toolbar when the fixed toolbar option is enabled or when the browser width is less than the large viewport.
96
+ const blockToolbarCanBeFocused =
97
+ shouldShowContextualToolbar ||
98
+ canFocusHiddenToolbar ||
99
+ fixedToolbarCanBeFocused;
100
+
101
+ /* translators: button label text should, if possible, be under 16 characters. */
102
+ const longLabel = _x(
103
+ 'Toggle block inserter',
104
+ 'Generic label for block inserter button'
105
+ );
106
+ const shortLabel = ! isInserterOpen ? __( 'Add' ) : __( 'Close' );
107
+
108
+ const isZoomedOutViewExperimentEnabled =
109
+ window?.__experimentalEnableZoomedOutView && isVisualMode;
110
+ const isZoomedOutView = blockEditorMode === 'zoom-out';
111
+
112
+ return (
113
+ <NavigableToolbar
114
+ className="edit-site-header-edit-mode__document-tools"
115
+ aria-label={ __( 'Document tools' ) }
116
+ shouldUseKeyboardFocusShortcut={ ! blockToolbarCanBeFocused }
117
+ >
118
+ <div className="edit-site-header-edit-mode__toolbar">
119
+ { ! isDistractionFree && (
120
+ <ToolbarItem
121
+ ref={ inserterButton }
122
+ as={ Button }
123
+ className="edit-site-header-edit-mode__inserter-toggle"
124
+ variant="primary"
125
+ isPressed={ isInserterOpen }
126
+ onMouseDown={ preventDefault }
127
+ onClick={ toggleInserter }
128
+ disabled={ ! isVisualMode }
129
+ icon={ plus }
130
+ label={ showIconLabels ? shortLabel : longLabel }
131
+ showTooltip={ ! showIconLabels }
132
+ aria-expanded={ isInserterOpen }
133
+ />
134
+ ) }
135
+ { isLargeViewport && (
136
+ <>
137
+ { ! hasFixedToolbar && (
138
+ <ToolbarItem
139
+ as={ ToolSelector }
140
+ showTooltip={ ! showIconLabels }
141
+ variant={
142
+ showIconLabels ? 'tertiary' : undefined
143
+ }
144
+ disabled={ ! isVisualMode }
145
+ />
146
+ ) }
147
+ <ToolbarItem
148
+ as={ UndoButton }
149
+ showTooltip={ ! showIconLabels }
150
+ variant={ showIconLabels ? 'tertiary' : undefined }
151
+ />
152
+ <ToolbarItem
153
+ as={ RedoButton }
154
+ showTooltip={ ! showIconLabels }
155
+ variant={ showIconLabels ? 'tertiary' : undefined }
156
+ />
157
+ { ! isDistractionFree && (
158
+ <ToolbarItem
159
+ as={ Button }
160
+ className="edit-site-header-edit-mode__list-view-toggle"
161
+ disabled={ ! isVisualMode || isZoomedOutView }
162
+ icon={ listView }
163
+ isPressed={ isListViewOpen }
164
+ /* translators: button label text should, if possible, be under 16 characters. */
165
+ label={ __( 'List View' ) }
166
+ onClick={ toggleListView }
167
+ ref={ setListViewToggleElement }
168
+ shortcut={ listViewShortcut }
169
+ showTooltip={ ! showIconLabels }
170
+ variant={
171
+ showIconLabels ? 'tertiary' : undefined
172
+ }
173
+ aria-expanded={ isListViewOpen }
174
+ />
175
+ ) }
176
+ { isZoomedOutViewExperimentEnabled &&
177
+ ! isDistractionFree &&
178
+ ! hasFixedToolbar && (
179
+ <ToolbarItem
180
+ as={ Button }
181
+ className="edit-site-header-edit-mode__zoom-out-view-toggle"
182
+ icon={ chevronUpDown }
183
+ isPressed={ isZoomedOutView }
184
+ /* translators: button label text should, if possible, be under 16 characters. */
185
+ label={ __( 'Zoom-out View' ) }
186
+ onClick={ () => {
187
+ setPreviewDeviceType( 'Desktop' );
188
+ __unstableSetEditorMode(
189
+ isZoomedOutView
190
+ ? 'edit'
191
+ : 'zoom-out'
192
+ );
193
+ } }
194
+ />
195
+ ) }
196
+ </>
197
+ ) }
198
+ </div>
199
+ </NavigableToolbar>
200
+ );
201
+ }
@@ -6,29 +6,26 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { useCallback, useRef } from '@wordpress/element';
10
9
  import { useViewportMatch, useReducedMotion } from '@wordpress/compose';
11
10
  import { store as coreStore } from '@wordpress/core-data';
12
11
  import {
13
- ToolSelector,
14
12
  __experimentalPreviewOptions as PreviewOptions,
15
- NavigableToolbar,
16
- store as blockEditorStore,
17
13
  privateApis as blockEditorPrivateApis,
14
+ store as blockEditorStore,
18
15
  } from '@wordpress/block-editor';
19
16
  import { useSelect, useDispatch } from '@wordpress/data';
17
+ import { useEffect, useRef, useState } from '@wordpress/element';
20
18
  import { PinnedItems } from '@wordpress/interface';
21
- import { _x, __ } from '@wordpress/i18n';
22
- import { listView, plus, external, chevronUpDown } from '@wordpress/icons';
19
+ import { __ } from '@wordpress/i18n';
20
+ import { external, next, previous } from '@wordpress/icons';
23
21
  import {
24
- __unstableMotion as motion,
25
22
  Button,
26
- ToolbarItem,
23
+ __unstableMotion as motion,
27
24
  MenuGroup,
28
25
  MenuItem,
26
+ Popover,
29
27
  VisuallyHidden,
30
28
  } from '@wordpress/components';
31
- import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
32
29
  import { store as preferencesStore } from '@wordpress/preferences';
33
30
 
34
31
  /**
@@ -36,9 +33,8 @@ import { store as preferencesStore } from '@wordpress/preferences';
36
33
  */
37
34
  import MoreMenu from './more-menu';
38
35
  import SaveButton from '../save-button';
39
- import UndoButton from './undo-redo/undo';
40
- import RedoButton from './undo-redo/redo';
41
36
  import DocumentActions from './document-actions';
37
+ import DocumentTools from './document-tools';
42
38
  import { store as editSiteStore } from '../../store';
43
39
  import {
44
40
  getEditorCanvasContainerTitle,
@@ -47,37 +43,25 @@ import {
47
43
  import { unlock } from '../../lock-unlock';
48
44
  import { FOCUSABLE_ENTITIES } from '../../utils/constants';
49
45
 
50
- const { useShouldContextualToolbarShow } = unlock( blockEditorPrivateApis );
51
-
52
- const preventDefault = ( event ) => {
53
- event.preventDefault();
54
- };
46
+ const { BlockContextualToolbar } = unlock( blockEditorPrivateApis );
55
47
 
56
48
  export default function HeaderEditMode( { setListViewToggleElement } ) {
57
- const inserterButton = useRef();
58
49
  const {
59
50
  deviceType,
60
51
  templateType,
61
- isInserterOpen,
62
- isListViewOpen,
63
- listViewShortcut,
64
- isVisualMode,
65
52
  isDistractionFree,
66
53
  blockEditorMode,
54
+ blockSelectionStart,
67
55
  homeUrl,
68
56
  showIconLabels,
69
57
  editorCanvasView,
70
58
  hasFixedToolbar,
59
+ isZoomOutMode,
71
60
  } = useSelect( ( select ) => {
72
- const {
73
- __experimentalGetPreviewDeviceType,
74
- getEditedPostType,
75
- isInserterOpened,
76
- isListViewOpened,
77
- getEditorMode,
78
- } = select( editSiteStore );
79
- const { getShortcutRepresentation } = select( keyboardShortcutsStore );
80
- const { __unstableGetEditorMode } = select( blockEditorStore );
61
+ const { __experimentalGetPreviewDeviceType, getEditedPostType } =
62
+ select( editSiteStore );
63
+ const { getBlockSelectionStart, __unstableGetEditorMode } =
64
+ select( blockEditorStore );
81
65
 
82
66
  const postType = getEditedPostType();
83
67
 
@@ -90,13 +74,8 @@ export default function HeaderEditMode( { setListViewToggleElement } ) {
90
74
  return {
91
75
  deviceType: __experimentalGetPreviewDeviceType(),
92
76
  templateType: postType,
93
- isInserterOpen: isInserterOpened(),
94
- isListViewOpen: isListViewOpened(),
95
- listViewShortcut: getShortcutRepresentation(
96
- 'core/edit-site/toggle-list-view'
97
- ),
98
- isVisualMode: getEditorMode() === 'visual',
99
77
  blockEditorMode: __unstableGetEditorMode(),
78
+ blockSelectionStart: getBlockSelectionStart(),
100
79
  homeUrl: getUnstableBase()?.home,
101
80
  showIconLabels: getPreference(
102
81
  editSiteStore.name,
@@ -105,71 +84,44 @@ export default function HeaderEditMode( { setListViewToggleElement } ) {
105
84
  editorCanvasView: unlock(
106
85
  select( editSiteStore )
107
86
  ).getEditorCanvasContainerView(),
108
- isDistractionFree: getPreference(
109
- editSiteStore.name,
110
- 'distractionFree'
111
- ),
112
87
  hasFixedToolbar: getPreference(
113
88
  editSiteStore.name,
114
89
  'fixedToolbar'
115
90
  ),
91
+ isDistractionFree: getPreference(
92
+ editSiteStore.name,
93
+ 'distractionFree'
94
+ ),
95
+ isZoomOutMode: __unstableGetEditorMode() === 'zoom-out',
116
96
  };
117
97
  }, [] );
118
98
 
119
- const {
120
- __experimentalSetPreviewDeviceType: setPreviewDeviceType,
121
- setIsInserterOpened,
122
- setIsListViewOpened,
123
- } = useDispatch( editSiteStore );
124
- const { __unstableSetEditorMode } = useDispatch( blockEditorStore );
125
- const disableMotion = useReducedMotion();
126
-
127
99
  const isLargeViewport = useViewportMatch( 'medium' );
100
+ const isTopToolbar = ! isZoomOutMode && hasFixedToolbar && isLargeViewport;
101
+ const blockToolbarRef = useRef();
128
102
 
129
- const toggleInserter = useCallback( () => {
130
- if ( isInserterOpen ) {
131
- // Focusing the inserter button should close the inserter popover.
132
- // However, there are some cases it won't close when the focus is lost.
133
- // See https://github.com/WordPress/gutenberg/issues/43090 for more details.
134
- inserterButton.current.focus();
135
- setIsInserterOpened( false );
136
- } else {
137
- setIsInserterOpened( true );
138
- }
139
- }, [ isInserterOpen, setIsInserterOpened ] );
140
-
141
- const toggleListView = useCallback(
142
- () => setIsListViewOpened( ! isListViewOpen ),
143
- [ setIsListViewOpened, isListViewOpen ]
144
- );
145
-
146
- const {
147
- shouldShowContextualToolbar,
148
- canFocusHiddenToolbar,
149
- fixedToolbarCanBeFocused,
150
- } = useShouldContextualToolbarShow();
151
- // If there's a block toolbar to be focused, disable the focus shortcut for the document toolbar.
152
- // There's a fixed block toolbar when the fixed toolbar option is enabled or when the browser width is less than the large viewport.
153
- const blockToolbarCanBeFocused =
154
- shouldShowContextualToolbar ||
155
- canFocusHiddenToolbar ||
156
- fixedToolbarCanBeFocused;
103
+ const { __experimentalSetPreviewDeviceType: setPreviewDeviceType } =
104
+ useDispatch( editSiteStore );
105
+ const disableMotion = useReducedMotion();
157
106
 
158
107
  const hasDefaultEditorCanvasView = ! useHasEditorCanvasContainer();
159
108
 
160
109
  const isFocusMode = FOCUSABLE_ENTITIES.includes( templateType );
161
110
 
162
- /* translators: button label text should, if possible, be under 16 characters. */
163
- const longLabel = _x(
164
- 'Toggle block inserter',
165
- 'Generic label for block inserter button'
166
- );
167
- const shortLabel = ! isInserterOpen ? __( 'Add' ) : __( 'Close' );
168
-
169
- const isZoomedOutViewExperimentEnabled =
170
- window?.__experimentalEnableZoomedOutView && isVisualMode;
171
111
  const isZoomedOutView = blockEditorMode === 'zoom-out';
172
112
 
113
+ const [ isBlockToolsCollapsed, setIsBlockToolsCollapsed ] =
114
+ useState( true );
115
+
116
+ const hasBlockSelected = !! blockSelectionStart;
117
+
118
+ useEffect( () => {
119
+ // If we have a new block selection, show the block tools
120
+ if ( blockSelectionStart ) {
121
+ setIsBlockToolsCollapsed( false );
122
+ }
123
+ }, [ blockSelectionStart ] );
124
+
173
125
  const toolbarVariants = {
174
126
  isDistractionFree: { y: '-50px' },
175
127
  isDistractionFreeHovering: { y: 0 },
@@ -190,116 +142,66 @@ export default function HeaderEditMode( { setListViewToggleElement } ) {
190
142
  } ) }
191
143
  >
192
144
  { hasDefaultEditorCanvasView && (
193
- <NavigableToolbar
194
- as={ motion.div }
145
+ <motion.div
195
146
  className="edit-site-header-edit-mode__start"
196
- aria-label={ __( 'Document tools' ) }
197
- shouldUseKeyboardFocusShortcut={
198
- ! blockToolbarCanBeFocused
199
- }
200
147
  variants={ toolbarVariants }
201
148
  transition={ toolbarTransition }
202
149
  >
203
- <div className="edit-site-header-edit-mode__toolbar">
204
- { ! isDistractionFree && (
205
- <ToolbarItem
206
- ref={ inserterButton }
207
- as={ Button }
208
- className="edit-site-header-edit-mode__inserter-toggle"
209
- variant="primary"
210
- isPressed={ isInserterOpen }
211
- onMouseDown={ preventDefault }
212
- onClick={ toggleInserter }
213
- disabled={ ! isVisualMode }
214
- icon={ plus }
215
- label={
216
- showIconLabels ? shortLabel : longLabel
217
- }
218
- showTooltip={ ! showIconLabels }
219
- aria-expanded={ isInserterOpen }
220
- />
221
- ) }
222
- { isLargeViewport && (
223
- <>
224
- { ! hasFixedToolbar && (
225
- <ToolbarItem
226
- as={ ToolSelector }
227
- showTooltip={ ! showIconLabels }
228
- variant={
229
- showIconLabels
230
- ? 'tertiary'
231
- : undefined
232
- }
233
- disabled={ ! isVisualMode }
234
- />
150
+ <DocumentTools
151
+ blockEditorMode={ blockEditorMode }
152
+ isDistractionFree={ isDistractionFree }
153
+ showIconLabels={ showIconLabels }
154
+ setListViewToggleElement={ setListViewToggleElement }
155
+ />
156
+ { isTopToolbar && (
157
+ <>
158
+ <div
159
+ className={ classnames(
160
+ 'selected-block-tools-wrapper',
161
+ {
162
+ 'is-collapsed': isBlockToolsCollapsed,
163
+ }
235
164
  ) }
236
- <ToolbarItem
237
- as={ UndoButton }
238
- showTooltip={ ! showIconLabels }
239
- variant={
240
- showIconLabels ? 'tertiary' : undefined
165
+ >
166
+ <BlockContextualToolbar isFixed />
167
+ </div>
168
+ <Popover.Slot
169
+ ref={ blockToolbarRef }
170
+ name="block-toolbar"
171
+ />
172
+ { hasBlockSelected && (
173
+ <Button
174
+ className="edit-site-header-edit-mode__block-tools-toggle"
175
+ icon={
176
+ isBlockToolsCollapsed ? next : previous
241
177
  }
242
- />
243
- <ToolbarItem
244
- as={ RedoButton }
245
- showTooltip={ ! showIconLabels }
246
- variant={
247
- showIconLabels ? 'tertiary' : undefined
178
+ onClick={ () => {
179
+ setIsBlockToolsCollapsed(
180
+ ( collapsed ) => ! collapsed
181
+ );
182
+ } }
183
+ label={
184
+ isBlockToolsCollapsed
185
+ ? __( 'Show block tools' )
186
+ : __( 'Hide block tools' )
248
187
  }
249
188
  />
250
- { ! isDistractionFree && (
251
- <ToolbarItem
252
- as={ Button }
253
- className="edit-site-header-edit-mode__list-view-toggle"
254
- disabled={
255
- ! isVisualMode || isZoomedOutView
256
- }
257
- icon={ listView }
258
- isPressed={ isListViewOpen }
259
- /* translators: button label text should, if possible, be under 16 characters. */
260
- label={ __( 'List View' ) }
261
- onClick={ toggleListView }
262
- ref={ setListViewToggleElement }
263
- shortcut={ listViewShortcut }
264
- showTooltip={ ! showIconLabels }
265
- variant={
266
- showIconLabels
267
- ? 'tertiary'
268
- : undefined
269
- }
270
- aria-expanded={ isListViewOpen }
271
- />
272
- ) }
273
- { isZoomedOutViewExperimentEnabled &&
274
- ! isDistractionFree &&
275
- ! hasFixedToolbar && (
276
- <ToolbarItem
277
- as={ Button }
278
- className="edit-site-header-edit-mode__zoom-out-view-toggle"
279
- icon={ chevronUpDown }
280
- isPressed={ isZoomedOutView }
281
- /* translators: button label text should, if possible, be under 16 characters. */
282
- label={ __( 'Zoom-out View' ) }
283
- onClick={ () => {
284
- setPreviewDeviceType(
285
- 'Desktop'
286
- );
287
- __unstableSetEditorMode(
288
- isZoomedOutView
289
- ? 'edit'
290
- : 'zoom-out'
291
- );
292
- } }
293
- />
294
- ) }
295
- </>
296
- ) }
297
- </div>
298
- </NavigableToolbar>
189
+ ) }
190
+ </>
191
+ ) }
192
+ </motion.div>
299
193
  ) }
300
194
 
301
195
  { ! isDistractionFree && (
302
- <div className="edit-site-header-edit-mode__center">
196
+ <div
197
+ className={ classnames(
198
+ 'edit-site-header-edit-mode__center',
199
+ {
200
+ 'is-collapsed':
201
+ ! isBlockToolsCollapsed && isLargeViewport,
202
+ }
203
+ ) }
204
+ >
303
205
  { ! hasDefaultEditorCanvasView ? (
304
206
  getEditorCanvasContainerTitle( editorCanvasView )
305
207
  ) : (
@@ -327,6 +229,7 @@ export default function HeaderEditMode( { setListViewToggleElement } ) {
327
229
  isEnabled={
328
230
  ! isFocusMode && hasDefaultEditorCanvasView
329
231
  }
232
+ showIconLabels={ showIconLabels }
330
233
  >
331
234
  { ( { onClose } ) => (
332
235
  <MenuGroup>
@@ -52,7 +52,7 @@ export default function MoreMenu( { showIconLabels } ) {
52
52
 
53
53
  const toggleDistractionFree = () => {
54
54
  registry.batch( () => {
55
- setPreference( 'core/edit-site', 'fixedToolbar', false );
55
+ setPreference( 'core/edit-site', 'fixedToolbar', true );
56
56
  setIsInserterOpened( false );
57
57
  setIsListViewOpened( false );
58
58
  closeGeneralSidebar();
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import downloadjs from 'downloadjs';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -11,6 +6,7 @@ import { MenuItem } from '@wordpress/components';
11
6
  import apiFetch from '@wordpress/api-fetch';
12
7
  import { download } from '@wordpress/icons';
13
8
  import { useDispatch } from '@wordpress/data';
9
+ import { downloadBlob } from '@wordpress/blob';
14
10
  import { store as noticesStore } from '@wordpress/notices';
15
11
 
16
12
  export default function SiteExport() {
@@ -35,7 +31,7 @@ export default function SiteExport() {
35
31
  ? contentDispositionMatches[ 1 ]
36
32
  : 'edit-site-export';
37
33
 
38
- downloadjs( blob, fileName + '.zip', 'application/zip' );
34
+ downloadBlob( fileName + '.zip', blob, 'application/zip' );
39
35
  } catch ( errorResponse ) {
40
36
  let error = {};
41
37
  try {
@@ -15,6 +15,17 @@ $header-toolbar-min-width: 335px;
15
15
  .edit-site-header-edit-mode__start {
16
16
  display: flex;
17
17
  border: none;
18
+ align-items: center;
19
+ flex-shrink: 2;
20
+ // We need this to be overflow hidden so the block toolbar can
21
+ // overflow scroll. If the overflow is visible, flexbox allows
22
+ // the toolbar to grow outside of the allowed container space.
23
+ overflow: hidden;
24
+ // Take up the full height of the header so the border focus
25
+ // is visible on toolbar buttons.
26
+ height: 100%;
27
+ // Allow focus ring to be fully visible on furthest right button.
28
+ padding-right: 2px;
18
29
  }
19
30
 
20
31
  .edit-site-header-edit-mode__end {
@@ -35,6 +46,10 @@ $header-toolbar-min-width: 335px;
35
46
  // See https://dev.w3.org/csswg/css-flexbox/#min-size-auto
36
47
  min-width: 0;
37
48
  }
49
+
50
+ .block-editor-block-contextual-toolbar.is-fixed {
51
+ border: none;
52
+ }
38
53
  }
39
54
 
40
55
  .edit-site-header-edit-mode__toolbar {
@@ -99,7 +114,7 @@ $header-toolbar-min-width: 335px;
99
114
  }
100
115
  }
101
116
 
102
- .edit-site-header-edit-mode__start {
117
+ .edit-site-header-edit-mode__document-tools {
103
118
  display: flex;
104
119
  border: none;
105
120
 
@@ -183,7 +198,25 @@ $header-toolbar-min-width: 335px;
183
198
  padding: 0 $grid-unit-10;
184
199
  }
185
200
 
186
- .edit-site-header-edit-mode__start .edit-site-header-edit-mode__toolbar > * + * {
201
+ .edit-site-header-edit-mode__document-tools .edit-site-header-edit-mode__toolbar > * + * {
187
202
  margin-left: $grid-unit-10;
188
203
  }
189
204
  }
205
+
206
+ .has-fixed-toolbar {
207
+ .selected-block-tools-wrapper {
208
+ overflow-x: scroll;
209
+
210
+ &.is-collapsed {
211
+ display: none;
212
+ }
213
+ }
214
+
215
+ .edit-site-header-edit-mode__center.is-collapsed {
216
+ display: none;
217
+ }
218
+ }
219
+
220
+ .edit-site-header-edit-mode__block-tools-toggle {
221
+ margin-left: 2px; // Allow focus ring to be fully visible
222
+ }