@wordpress/edit-site 5.13.0 → 5.14.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 (470) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-page/index.js +1 -7
  3. package/build/components/add-new-page/index.js.map +1 -1
  4. package/build/components/add-new-pattern/index.js +11 -11
  5. package/build/components/add-new-pattern/index.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +2 -2
  7. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  8. package/build/components/add-new-template/new-template.js +69 -14
  9. package/build/components/add-new-template/new-template.js.map +1 -1
  10. package/build/components/block-editor/editor-canvas.js +1 -1
  11. package/build/components/block-editor/editor-canvas.js.map +1 -1
  12. package/build/components/block-editor/inserter-media-categories.js +1 -22
  13. package/build/components/block-editor/inserter-media-categories.js.map +1 -1
  14. package/build/components/block-editor/site-editor-canvas.js +29 -32
  15. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  16. package/build/components/block-editor/use-site-editor-settings.js +9 -12
  17. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  18. package/build/components/canvas-spinner/index.js +1 -18
  19. package/build/components/canvas-spinner/index.js.map +1 -1
  20. package/build/components/create-pattern-modal/index.js +9 -9
  21. package/build/components/create-pattern-modal/index.js.map +1 -1
  22. package/build/components/create-template-part-modal/index.js +1 -1
  23. package/build/components/create-template-part-modal/index.js.map +1 -1
  24. package/build/components/editor/index.js +11 -1
  25. package/build/components/editor/index.js.map +1 -1
  26. package/build/components/global-styles/palette.js +1 -1
  27. package/build/components/global-styles/palette.js.map +1 -1
  28. package/build/components/global-styles/ui.js +7 -2
  29. package/build/components/global-styles/ui.js.map +1 -1
  30. package/build/components/header-edit-mode/document-actions/index.js +9 -1
  31. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  32. package/build/components/header-edit-mode/index.js +41 -10
  33. package/build/components/header-edit-mode/index.js.map +1 -1
  34. package/build/components/header-edit-mode/more-menu/index.js +47 -17
  35. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  36. package/build/components/keyboard-shortcut-help-modal/index.js +17 -4
  37. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  38. package/build/components/keyboard-shortcuts/edit-mode.js +32 -1
  39. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  40. package/build/components/keyboard-shortcuts/register.js +9 -0
  41. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  42. package/build/components/layout/index.js +103 -26
  43. package/build/components/layout/index.js.map +1 -1
  44. package/build/components/page/header.js +1 -1
  45. package/build/components/page/header.js.map +1 -1
  46. package/build/components/page/index.js +3 -1
  47. package/build/components/page/index.js.map +1 -1
  48. package/build/components/page-actions/delete-page-menu-item.js +2 -1
  49. package/build/components/page-actions/delete-page-menu-item.js.map +1 -1
  50. package/build/components/page-content-focus-manager/back-to-page-notification.js +9 -3
  51. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +1 -1
  52. package/build/components/page-main/index.js +8 -4
  53. package/build/components/page-main/index.js.map +1 -1
  54. package/build/components/{page-library → page-patterns}/grid-item.js +61 -33
  55. package/build/components/page-patterns/grid-item.js.map +1 -0
  56. package/build/components/{page-library → page-patterns}/grid.js +1 -1
  57. package/build/components/page-patterns/grid.js.map +1 -0
  58. package/build/components/{page-library → page-patterns}/index.js +6 -6
  59. package/build/components/page-patterns/index.js.map +1 -0
  60. package/build/components/{page-library → page-patterns}/no-patterns.js +1 -1
  61. package/build/components/page-patterns/no-patterns.js.map +1 -0
  62. package/build/components/{page-library → page-patterns}/patterns-list.js +9 -7
  63. package/build/components/page-patterns/patterns-list.js.map +1 -0
  64. package/build/components/page-patterns/search-items.js.map +1 -0
  65. package/build/components/{page-library/use-library-settings.js → page-patterns/use-pattern-settings.js} +3 -3
  66. package/build/components/page-patterns/use-pattern-settings.js.map +1 -0
  67. package/build/components/{page-library → page-patterns}/use-patterns.js +12 -2
  68. package/build/components/page-patterns/use-patterns.js.map +1 -0
  69. package/build/components/{page-library → page-patterns}/utils.js +3 -3
  70. package/build/components/page-patterns/utils.js.map +1 -0
  71. package/build/components/page-template-parts/index.js +103 -0
  72. package/build/components/page-template-parts/index.js.map +1 -0
  73. package/build/components/page-templates/index.js +1 -0
  74. package/build/components/page-templates/index.js.map +1 -1
  75. package/build/components/preferences-modal/enable-feature.js +5 -1
  76. package/build/components/preferences-modal/enable-feature.js.map +1 -1
  77. package/build/components/preferences-modal/index.js +43 -4
  78. package/build/components/preferences-modal/index.js.map +1 -1
  79. package/build/components/sidebar/index.js +6 -6
  80. package/build/components/sidebar/index.js.map +1 -1
  81. package/build/components/sidebar-edit-mode/index.js +4 -2
  82. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  83. package/build/components/sidebar-edit-mode/settings-header/index.js +7 -1
  84. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  85. package/build/components/sidebar-navigation-screen/index.js +7 -3
  86. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  87. package/build/components/sidebar-navigation-screen-global-styles/index.js +69 -5
  88. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  89. package/build/components/sidebar-navigation-screen-main/index.js +2 -2
  90. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  91. package/build/components/sidebar-navigation-screen-navigation-menu/delete-modal.js +7 -16
  92. package/build/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +1 -1
  93. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +10 -11
  94. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  95. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +6 -6
  96. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  97. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +10 -1
  98. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  99. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +9 -3
  100. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  101. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +5 -1
  102. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  103. package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +29 -0
  104. package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -0
  105. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +27 -4
  106. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  107. package/build/components/sidebar-navigation-screen-page/page-details.js +11 -4
  108. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  109. package/build/components/sidebar-navigation-screen-page/status-label.js +1 -1
  110. package/build/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  111. package/build/components/sidebar-navigation-screen-pages/index.js +1 -1
  112. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  113. package/build/components/sidebar-navigation-screen-pattern/index.js +13 -8
  114. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  115. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  116. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  117. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +23 -0
  118. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  119. package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/category-item.js +4 -4
  120. package/build/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -0
  121. package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/index.js +55 -15
  122. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -0
  123. package/build/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js.map +1 -0
  124. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +30 -0
  125. package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -0
  126. package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-pattern-categories.js +2 -20
  127. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -0
  128. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -0
  129. package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-theme-patterns.js +1 -1
  130. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -0
  131. package/build/components/sidebar-navigation-screen-templates/index.js +11 -63
  132. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  133. package/build/components/sidebar-navigation-screen-templates-browse/index.js +4 -2
  134. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  135. package/build/components/site-hub/index.js +1 -1
  136. package/build/components/site-hub/index.js.map +1 -1
  137. package/build/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  138. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  139. package/build/components/template-actions/index.js +22 -6
  140. package/build/components/template-actions/index.js.map +1 -1
  141. package/build/components/welcome-guide/editor.js +1 -1
  142. package/build/components/welcome-guide/editor.js.map +1 -1
  143. package/build/components/welcome-guide/index.js +5 -1
  144. package/build/components/welcome-guide/index.js.map +1 -1
  145. package/build/components/welcome-guide/page.js +70 -0
  146. package/build/components/welcome-guide/page.js.map +1 -0
  147. package/build/components/welcome-guide/styles.js +1 -1
  148. package/build/components/welcome-guide/styles.js.map +1 -1
  149. package/build/components/welcome-guide/template.js +71 -0
  150. package/build/components/welcome-guide/template.js.map +1 -0
  151. package/build/hooks/commands/use-common-commands.js +37 -0
  152. package/build/hooks/commands/use-common-commands.js.map +1 -1
  153. package/build/hooks/commands/use-edit-mode-commands.js +195 -44
  154. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  155. package/build/index.js +9 -0
  156. package/build/index.js.map +1 -1
  157. package/build/store/actions.js +5 -2
  158. package/build/store/actions.js.map +1 -1
  159. package/build/store/selectors.js +2 -1
  160. package/build/store/selectors.js.map +1 -1
  161. package/build/utils/get-is-list-page.js +2 -2
  162. package/build/utils/get-is-list-page.js.map +1 -1
  163. package/build/utils/template-part-create.js +2 -2
  164. package/build/utils/template-part-create.js.map +1 -1
  165. package/build-module/components/add-new-page/index.js +1 -6
  166. package/build-module/components/add-new-page/index.js.map +1 -1
  167. package/build-module/components/add-new-pattern/index.js +11 -11
  168. package/build-module/components/add-new-pattern/index.js.map +1 -1
  169. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +1 -1
  170. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  171. package/build-module/components/add-new-template/new-template.js +72 -17
  172. package/build-module/components/add-new-template/new-template.js.map +1 -1
  173. package/build-module/components/block-editor/editor-canvas.js +1 -1
  174. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  175. package/build-module/components/block-editor/inserter-media-categories.js +1 -22
  176. package/build-module/components/block-editor/inserter-media-categories.js.map +1 -1
  177. package/build-module/components/block-editor/site-editor-canvas.js +29 -32
  178. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  179. package/build-module/components/block-editor/use-site-editor-settings.js +9 -12
  180. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  181. package/build-module/components/canvas-spinner/index.js +1 -15
  182. package/build-module/components/canvas-spinner/index.js.map +1 -1
  183. package/build-module/components/create-pattern-modal/index.js +9 -9
  184. package/build-module/components/create-pattern-modal/index.js.map +1 -1
  185. package/build-module/components/create-template-part-modal/index.js +1 -1
  186. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  187. package/build-module/components/editor/index.js +11 -1
  188. package/build-module/components/editor/index.js.map +1 -1
  189. package/build-module/components/global-styles/palette.js +1 -1
  190. package/build-module/components/global-styles/palette.js.map +1 -1
  191. package/build-module/components/global-styles/ui.js +8 -3
  192. package/build-module/components/global-styles/ui.js.map +1 -1
  193. package/build-module/components/header-edit-mode/document-actions/index.js +10 -2
  194. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  195. package/build-module/components/header-edit-mode/index.js +43 -12
  196. package/build-module/components/header-edit-mode/index.js.map +1 -1
  197. package/build-module/components/header-edit-mode/more-menu/index.js +44 -20
  198. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  199. package/build-module/components/keyboard-shortcut-help-modal/index.js +15 -6
  200. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  201. package/build-module/components/keyboard-shortcuts/edit-mode.js +29 -1
  202. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  203. package/build-module/components/keyboard-shortcuts/register.js +9 -0
  204. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  205. package/build-module/components/layout/index.js +103 -26
  206. package/build-module/components/layout/index.js.map +1 -1
  207. package/build-module/components/page/header.js +1 -1
  208. package/build-module/components/page/header.js.map +1 -1
  209. package/build-module/components/page/index.js +2 -1
  210. package/build-module/components/page/index.js.map +1 -1
  211. package/build-module/components/page-actions/delete-page-menu-item.js +2 -1
  212. package/build-module/components/page-actions/delete-page-menu-item.js.map +1 -1
  213. package/build-module/components/page-content-focus-manager/back-to-page-notification.js +9 -3
  214. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +1 -1
  215. package/build-module/components/page-main/index.js +6 -3
  216. package/build-module/components/page-main/index.js.map +1 -1
  217. package/build-module/components/{page-library → page-patterns}/grid-item.js +65 -35
  218. package/build-module/components/page-patterns/grid-item.js.map +1 -0
  219. package/build-module/components/{page-library → page-patterns}/grid.js +1 -1
  220. package/build-module/components/page-patterns/grid.js.map +1 -0
  221. package/build-module/components/{page-library → page-patterns}/index.js +5 -5
  222. package/build-module/components/page-patterns/index.js.map +1 -0
  223. package/build-module/components/{page-library → page-patterns}/no-patterns.js +1 -1
  224. package/build-module/components/page-patterns/no-patterns.js.map +1 -0
  225. package/build-module/components/{page-library → page-patterns}/patterns-list.js +9 -7
  226. package/build-module/components/page-patterns/patterns-list.js.map +1 -0
  227. package/build-module/components/page-patterns/search-items.js.map +1 -0
  228. package/build-module/components/{page-library/use-library-settings.js → page-patterns/use-pattern-settings.js} +2 -2
  229. package/build-module/components/page-patterns/use-pattern-settings.js.map +1 -0
  230. package/build-module/components/{page-library → page-patterns}/use-patterns.js +12 -2
  231. package/build-module/components/page-patterns/use-patterns.js.map +1 -0
  232. package/build-module/components/{page-library → page-patterns}/utils.js +3 -3
  233. package/build-module/components/page-patterns/utils.js.map +1 -0
  234. package/build-module/components/page-template-parts/index.js +82 -0
  235. package/build-module/components/page-template-parts/index.js.map +1 -0
  236. package/build-module/components/page-templates/index.js +1 -0
  237. package/build-module/components/page-templates/index.js.map +1 -1
  238. package/build-module/components/preferences-modal/enable-feature.js +5 -1
  239. package/build-module/components/preferences-modal/enable-feature.js.map +1 -1
  240. package/build-module/components/preferences-modal/index.js +38 -5
  241. package/build-module/components/preferences-modal/index.js.map +1 -1
  242. package/build-module/components/sidebar/index.js +5 -5
  243. package/build-module/components/sidebar/index.js.map +1 -1
  244. package/build-module/components/sidebar-edit-mode/index.js +4 -2
  245. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  246. package/build-module/components/sidebar-edit-mode/settings-header/index.js +6 -1
  247. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  248. package/build-module/components/sidebar-navigation-screen/index.js +7 -3
  249. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  250. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +67 -5
  251. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  252. package/build-module/components/sidebar-navigation-screen-main/index.js +2 -2
  253. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  254. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-modal.js +8 -17
  255. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-modal.js.map +1 -1
  256. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +10 -9
  257. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  258. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +5 -6
  259. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  260. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +11 -1
  261. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  262. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +8 -4
  263. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  264. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +5 -1
  265. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  266. package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +20 -0
  267. package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -0
  268. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +26 -6
  269. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  270. package/build-module/components/sidebar-navigation-screen-page/page-details.js +11 -4
  271. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  272. package/build-module/components/sidebar-navigation-screen-page/status-label.js +1 -1
  273. package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  274. package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -2
  275. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  276. package/build-module/components/sidebar-navigation-screen-pattern/index.js +12 -7
  277. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  278. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  279. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  280. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +21 -0
  281. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  282. package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/category-item.js +4 -4
  283. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -0
  284. package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/index.js +54 -16
  285. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -0
  286. package/build-module/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js.map +1 -0
  287. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +20 -0
  288. package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -0
  289. package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-pattern-categories.js +2 -17
  290. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -0
  291. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -0
  292. package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-theme-patterns.js +1 -1
  293. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -0
  294. package/build-module/components/sidebar-navigation-screen-templates/index.js +12 -62
  295. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  296. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +4 -2
  297. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  298. package/build-module/components/site-hub/index.js +1 -1
  299. package/build-module/components/site-hub/index.js.map +1 -1
  300. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  301. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  302. package/build-module/components/template-actions/index.js +24 -7
  303. package/build-module/components/template-actions/index.js.map +1 -1
  304. package/build-module/components/welcome-guide/editor.js +1 -1
  305. package/build-module/components/welcome-guide/editor.js.map +1 -1
  306. package/build-module/components/welcome-guide/index.js +3 -1
  307. package/build-module/components/welcome-guide/index.js.map +1 -1
  308. package/build-module/components/welcome-guide/page.js +59 -0
  309. package/build-module/components/welcome-guide/page.js.map +1 -0
  310. package/build-module/components/welcome-guide/styles.js +1 -1
  311. package/build-module/components/welcome-guide/styles.js.map +1 -1
  312. package/build-module/components/welcome-guide/template.js +60 -0
  313. package/build-module/components/welcome-guide/template.js.map +1 -0
  314. package/build-module/hooks/commands/use-common-commands.js +37 -1
  315. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  316. package/build-module/hooks/commands/use-edit-mode-commands.js +193 -46
  317. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  318. package/build-module/index.js +4 -0
  319. package/build-module/index.js.map +1 -1
  320. package/build-module/store/actions.js +5 -2
  321. package/build-module/store/actions.js.map +1 -1
  322. package/build-module/store/selectors.js +2 -1
  323. package/build-module/store/selectors.js.map +1 -1
  324. package/build-module/utils/get-is-list-page.js +2 -2
  325. package/build-module/utils/get-is-list-page.js.map +1 -1
  326. package/build-module/utils/template-part-create.js +1 -1
  327. package/build-module/utils/template-part-create.js.map +1 -1
  328. package/build-style/style-rtl.css +167 -51
  329. package/build-style/style.css +167 -51
  330. package/package.json +39 -39
  331. package/src/components/add-new-page/index.js +1 -6
  332. package/src/components/add-new-pattern/index.js +11 -13
  333. package/src/components/add-new-template/add-custom-generic-template-modal-content.js +1 -1
  334. package/src/components/add-new-template/new-template.js +120 -24
  335. package/src/components/add-new-template/style.scss +30 -2
  336. package/src/components/block-editor/editor-canvas.js +3 -1
  337. package/src/components/block-editor/inserter-media-categories.js +1 -21
  338. package/src/components/block-editor/site-editor-canvas.js +7 -1
  339. package/src/components/block-editor/use-site-editor-settings.js +8 -12
  340. package/src/components/canvas-spinner/index.js +1 -11
  341. package/src/components/canvas-spinner/style.scss +4 -0
  342. package/src/components/create-pattern-modal/index.js +11 -12
  343. package/src/components/create-template-part-modal/index.js +1 -1
  344. package/src/components/editor/index.js +16 -1
  345. package/src/components/editor/style.scss +4 -0
  346. package/src/components/global-styles/palette.js +10 -9
  347. package/src/components/global-styles/stories/index.js +1 -0
  348. package/src/components/global-styles/ui.js +34 -24
  349. package/src/components/header-edit-mode/document-actions/index.js +9 -1
  350. package/src/components/header-edit-mode/document-actions/style.scss +8 -0
  351. package/src/components/header-edit-mode/index.js +112 -62
  352. package/src/components/header-edit-mode/more-menu/index.js +74 -30
  353. package/src/components/keyboard-shortcut-help-modal/index.js +21 -7
  354. package/src/components/keyboard-shortcuts/edit-mode.js +35 -2
  355. package/src/components/keyboard-shortcuts/register.js +10 -0
  356. package/src/components/layout/index.js +140 -76
  357. package/src/components/layout/style.scss +47 -1
  358. package/src/components/page/header.js +1 -1
  359. package/src/components/page/index.js +5 -1
  360. package/src/components/page-actions/delete-page-menu-item.js +1 -0
  361. package/src/components/page-content-focus-manager/back-to-page-notification.js +7 -2
  362. package/src/components/page-main/index.js +6 -3
  363. package/src/components/{page-library → page-patterns}/grid-item.js +83 -34
  364. package/src/components/{page-library → page-patterns}/grid.js +1 -1
  365. package/src/components/{page-library → page-patterns}/index.js +5 -5
  366. package/src/components/{page-library → page-patterns}/no-patterns.js +1 -1
  367. package/src/components/{page-library → page-patterns}/patterns-list.js +13 -9
  368. package/src/components/{page-library → page-patterns}/style.scss +19 -15
  369. package/src/components/{page-library/use-library-settings.js → page-patterns/use-pattern-settings.js} +1 -1
  370. package/src/components/{page-library → page-patterns}/use-patterns.js +11 -2
  371. package/src/components/{page-library → page-patterns}/utils.js +3 -3
  372. package/src/components/page-template-parts/index.js +105 -0
  373. package/src/components/page-templates/index.js +1 -1
  374. package/src/components/preferences-modal/enable-feature.js +5 -2
  375. package/src/components/preferences-modal/index.js +35 -4
  376. package/src/components/sidebar/index.js +6 -6
  377. package/src/components/sidebar-button/style.scss +1 -1
  378. package/src/components/sidebar-edit-mode/index.js +4 -2
  379. package/src/components/sidebar-edit-mode/settings-header/index.js +7 -2
  380. package/src/components/sidebar-navigation-item/style.scss +2 -1
  381. package/src/components/sidebar-navigation-screen/index.js +4 -2
  382. package/src/components/sidebar-navigation-screen/style.scss +7 -2
  383. package/src/components/sidebar-navigation-screen-details-panel/style.scss +1 -1
  384. package/src/components/sidebar-navigation-screen-global-styles/index.js +57 -17
  385. package/src/components/sidebar-navigation-screen-main/index.js +2 -2
  386. package/src/components/sidebar-navigation-screen-navigation-menu/delete-modal.js +14 -35
  387. package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +8 -11
  388. package/src/components/sidebar-navigation-screen-navigation-menu/index.js +9 -8
  389. package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +12 -1
  390. package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +16 -7
  391. package/src/components/sidebar-navigation-screen-navigation-menu/style.scss +2 -7
  392. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +5 -1
  393. package/src/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +24 -0
  394. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +39 -8
  395. package/src/components/sidebar-navigation-screen-page/page-details.js +8 -3
  396. package/src/components/sidebar-navigation-screen-page/status-label.js +1 -1
  397. package/src/components/sidebar-navigation-screen-pages/index.js +2 -2
  398. package/src/components/sidebar-navigation-screen-pattern/index.js +13 -6
  399. package/src/components/sidebar-navigation-screen-pattern/style.scss +29 -0
  400. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  401. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +43 -1
  402. package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/category-item.js +4 -4
  403. package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/index.js +75 -22
  404. package/src/components/sidebar-navigation-screen-patterns/style.scss +3 -0
  405. package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +23 -0
  406. package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-pattern-categories.js +1 -18
  407. package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-theme-patterns.js +1 -1
  408. package/src/components/sidebar-navigation-screen-template/style.scss +15 -15
  409. package/src/components/sidebar-navigation-screen-templates/index.js +15 -82
  410. package/src/components/sidebar-navigation-screen-templates-browse/index.js +2 -0
  411. package/src/components/site-hub/index.js +1 -1
  412. package/src/components/site-hub/style.scss +4 -3
  413. package/src/components/start-template-options/style.scss +0 -3
  414. package/src/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  415. package/src/components/template-actions/index.js +38 -8
  416. package/src/components/welcome-guide/editor.js +1 -1
  417. package/src/components/welcome-guide/index.js +4 -0
  418. package/src/components/welcome-guide/page.js +75 -0
  419. package/src/components/welcome-guide/style.scss +15 -1
  420. package/src/components/welcome-guide/styles.js +1 -1
  421. package/src/components/welcome-guide/template.js +82 -0
  422. package/src/hooks/commands/use-common-commands.js +32 -1
  423. package/src/hooks/commands/use-edit-mode-commands.js +182 -38
  424. package/src/index.js +4 -0
  425. package/src/store/actions.js +8 -1
  426. package/src/store/selectors.js +5 -0
  427. package/src/store/test/selectors.js +2 -0
  428. package/src/style.scss +3 -2
  429. package/src/utils/get-is-list-page.js +4 -3
  430. package/src/utils/template-part-create.js +1 -1
  431. package/build/components/page-library/grid-item.js.map +0 -1
  432. package/build/components/page-library/grid.js.map +0 -1
  433. package/build/components/page-library/index.js.map +0 -1
  434. package/build/components/page-library/no-patterns.js.map +0 -1
  435. package/build/components/page-library/patterns-list.js.map +0 -1
  436. package/build/components/page-library/search-items.js.map +0 -1
  437. package/build/components/page-library/use-library-settings.js.map +0 -1
  438. package/build/components/page-library/use-patterns.js.map +0 -1
  439. package/build/components/page-library/utils.js.map +0 -1
  440. package/build/components/sidebar-navigation-screen-library/category-item.js.map +0 -1
  441. package/build/components/sidebar-navigation-screen-library/index.js.map +0 -1
  442. package/build/components/sidebar-navigation-screen-library/use-default-pattern-categories.js.map +0 -1
  443. package/build/components/sidebar-navigation-screen-library/use-pattern-categories.js.map +0 -1
  444. package/build/components/sidebar-navigation-screen-library/use-template-part-areas.js.map +0 -1
  445. package/build/components/sidebar-navigation-screen-library/use-theme-patterns.js.map +0 -1
  446. package/build-module/components/page-library/grid-item.js.map +0 -1
  447. package/build-module/components/page-library/grid.js.map +0 -1
  448. package/build-module/components/page-library/index.js.map +0 -1
  449. package/build-module/components/page-library/no-patterns.js.map +0 -1
  450. package/build-module/components/page-library/patterns-list.js.map +0 -1
  451. package/build-module/components/page-library/search-items.js.map +0 -1
  452. package/build-module/components/page-library/use-library-settings.js.map +0 -1
  453. package/build-module/components/page-library/use-patterns.js.map +0 -1
  454. package/build-module/components/page-library/utils.js.map +0 -1
  455. package/build-module/components/sidebar-navigation-screen-library/category-item.js.map +0 -1
  456. package/build-module/components/sidebar-navigation-screen-library/index.js.map +0 -1
  457. package/build-module/components/sidebar-navigation-screen-library/use-default-pattern-categories.js.map +0 -1
  458. package/build-module/components/sidebar-navigation-screen-library/use-pattern-categories.js.map +0 -1
  459. package/build-module/components/sidebar-navigation-screen-library/use-template-part-areas.js.map +0 -1
  460. package/build-module/components/sidebar-navigation-screen-library/use-theme-patterns.js.map +0 -1
  461. package/src/components/sidebar-navigation-screen-library/style.scss +0 -7
  462. /package/build/components/{page-library → page-patterns}/search-items.js +0 -0
  463. /package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-default-pattern-categories.js +0 -0
  464. /package/build/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-template-part-areas.js +0 -0
  465. /package/build-module/components/{page-library → page-patterns}/search-items.js +0 -0
  466. /package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-default-pattern-categories.js +0 -0
  467. /package/build-module/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-template-part-areas.js +0 -0
  468. /package/src/components/{page-library → page-patterns}/search-items.js +0 -0
  469. /package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-default-pattern-categories.js +0 -0
  470. /package/src/components/{sidebar-navigation-screen-library → sidebar-navigation-screen-patterns}/use-template-part-areas.js +0 -0
@@ -7,7 +7,7 @@ import classnames from 'classnames';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { useCallback, useRef } from '@wordpress/element';
10
- import { useViewportMatch } from '@wordpress/compose';
10
+ import { useViewportMatch, useReducedMotion } from '@wordpress/compose';
11
11
  import { store as coreStore } from '@wordpress/core-data';
12
12
  import {
13
13
  ToolSelector,
@@ -21,6 +21,7 @@ import { PinnedItems } from '@wordpress/interface';
21
21
  import { _x, __ } from '@wordpress/i18n';
22
22
  import { listView, plus, external, chevronUpDown } from '@wordpress/icons';
23
23
  import {
24
+ __unstableMotion as motion,
24
25
  Button,
25
26
  ToolbarItem,
26
27
  MenuGroup,
@@ -60,6 +61,7 @@ export default function HeaderEditMode() {
60
61
  isListViewOpen,
61
62
  listViewShortcut,
62
63
  isVisualMode,
64
+ isDistractionFree,
63
65
  blockEditorMode,
64
66
  homeUrl,
65
67
  showIconLabels,
@@ -99,15 +101,23 @@ export default function HeaderEditMode() {
99
101
  editorCanvasView: unlock(
100
102
  select( editSiteStore )
101
103
  ).getEditorCanvasContainerView(),
104
+ isDistractionFree: select( preferencesStore ).get(
105
+ 'core/edit-site',
106
+ 'distractionFree'
107
+ ),
102
108
  };
103
109
  }, [] );
104
110
 
111
+ const { get: getPreference } = useSelect( preferencesStore );
112
+ const hasFixedToolbar = getPreference( editSiteStore.name, 'fixedToolbar' );
113
+
105
114
  const {
106
115
  __experimentalSetPreviewDeviceType: setPreviewDeviceType,
107
116
  setIsInserterOpened,
108
117
  setIsListViewOpened,
109
118
  } = useDispatch( editSiteStore );
110
119
  const { __unstableSetEditorMode } = useDispatch( blockEditorStore );
120
+ const disableMotion = useReducedMotion();
111
121
 
112
122
  const isLargeViewport = useViewportMatch( 'medium' );
113
123
 
@@ -156,6 +166,19 @@ export default function HeaderEditMode() {
156
166
  window?.__experimentalEnableZoomedOutView && isVisualMode;
157
167
  const isZoomedOutView = blockEditorMode === 'zoom-out';
158
168
 
169
+ const toolbarVariants = {
170
+ isDistractionFree: { y: '-50px' },
171
+ isDistractionFreeHovering: { y: 0 },
172
+ view: { y: 0 },
173
+ edit: { y: 0 },
174
+ };
175
+
176
+ const toolbarTransition = {
177
+ type: 'tween',
178
+ duration: disableMotion ? 0 : 0.2,
179
+ ease: 'easeOut',
180
+ };
181
+
159
182
  return (
160
183
  <div
161
184
  className={ classnames( 'edit-site-header-edit-mode', {
@@ -164,36 +187,47 @@ export default function HeaderEditMode() {
164
187
  >
165
188
  { hasDefaultEditorCanvasView && (
166
189
  <NavigableToolbar
190
+ as={ motion.div }
167
191
  className="edit-site-header-edit-mode__start"
168
192
  aria-label={ __( 'Document tools' ) }
169
193
  shouldUseKeyboardFocusShortcut={
170
194
  ! blockToolbarCanBeFocused
171
195
  }
196
+ variants={ toolbarVariants }
197
+ transition={ toolbarTransition }
172
198
  >
173
199
  <div className="edit-site-header-edit-mode__toolbar">
174
- <ToolbarItem
175
- ref={ inserterButton }
176
- as={ Button }
177
- className="edit-site-header-edit-mode__inserter-toggle"
178
- variant="primary"
179
- isPressed={ isInserterOpen }
180
- onMouseDown={ preventDefault }
181
- onClick={ toggleInserter }
182
- disabled={ ! isVisualMode }
183
- icon={ plus }
184
- label={ showIconLabels ? shortLabel : longLabel }
185
- showTooltip={ ! showIconLabels }
186
- />
200
+ { ! isDistractionFree && (
201
+ <ToolbarItem
202
+ ref={ inserterButton }
203
+ as={ Button }
204
+ className="edit-site-header-edit-mode__inserter-toggle"
205
+ variant="primary"
206
+ isPressed={ isInserterOpen }
207
+ onMouseDown={ preventDefault }
208
+ onClick={ toggleInserter }
209
+ disabled={ ! isVisualMode }
210
+ icon={ plus }
211
+ label={
212
+ showIconLabels ? shortLabel : longLabel
213
+ }
214
+ showTooltip={ ! showIconLabels }
215
+ />
216
+ ) }
187
217
  { isLargeViewport && (
188
218
  <>
189
- <ToolbarItem
190
- as={ ToolSelector }
191
- showTooltip={ ! showIconLabels }
192
- variant={
193
- showIconLabels ? 'tertiary' : undefined
194
- }
195
- disabled={ ! isVisualMode }
196
- />
219
+ { ! hasFixedToolbar && (
220
+ <ToolbarItem
221
+ as={ ToolSelector }
222
+ showTooltip={ ! showIconLabels }
223
+ variant={
224
+ showIconLabels
225
+ ? 'tertiary'
226
+ : undefined
227
+ }
228
+ disabled={ ! isVisualMode }
229
+ />
230
+ ) }
197
231
  <ToolbarItem
198
232
  as={ UndoButton }
199
233
  showTooltip={ ! showIconLabels }
@@ -208,57 +242,71 @@ export default function HeaderEditMode() {
208
242
  showIconLabels ? 'tertiary' : undefined
209
243
  }
210
244
  />
211
- <ToolbarItem
212
- as={ Button }
213
- className="edit-site-header-edit-mode__list-view-toggle"
214
- disabled={
215
- ! isVisualMode || isZoomedOutView
216
- }
217
- icon={ listView }
218
- isPressed={ isListViewOpen }
219
- /* translators: button label text should, if possible, be under 16 characters. */
220
- label={ __( 'List View' ) }
221
- onClick={ toggleListView }
222
- shortcut={ listViewShortcut }
223
- showTooltip={ ! showIconLabels }
224
- variant={
225
- showIconLabels ? 'tertiary' : undefined
226
- }
227
- />
228
- { isZoomedOutViewExperimentEnabled && (
245
+ { ! isDistractionFree && (
229
246
  <ToolbarItem
230
247
  as={ Button }
231
- className="edit-site-header-edit-mode__zoom-out-view-toggle"
232
- icon={ chevronUpDown }
233
- isPressed={ isZoomedOutView }
248
+ className="edit-site-header-edit-mode__list-view-toggle"
249
+ disabled={
250
+ ! isVisualMode || isZoomedOutView
251
+ }
252
+ icon={ listView }
253
+ isPressed={ isListViewOpen }
234
254
  /* translators: button label text should, if possible, be under 16 characters. */
235
- label={ __( 'Zoom-out View' ) }
236
- onClick={ () => {
237
- setPreviewDeviceType( 'desktop' );
238
- __unstableSetEditorMode(
239
- isZoomedOutView
240
- ? 'edit'
241
- : 'zoom-out'
242
- );
243
- } }
255
+ label={ __( 'List View' ) }
256
+ onClick={ toggleListView }
257
+ shortcut={ listViewShortcut }
258
+ showTooltip={ ! showIconLabels }
259
+ variant={
260
+ showIconLabels
261
+ ? 'tertiary'
262
+ : undefined
263
+ }
244
264
  />
245
265
  ) }
266
+ { isZoomedOutViewExperimentEnabled &&
267
+ ! isDistractionFree &&
268
+ ! hasFixedToolbar && (
269
+ <ToolbarItem
270
+ as={ Button }
271
+ className="edit-site-header-edit-mode__zoom-out-view-toggle"
272
+ icon={ chevronUpDown }
273
+ isPressed={ isZoomedOutView }
274
+ /* translators: button label text should, if possible, be under 16 characters. */
275
+ label={ __( 'Zoom-out View' ) }
276
+ onClick={ () => {
277
+ setPreviewDeviceType(
278
+ 'desktop'
279
+ );
280
+ __unstableSetEditorMode(
281
+ isZoomedOutView
282
+ ? 'edit'
283
+ : 'zoom-out'
284
+ );
285
+ } }
286
+ />
287
+ ) }
246
288
  </>
247
289
  ) }
248
290
  </div>
249
291
  </NavigableToolbar>
250
292
  ) }
251
293
 
252
- <div className="edit-site-header-edit-mode__center">
253
- { ! hasDefaultEditorCanvasView ? (
254
- getEditorCanvasContainerTitle( editorCanvasView )
255
- ) : (
256
- <DocumentActions />
257
- ) }
258
- </div>
294
+ { ! isDistractionFree && (
295
+ <div className="edit-site-header-edit-mode__center">
296
+ { ! hasDefaultEditorCanvasView ? (
297
+ getEditorCanvasContainerTitle( editorCanvasView )
298
+ ) : (
299
+ <DocumentActions />
300
+ ) }
301
+ </div>
302
+ ) }
259
303
 
260
304
  <div className="edit-site-header-edit-mode__end">
261
- <div className="edit-site-header-edit-mode__actions">
305
+ <motion.div
306
+ className="edit-site-header-edit-mode__actions"
307
+ variants={ toolbarVariants }
308
+ transition={ toolbarTransition }
309
+ >
262
310
  { ! isFocusMode && hasDefaultEditorCanvasView && (
263
311
  <div
264
312
  className={ classnames(
@@ -290,9 +338,11 @@ export default function HeaderEditMode() {
290
338
  </div>
291
339
  ) }
292
340
  <SaveButton />
293
- <PinnedItems.Slot scope="core/edit-site" />
341
+ { ! isDistractionFree && (
342
+ <PinnedItems.Slot scope="core/edit-site" />
343
+ ) }
294
344
  <MoreMenu showIconLabels={ showIconLabels } />
295
- </div>
345
+ </motion.div>
296
346
  </div>
297
347
  </div>
298
348
  );
@@ -2,37 +2,62 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __, _x } from '@wordpress/i18n';
5
- import { useReducer } from '@wordpress/element';
6
- import { useShortcut } from '@wordpress/keyboard-shortcuts';
5
+ import { useSelect, useDispatch, useRegistry } from '@wordpress/data';
7
6
  import { displayShortcut } from '@wordpress/keycodes';
8
7
  import { external } from '@wordpress/icons';
9
8
  import { MenuGroup, MenuItem, VisuallyHidden } from '@wordpress/components';
10
- import { ActionItem, MoreMenuDropdown } from '@wordpress/interface';
11
- import { PreferenceToggleMenuItem } from '@wordpress/preferences';
9
+ import {
10
+ ActionItem,
11
+ MoreMenuDropdown,
12
+ store as interfaceStore,
13
+ } from '@wordpress/interface';
14
+ import {
15
+ PreferenceToggleMenuItem,
16
+ store as preferencesStore,
17
+ } from '@wordpress/preferences';
12
18
 
13
19
  /**
14
20
  * Internal dependencies
15
21
  */
16
- import KeyboardShortcutHelpModal from '../../keyboard-shortcut-help-modal';
17
- import EditSitePreferencesModal from '../../preferences-modal';
22
+ import {
23
+ KEYBOARD_SHORTCUT_HELP_MODAL_NAME,
24
+ default as KeyboardShortcutHelpModal,
25
+ } from '../../keyboard-shortcut-help-modal';
26
+ import {
27
+ PREFERENCES_MODAL_NAME,
28
+ default as EditSitePreferencesModal,
29
+ } from '../../preferences-modal';
18
30
  import ToolsMoreMenuGroup from '../tools-more-menu-group';
19
31
  import SiteExport from './site-export';
20
32
  import WelcomeGuideMenuItem from './welcome-guide-menu-item';
21
33
  import CopyContentMenuItem from './copy-content-menu-item';
22
34
  import ModeSwitcher from '../mode-switcher';
35
+ import { store as siteEditorStore } from '../../../store';
23
36
 
24
37
  export default function MoreMenu( { showIconLabels } ) {
25
- const [ isModalActive, toggleModal ] = useReducer(
26
- ( isActive ) => ! isActive,
27
- false
38
+ const registry = useRegistry();
39
+ const isDistractionFree = useSelect(
40
+ ( select ) =>
41
+ select( preferencesStore ).get(
42
+ 'core/edit-site',
43
+ 'distractionFree'
44
+ ),
45
+ []
28
46
  );
29
47
 
30
- const [ isPreferencesModalActive, togglePreferencesModal ] = useReducer(
31
- ( isActive ) => ! isActive,
32
- false
33
- );
48
+ const { setIsInserterOpened, setIsListViewOpened, closeGeneralSidebar } =
49
+ useDispatch( siteEditorStore );
50
+ const { openModal } = useDispatch( interfaceStore );
51
+ const { set: setPreference } = useDispatch( preferencesStore );
34
52
 
35
- useShortcut( 'core/edit-site/keyboard-shortcuts', toggleModal );
53
+ const toggleDistractionFree = () => {
54
+ registry.batch( () => {
55
+ setPreference( 'core/edit-site', 'fixedToolbar', false );
56
+ setIsInserterOpened( false );
57
+ setIsListViewOpened( false );
58
+ closeGeneralSidebar();
59
+ } );
60
+ };
36
61
 
37
62
  return (
38
63
  <>
@@ -48,6 +73,7 @@ export default function MoreMenu( { showIconLabels } ) {
48
73
  <PreferenceToggleMenuItem
49
74
  scope="core/edit-site"
50
75
  name="fixedToolbar"
76
+ disabled={ isDistractionFree }
51
77
  label={ __( 'Top toolbar' ) }
52
78
  info={ __(
53
79
  'Access all block and document tools in a single place'
@@ -71,18 +97,38 @@ export default function MoreMenu( { showIconLabels } ) {
71
97
  'Spotlight mode deactivated'
72
98
  ) }
73
99
  />
74
- <ModeSwitcher />
75
- <ActionItem.Slot
76
- name="core/edit-site/plugin-more-menu"
77
- label={ __( 'Plugins' ) }
78
- as={ MenuGroup }
79
- fillProps={ { onClick: onClose } }
100
+ <PreferenceToggleMenuItem
101
+ scope="core/edit-site"
102
+ name="distractionFree"
103
+ onToggle={ toggleDistractionFree }
104
+ label={ __( 'Distraction free' ) }
105
+ info={ __( 'Write with calmness' ) }
106
+ messageActivated={ __(
107
+ 'Distraction free mode activated'
108
+ ) }
109
+ messageDeactivated={ __(
110
+ 'Distraction free mode deactivated'
111
+ ) }
112
+ shortcut={ displayShortcut.primaryShift(
113
+ '\\'
114
+ ) }
80
115
  />
81
116
  </MenuGroup>
117
+ <ModeSwitcher />
118
+ <ActionItem.Slot
119
+ name="core/edit-site/plugin-more-menu"
120
+ label={ __( 'Plugins' ) }
121
+ as={ MenuGroup }
122
+ fillProps={ { onClick: onClose } }
123
+ />
82
124
  <MenuGroup label={ __( 'Tools' ) }>
83
125
  <SiteExport />
84
126
  <MenuItem
85
- onClick={ toggleModal }
127
+ onClick={ () =>
128
+ openModal(
129
+ KEYBOARD_SHORTCUT_HELP_MODAL_NAME
130
+ )
131
+ }
86
132
  shortcut={ displayShortcut.access( 'h' ) }
87
133
  >
88
134
  { __( 'Keyboard shortcuts' ) }
@@ -111,21 +157,19 @@ export default function MoreMenu( { showIconLabels } ) {
111
157
  />
112
158
  </MenuGroup>
113
159
  <MenuGroup>
114
- <MenuItem onClick={ togglePreferencesModal }>
160
+ <MenuItem
161
+ onClick={ () =>
162
+ openModal( PREFERENCES_MODAL_NAME )
163
+ }
164
+ >
115
165
  { __( 'Preferences' ) }
116
166
  </MenuItem>
117
167
  </MenuGroup>
118
168
  </>
119
169
  ) }
120
170
  </MoreMenuDropdown>
121
- <KeyboardShortcutHelpModal
122
- isModalActive={ isModalActive }
123
- toggleModal={ toggleModal }
124
- />
125
- <EditSitePreferencesModal
126
- isModalActive={ isPreferencesModalActive }
127
- toggleModal={ togglePreferencesModal }
128
- />
171
+ <KeyboardShortcutHelpModal />
172
+ <EditSitePreferencesModal />
129
173
  </>
130
174
  );
131
175
  }
@@ -8,8 +8,12 @@ import classnames from 'classnames';
8
8
  */
9
9
  import { Modal } from '@wordpress/components';
10
10
  import { __ } from '@wordpress/i18n';
11
- import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
12
- import { useSelect } from '@wordpress/data';
11
+ import {
12
+ useShortcut,
13
+ store as keyboardShortcutsStore,
14
+ } from '@wordpress/keyboard-shortcuts';
15
+ import { store as interfaceStore } from '@wordpress/interface';
16
+ import { useSelect, useDispatch } from '@wordpress/data';
13
17
 
14
18
  /**
15
19
  * Internal dependencies
@@ -18,6 +22,9 @@ import { textFormattingShortcuts } from './config';
18
22
  import Shortcut from './shortcut';
19
23
  import DynamicShortcut from './dynamic-shortcut';
20
24
 
25
+ export const KEYBOARD_SHORTCUT_HELP_MODAL_NAME =
26
+ 'edit-site/keyboard-shortcut-help';
27
+
21
28
  const ShortcutList = ( { shortcuts } ) => (
22
29
  /*
23
30
  * Disable reason: The `list` ARIA role is redundant but
@@ -82,14 +89,21 @@ const ShortcutCategorySection = ( {
82
89
  );
83
90
  };
84
91
 
85
- export default function KeyboardShortcutHelpModal( {
86
- isModalActive,
87
- toggleModal,
88
- } ) {
92
+ export default function KeyboardShortcutHelpModal() {
93
+ const isModalActive = useSelect( ( select ) =>
94
+ select( interfaceStore ).isModalActive(
95
+ KEYBOARD_SHORTCUT_HELP_MODAL_NAME
96
+ )
97
+ );
98
+ const { closeModal, openModal } = useDispatch( interfaceStore );
99
+ const toggleModal = () =>
100
+ isModalActive
101
+ ? closeModal()
102
+ : openModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );
103
+ useShortcut( 'core/edit-site/keyboard-shortcuts', toggleModal );
89
104
  if ( ! isModalActive ) {
90
105
  return null;
91
106
  }
92
-
93
107
  return (
94
108
  <Modal
95
109
  className="edit-site-keyboard-shortcut-help-modal"
@@ -1,12 +1,15 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
+ import { __ } from '@wordpress/i18n';
4
5
  import { useShortcut } from '@wordpress/keyboard-shortcuts';
5
6
  import { useDispatch, useSelect } from '@wordpress/data';
6
7
  import { store as coreStore } from '@wordpress/core-data';
7
8
  import { store as blockEditorStore } from '@wordpress/block-editor';
8
9
  import { store as interfaceStore } from '@wordpress/interface';
9
10
  import { createBlock } from '@wordpress/blocks';
11
+ import { store as preferencesStore } from '@wordpress/preferences';
12
+ import { store as noticesStore } from '@wordpress/notices';
10
13
 
11
14
  /**
12
15
  * Internal dependencies
@@ -29,8 +32,14 @@ function KeyboardShortcutsEditMode() {
29
32
  []
30
33
  );
31
34
  const { redo, undo } = useDispatch( coreStore );
32
- const { setIsListViewOpened, switchEditorMode } =
33
- useDispatch( editSiteStore );
35
+ const {
36
+ isFeatureActive,
37
+ setIsListViewOpened,
38
+ switchEditorMode,
39
+ toggleFeature,
40
+ setIsInserterOpened,
41
+ closeGeneralSidebar,
42
+ } = useDispatch( editSiteStore );
34
43
  const { enableComplementaryArea, disableComplementaryArea } =
35
44
  useDispatch( interfaceStore );
36
45
 
@@ -38,6 +47,16 @@ function KeyboardShortcutsEditMode() {
38
47
  const { getBlockName, getSelectedBlockClientId, getBlockAttributes } =
39
48
  useSelect( blockEditorStore );
40
49
 
50
+ const { set: setPreference } = useDispatch( preferencesStore );
51
+ const { createInfoNotice } = useDispatch( noticesStore );
52
+
53
+ const toggleDistractionFree = () => {
54
+ setPreference( 'core/edit-site', 'fixedToolbar', false );
55
+ setIsInserterOpened( false );
56
+ setIsListViewOpened( false );
57
+ closeGeneralSidebar();
58
+ };
59
+
41
60
  const handleTextLevelShortcut = ( event, level ) => {
42
61
  event.preventDefault();
43
62
  const destinationBlockName =
@@ -114,6 +133,20 @@ function KeyboardShortcutsEditMode() {
114
133
  );
115
134
  } );
116
135
 
136
+ useShortcut( 'core/edit-site/toggle-distraction-free', () => {
137
+ toggleDistractionFree();
138
+ toggleFeature( 'distractionFree' );
139
+ createInfoNotice(
140
+ isFeatureActive( 'distractionFree' )
141
+ ? __( 'Distraction free mode turned on.' )
142
+ : __( 'Distraction free mode turned off.' ),
143
+ {
144
+ id: 'core/edit-site/distraction-free-mode/notice',
145
+ type: 'snackbar',
146
+ }
147
+ );
148
+ } );
149
+
117
150
  return null;
118
151
  }
119
152
 
@@ -149,6 +149,16 @@ function KeyboardShortcutsRegister() {
149
149
  },
150
150
  } );
151
151
  } );
152
+
153
+ registerShortcut( {
154
+ name: 'core/edit-site/toggle-distraction-free',
155
+ category: 'global',
156
+ description: __( 'Toggle distraction free mode.' ),
157
+ keyCombination: {
158
+ modifier: 'primaryShift',
159
+ character: '\\',
160
+ },
161
+ } );
152
162
  }, [ registerShortcut ] );
153
163
 
154
164
  return null;