@wordpress/edit-site 5.27.1 → 5.28.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 (362) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +3 -6
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +1 -2
  5. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-template-modal-content.js +1 -2
  7. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  8. package/build/components/block-editor/editor-canvas.js +1 -2
  9. package/build/components/block-editor/editor-canvas.js.map +1 -1
  10. package/build/components/block-editor/inserter-media-categories.js +1 -2
  11. package/build/components/block-editor/inserter-media-categories.js.map +1 -1
  12. package/build/components/block-editor/resizable-editor.js +1 -2
  13. package/build/components/block-editor/resizable-editor.js.map +1 -1
  14. package/build/components/block-editor/site-editor-canvas.js +12 -5
  15. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  16. package/build/components/block-editor/use-navigate-to-entity-record.js +32 -0
  17. package/build/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
  18. package/build/components/block-editor/use-site-editor-settings.js +30 -4
  19. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  20. package/build/components/editor/index.js +13 -10
  21. package/build/components/editor/index.js.map +1 -1
  22. package/build/components/editor-canvas-container/index.js +1 -2
  23. package/build/components/editor-canvas-container/index.js.map +1 -1
  24. package/build/components/global-styles/block-preview-panel.js +1 -2
  25. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  26. package/build/components/global-styles/color-indicator-wrapper.js +1 -2
  27. package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
  28. package/build/components/global-styles/font-families.js +9 -5
  29. package/build/components/global-styles/font-families.js.map +1 -1
  30. package/build/components/global-styles/font-family-item.js +1 -2
  31. package/build/components/global-styles/font-family-item.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/collection-font-details.js +1 -2
  33. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/collection-font-variant.js +13 -13
  35. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  36. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +1 -2
  37. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  38. package/build/components/global-styles/font-library-modal/context.js +16 -4
  39. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  40. package/build/components/global-styles/font-library-modal/font-card.js +3 -3
  41. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  42. package/build/components/global-styles/font-library-modal/font-collection.js +26 -40
  43. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  44. package/build/components/global-styles/font-library-modal/font-demo.js +6 -12
  45. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  46. package/build/components/global-styles/font-library-modal/fonts-grid.js +1 -2
  47. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  48. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +3 -4
  49. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  50. package/build/components/global-styles/font-library-modal/index.js +11 -5
  51. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  52. package/build/components/global-styles/font-library-modal/installed-fonts.js +14 -26
  53. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  54. package/build/components/global-styles/font-library-modal/library-font-card.js +2 -3
  55. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  56. package/build/components/global-styles/font-library-modal/library-font-details.js +1 -2
  57. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  58. package/build/components/global-styles/font-library-modal/library-font-variant.js +15 -15
  59. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  60. package/build/components/global-styles/font-library-modal/resolvers.js +1 -1
  61. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  62. package/build/components/global-styles/font-library-modal/tab-panel-layout.js +13 -4
  63. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  64. package/build/components/global-styles/font-library-modal/upload-fonts.js +157 -6
  65. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  66. package/build/components/global-styles/font-library-modal/utils/constants.js +3 -6
  67. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  68. package/build/components/global-styles/font-library-modal/utils/index.js +37 -32
  69. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  70. package/build/components/global-styles/header.js +1 -2
  71. package/build/components/global-styles/header.js.map +1 -1
  72. package/build/components/global-styles/palette.js +1 -2
  73. package/build/components/global-styles/palette.js.map +1 -1
  74. package/build/components/global-styles/preview.js +1 -2
  75. package/build/components/global-styles/preview.js.map +1 -1
  76. package/build/components/global-styles/root-menu.js +1 -2
  77. package/build/components/global-styles/root-menu.js.map +1 -1
  78. package/build/components/global-styles/screen-block-list.js +1 -2
  79. package/build/components/global-styles/screen-block-list.js.map +1 -1
  80. package/build/components/global-styles/screen-block.js +1 -11
  81. package/build/components/global-styles/screen-block.js.map +1 -1
  82. package/build/components/global-styles/screen-color-palette.js +1 -2
  83. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  84. package/build/components/global-styles/screen-colors.js +1 -2
  85. package/build/components/global-styles/screen-colors.js.map +1 -1
  86. package/build/components/global-styles/screen-css.js +1 -2
  87. package/build/components/global-styles/screen-css.js.map +1 -1
  88. package/build/components/global-styles/screen-layout.js +1 -2
  89. package/build/components/global-styles/screen-layout.js.map +1 -1
  90. package/build/components/global-styles/screen-revisions/index.js +1 -2
  91. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  92. package/build/components/global-styles/screen-revisions/revisions-buttons.js +2 -3
  93. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  94. package/build/components/global-styles/screen-root.js +1 -2
  95. package/build/components/global-styles/screen-root.js.map +1 -1
  96. package/build/components/global-styles/screen-style-variations.js +1 -2
  97. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  98. package/build/components/global-styles/screen-typography-element.js +3 -6
  99. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  100. package/build/components/global-styles/screen-typography.js +1 -2
  101. package/build/components/global-styles/screen-typography.js.map +1 -1
  102. package/build/components/global-styles/subtitle.js +1 -2
  103. package/build/components/global-styles/subtitle.js.map +1 -1
  104. package/build/components/global-styles/typogrphy-elements.js +1 -2
  105. package/build/components/global-styles/typogrphy-elements.js.map +1 -1
  106. package/build/components/global-styles/ui.js +3 -4
  107. package/build/components/global-styles/ui.js.map +1 -1
  108. package/build/components/header-edit-mode/mode-switcher/index.js +1 -2
  109. package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  110. package/build/components/header-edit-mode/more-menu/index.js +12 -21
  111. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  112. package/build/components/header-edit-mode/plugin-more-menu-item/index.js +1 -2
  113. package/build/components/header-edit-mode/plugin-more-menu-item/index.js.map +1 -1
  114. package/build/components/header-edit-mode/tools-more-menu-group/index.js +1 -2
  115. package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -1
  116. package/build/components/keyboard-shortcut-help-modal/config.js +1 -2
  117. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  118. package/build/components/keyboard-shortcut-help-modal/index.js +1 -3
  119. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  120. package/build/components/keyboard-shortcuts/edit-mode.js +1 -2
  121. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  122. package/build/components/keyboard-shortcuts/global.js +1 -2
  123. package/build/components/keyboard-shortcuts/global.js.map +1 -1
  124. package/build/components/keyboard-shortcuts/register.js +1 -2
  125. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  126. package/build/components/layout/index.js +0 -2
  127. package/build/components/layout/index.js.map +1 -1
  128. package/build/components/media/index.js +1 -2
  129. package/build/components/media/index.js.map +1 -1
  130. package/build/components/page-pages/index.js +27 -15
  131. package/build/components/page-pages/index.js.map +1 -1
  132. package/build/components/page-patterns/dataviews-pattern-actions.js +87 -32
  133. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  134. package/build/components/page-patterns/grid-item.js +2 -6
  135. package/build/components/page-patterns/grid-item.js.map +1 -1
  136. package/build/components/page-patterns/index.js +2 -1
  137. package/build/components/page-patterns/index.js.map +1 -1
  138. package/build/components/page-patterns/search-items.js +0 -1
  139. package/build/components/page-patterns/search-items.js.map +1 -1
  140. package/build/components/page-patterns/use-patterns.js +1 -2
  141. package/build/components/page-patterns/use-patterns.js.map +1 -1
  142. package/build/components/page-templates-template-parts/actions.js +2 -4
  143. package/build/components/page-templates-template-parts/actions.js.map +1 -1
  144. package/build/components/page-templates-template-parts/index.js +8 -5
  145. package/build/components/page-templates-template-parts/index.js.map +1 -1
  146. package/build/components/pattern-modal/index.js +1 -2
  147. package/build/components/pattern-modal/index.js.map +1 -1
  148. package/build/components/plugin-template-setting-panel/index.js +1 -2
  149. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  150. package/build/components/preferences-modal/index.js +1 -2
  151. package/build/components/preferences-modal/index.js.map +1 -1
  152. package/build/components/resizable-frame/index.js +1 -2
  153. package/build/components/resizable-frame/index.js.map +1 -1
  154. package/build/components/revisions/index.js +1 -2
  155. package/build/components/revisions/index.js.map +1 -1
  156. package/build/components/routes/link.js +3 -7
  157. package/build/components/routes/link.js.map +1 -1
  158. package/build/components/sidebar/index.js +3 -4
  159. package/build/components/sidebar/index.js.map +1 -1
  160. package/build/components/sidebar-dataviews/default-views.js +4 -6
  161. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  162. package/build/components/sidebar-edit-mode/constants.js +2 -4
  163. package/build/components/sidebar-edit-mode/constants.js.map +1 -1
  164. package/build/components/sidebar-edit-mode/index.js +97 -19
  165. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  166. package/build/components/sidebar-edit-mode/settings-header/index.js +22 -73
  167. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  168. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +1 -2
  169. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  170. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js +1 -2
  171. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
  172. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
  173. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  174. package/build/components/site-hub/index.js +1 -2
  175. package/build/components/site-hub/index.js.map +1 -1
  176. package/build/components/site-icon/index.js +3 -4
  177. package/build/components/site-icon/index.js.map +1 -1
  178. package/build/components/style-book/index.js +1 -2
  179. package/build/components/style-book/index.js.map +1 -1
  180. package/build/components/template-part-converter/convert-to-template-part.js +0 -1
  181. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  182. package/build/components/welcome-guide/template.js +2 -2
  183. package/build/components/welcome-guide/template.js.map +1 -1
  184. package/build/hooks/commands/use-edit-mode-commands.js +16 -6
  185. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  186. package/build/hooks/navigation-menu-edit.js +1 -2
  187. package/build/hooks/navigation-menu-edit.js.map +1 -1
  188. package/build/hooks/template-part-edit.js +1 -2
  189. package/build/hooks/template-part-edit.js.map +1 -1
  190. package/build/store/actions.js +7 -2
  191. package/build/store/actions.js.map +1 -1
  192. package/build/store/constants.js +1 -2
  193. package/build/store/constants.js.map +1 -1
  194. package/build/store/index.js +4 -6
  195. package/build/store/index.js.map +1 -1
  196. package/build/store/reducer.js +1 -2
  197. package/build/store/reducer.js.map +1 -1
  198. package/build/store/selectors.js +9 -18
  199. package/build/store/selectors.js.map +1 -1
  200. package/build/store/utils.js +1 -2
  201. package/build/store/utils.js.map +1 -1
  202. package/build/utils/constants.js +13 -26
  203. package/build/utils/constants.js.map +1 -1
  204. package/build-module/components/block-editor/site-editor-canvas.js +13 -6
  205. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  206. package/build-module/components/block-editor/use-navigate-to-entity-record.js +25 -0
  207. package/build-module/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
  208. package/build-module/components/block-editor/use-site-editor-settings.js +29 -4
  209. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  210. package/build-module/components/editor/index.js +13 -10
  211. package/build-module/components/editor/index.js.map +1 -1
  212. package/build-module/components/global-styles/font-families.js +8 -4
  213. package/build-module/components/global-styles/font-families.js.map +1 -1
  214. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +12 -11
  215. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  216. package/build-module/components/global-styles/font-library-modal/context.js +14 -0
  217. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  218. package/build-module/components/global-styles/font-library-modal/font-card.js +3 -2
  219. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  220. package/build-module/components/global-styles/font-library-modal/font-collection.js +28 -41
  221. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  222. package/build-module/components/global-styles/font-library-modal/font-demo.js +5 -10
  223. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  224. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +2 -2
  225. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  226. package/build-module/components/global-styles/font-library-modal/index.js +10 -3
  227. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  228. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +14 -25
  229. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  230. package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
  231. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  232. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +14 -13
  233. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  234. package/build-module/components/global-styles/font-library-modal/resolvers.js +1 -1
  235. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  236. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +13 -3
  237. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  238. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +158 -6
  239. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  240. package/build-module/components/global-styles/font-library-modal/utils/index.js +36 -31
  241. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  242. package/build-module/components/global-styles/screen-block.js +0 -9
  243. package/build-module/components/global-styles/screen-block.js.map +1 -1
  244. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  245. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  246. package/build-module/components/global-styles/screen-typography-element.js +3 -5
  247. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  248. package/build-module/components/header-edit-mode/more-menu/index.js +12 -21
  249. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  250. package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
  251. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  252. package/build-module/components/layout/index.js +0 -2
  253. package/build-module/components/layout/index.js.map +1 -1
  254. package/build-module/components/page-pages/index.js +25 -13
  255. package/build-module/components/page-pages/index.js.map +1 -1
  256. package/build-module/components/page-patterns/dataviews-pattern-actions.js +81 -20
  257. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  258. package/build-module/components/page-patterns/grid-item.js +1 -4
  259. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  260. package/build-module/components/page-patterns/index.js +2 -1
  261. package/build-module/components/page-patterns/index.js.map +1 -1
  262. package/build-module/components/page-patterns/search-items.js +0 -1
  263. package/build-module/components/page-patterns/search-items.js.map +1 -1
  264. package/build-module/components/page-templates-template-parts/index.js +6 -3
  265. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  266. package/build-module/components/routes/link.js +3 -6
  267. package/build-module/components/routes/link.js.map +1 -1
  268. package/build-module/components/sidebar-dataviews/default-views.js +3 -3
  269. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  270. package/build-module/components/sidebar-edit-mode/index.js +98 -19
  271. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  272. package/build-module/components/sidebar-edit-mode/settings-header/index.js +24 -73
  273. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  274. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +2 -2
  275. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  276. package/build-module/components/site-icon/index.js +2 -2
  277. package/build-module/components/site-icon/index.js.map +1 -1
  278. package/build-module/components/template-part-converter/convert-to-template-part.js +0 -1
  279. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  280. package/build-module/components/welcome-guide/template.js +2 -2
  281. package/build-module/components/welcome-guide/template.js.map +1 -1
  282. package/build-module/hooks/commands/use-edit-mode-commands.js +16 -6
  283. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  284. package/build-module/store/actions.js +7 -2
  285. package/build-module/store/actions.js.map +1 -1
  286. package/build-style/style-rtl.css +398 -224
  287. package/build-style/style.css +398 -224
  288. package/package.json +42 -42
  289. package/src/components/add-new-template/style.scss +0 -12
  290. package/src/components/block-editor/site-editor-canvas.js +23 -15
  291. package/src/components/block-editor/style.scss +2 -20
  292. package/src/components/block-editor/use-navigate-to-entity-record.js +25 -0
  293. package/src/components/block-editor/use-site-editor-settings.js +35 -4
  294. package/src/components/editor/index.js +11 -10
  295. package/src/components/global-styles/font-families.js +13 -4
  296. package/src/components/global-styles/font-library-modal/collection-font-variant.js +10 -8
  297. package/src/components/global-styles/font-library-modal/context.js +14 -0
  298. package/src/components/global-styles/font-library-modal/font-card.js +10 -4
  299. package/src/components/global-styles/font-library-modal/font-collection.js +25 -47
  300. package/src/components/global-styles/font-library-modal/font-demo.js +9 -10
  301. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +2 -2
  302. package/src/components/global-styles/font-library-modal/index.js +8 -3
  303. package/src/components/global-styles/font-library-modal/installed-fonts.js +20 -34
  304. package/src/components/global-styles/font-library-modal/library-font-card.js +1 -1
  305. package/src/components/global-styles/font-library-modal/library-font-variant.js +12 -10
  306. package/src/components/global-styles/font-library-modal/resolvers.js +1 -1
  307. package/src/components/global-styles/font-library-modal/style.scss +13 -27
  308. package/src/components/global-styles/font-library-modal/tab-panel-layout.js +17 -0
  309. package/src/components/global-styles/font-library-modal/upload-fonts.js +192 -6
  310. package/src/components/global-styles/font-library-modal/utils/index.js +46 -39
  311. package/src/components/global-styles/screen-block.js +0 -12
  312. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  313. package/src/components/global-styles/screen-revisions/style.scss +21 -15
  314. package/src/components/global-styles/screen-typography-element.js +2 -4
  315. package/src/components/global-styles/style.scss +4 -0
  316. package/src/components/header-edit-mode/more-menu/index.js +10 -18
  317. package/src/components/header-edit-mode/style.scss +54 -6
  318. package/src/components/layout/style.scss +2 -7
  319. package/src/components/page/style.scss +0 -1
  320. package/src/components/page-pages/index.js +32 -23
  321. package/src/components/page-pages/style.scss +28 -27
  322. package/src/components/page-patterns/dataviews-pattern-actions.js +106 -30
  323. package/src/components/page-patterns/grid-item.js +0 -2
  324. package/src/components/page-patterns/index.js +1 -0
  325. package/src/components/page-patterns/style.scss +4 -9
  326. package/src/components/page-templates-template-parts/index.js +23 -16
  327. package/src/components/page-templates-template-parts/style.scss +16 -0
  328. package/src/components/routes/link.js +3 -12
  329. package/src/components/sidebar-dataviews/default-views.js +3 -3
  330. package/src/components/sidebar-edit-mode/index.js +122 -29
  331. package/src/components/sidebar-edit-mode/settings-header/index.js +28 -88
  332. package/src/components/sidebar-edit-mode/settings-header/style.scss +0 -87
  333. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +3 -0
  334. package/src/components/sidebar-edit-mode/style.scss +4 -0
  335. package/src/components/sidebar-navigation-screen/style.scss +2 -1
  336. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +9 -3
  337. package/src/components/site-hub/style.scss +0 -1
  338. package/src/components/site-icon/index.js +1 -1
  339. package/src/components/site-icon/style.scss +9 -1
  340. package/src/components/welcome-guide/template.js +2 -2
  341. package/src/hooks/commands/use-edit-mode-commands.js +26 -14
  342. package/src/store/actions.js +20 -3
  343. package/build/components/block-editor/back-button.js +0 -47
  344. package/build/components/block-editor/back-button.js.map +0 -1
  345. package/build/components/block-editor/use-post-link-props.js +0 -27
  346. package/build/components/block-editor/use-post-link-props.js.map +0 -1
  347. package/build/components/global-styles/font-library-modal/font-variant.js +0 -51
  348. package/build/components/global-styles/font-library-modal/font-variant.js.map +0 -1
  349. package/build/components/global-styles/font-library-modal/local-fonts.js +0 -196
  350. package/build/components/global-styles/font-library-modal/local-fonts.js.map +0 -1
  351. package/build-module/components/block-editor/back-button.js +0 -39
  352. package/build-module/components/block-editor/back-button.js.map +0 -1
  353. package/build-module/components/block-editor/use-post-link-props.js +0 -20
  354. package/build-module/components/block-editor/use-post-link-props.js.map +0 -1
  355. package/build-module/components/global-styles/font-library-modal/font-variant.js +0 -42
  356. package/build-module/components/global-styles/font-library-modal/font-variant.js.map +0 -1
  357. package/build-module/components/global-styles/font-library-modal/local-fonts.js +0 -187
  358. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +0 -1
  359. package/src/components/block-editor/back-button.js +0 -48
  360. package/src/components/block-editor/use-post-link-props.js +0 -20
  361. package/src/components/global-styles/font-library-modal/font-variant.js +0 -53
  362. package/src/components/global-styles/font-library-modal/local-fonts.js +0 -239
@@ -1,14 +1,17 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { createSlotFill } from '@wordpress/components';
4
+ import {
5
+ createSlotFill,
6
+ privateApis as componentsPrivateApis,
7
+ } from '@wordpress/components';
5
8
  import { isRTL, __ } from '@wordpress/i18n';
6
9
  import { drawerLeft, drawerRight } from '@wordpress/icons';
7
- import { useEffect } from '@wordpress/element';
10
+ import { useCallback, useContext, useEffect, useRef } from '@wordpress/element';
8
11
  import { useSelect, useDispatch } from '@wordpress/data';
9
12
  import { store as interfaceStore } from '@wordpress/interface';
10
13
  import { store as blockEditorStore } from '@wordpress/block-editor';
11
- import { store as editorStore } from '@wordpress/editor';
14
+ import { store as coreStore } from '@wordpress/core-data';
12
15
 
13
16
  /**
14
17
  * Internal dependencies
@@ -22,12 +25,89 @@ import TemplatePanel from './template-panel';
22
25
  import PluginTemplateSettingPanel from '../plugin-template-setting-panel';
23
26
  import { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from './constants';
24
27
  import { store as editSiteStore } from '../../store';
28
+ import { unlock } from '../../lock-unlock';
29
+
30
+ const { Tabs } = unlock( componentsPrivateApis );
25
31
 
26
32
  const { Slot: InspectorSlot, Fill: InspectorFill } = createSlotFill(
27
33
  'EditSiteSidebarInspector'
28
34
  );
29
35
  export const SidebarInspectorFill = InspectorFill;
30
36
 
37
+ const FillContents = ( {
38
+ sidebarName,
39
+ isEditingPage,
40
+ supportsGlobalStyles,
41
+ } ) => {
42
+ const tabListRef = useRef( null );
43
+ // Because `DefaultSidebar` renders a `ComplementaryArea`, we
44
+ // need to forward the `Tabs` context so it can be passed through the
45
+ // underlying slot/fill.
46
+ const tabsContextValue = useContext( Tabs.Context );
47
+
48
+ // This effect addresses a race condition caused by tabbing from the last
49
+ // block in the editor into the settings sidebar. Without this effect, the
50
+ // selected tab and browser focus can become separated in an unexpected way.
51
+ // (e.g the "block" tab is focused, but the "post" tab is selected).
52
+ useEffect( () => {
53
+ const tabsElements = Array.from(
54
+ tabListRef.current?.querySelectorAll( '[role="tab"]' ) || []
55
+ );
56
+ const selectedTabElement = tabsElements.find(
57
+ // We are purposefully using a custom `data-tab-id` attribute here
58
+ // because we don't want rely on any assumptions about `Tabs`
59
+ // component internals.
60
+ ( element ) => element.getAttribute( 'data-tab-id' ) === sidebarName
61
+ );
62
+ const activeElement = selectedTabElement?.ownerDocument.activeElement;
63
+ const tabsHasFocus = tabsElements.some( ( element ) => {
64
+ return activeElement && activeElement.id === element.id;
65
+ } );
66
+ if (
67
+ tabsHasFocus &&
68
+ selectedTabElement &&
69
+ selectedTabElement.id !== activeElement?.id
70
+ ) {
71
+ selectedTabElement?.focus();
72
+ }
73
+ }, [ sidebarName ] );
74
+
75
+ return (
76
+ <>
77
+ <DefaultSidebar
78
+ identifier={ sidebarName }
79
+ title={ __( 'Settings' ) }
80
+ icon={ isRTL() ? drawerLeft : drawerRight }
81
+ closeLabel={ __( 'Close Settings' ) }
82
+ header={
83
+ <Tabs.Context.Provider value={ tabsContextValue }>
84
+ <SettingsHeader ref={ tabListRef } />
85
+ </Tabs.Context.Provider>
86
+ }
87
+ headerClassName="edit-site-sidebar-edit-mode__panel-tabs"
88
+ // This classname is added so we can apply a corrective negative
89
+ // margin to the panel.
90
+ // see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049
91
+ className="edit-site-sidebar__panel"
92
+ >
93
+ <Tabs.Context.Provider value={ tabsContextValue }>
94
+ <Tabs.TabPanel
95
+ tabId={ SIDEBAR_TEMPLATE }
96
+ focusable={ false }
97
+ >
98
+ { isEditingPage ? <PagePanels /> : <TemplatePanel /> }
99
+ <PluginTemplateSettingPanel.Slot />
100
+ </Tabs.TabPanel>
101
+ <Tabs.TabPanel tabId={ SIDEBAR_BLOCK } focusable={ false }>
102
+ <InspectorSlot bubblesVirtually />
103
+ </Tabs.TabPanel>
104
+ </Tabs.Context.Provider>
105
+ </DefaultSidebar>
106
+ { supportsGlobalStyles && <GlobalStylesSidebar /> }
107
+ </>
108
+ );
109
+ };
110
+
31
111
  export function SidebarComplementaryAreaFills() {
32
112
  const {
33
113
  sidebar,
@@ -35,23 +115,26 @@ export function SidebarComplementaryAreaFills() {
35
115
  hasBlockSelection,
36
116
  supportsGlobalStyles,
37
117
  isEditingPage,
118
+ isEditorOpen,
38
119
  } = useSelect( ( select ) => {
39
120
  const _sidebar =
40
121
  select( interfaceStore ).getActiveComplementaryArea( STORE_NAME );
122
+
41
123
  const _isEditorSidebarOpened = [
42
124
  SIDEBAR_BLOCK,
43
125
  SIDEBAR_TEMPLATE,
44
126
  ].includes( _sidebar );
45
- const settings = select( editSiteStore ).getSettings();
127
+ const { getCanvasMode } = unlock( select( editSiteStore ) );
128
+
46
129
  return {
47
130
  sidebar: _sidebar,
48
131
  isEditorSidebarOpened: _isEditorSidebarOpened,
49
132
  hasBlockSelection:
50
133
  !! select( blockEditorStore ).getBlockSelectionStart(),
51
- supportsGlobalStyles: ! settings?.supportsTemplatePartsMode,
52
- isEditingPage:
53
- select( editSiteStore ).isPage() &&
54
- select( editorStore ).getRenderingMode() !== 'template-only',
134
+ supportsGlobalStyles:
135
+ select( coreStore ).getCurrentTheme()?.is_block_theme,
136
+ isEditingPage: select( editSiteStore ).isPage(),
137
+ isEditorOpen: getCanvasMode() === 'edit',
55
138
  };
56
139
  }, [] );
57
140
  const { enableComplementaryArea } = useDispatch( interfaceStore );
@@ -81,27 +164,37 @@ export function SidebarComplementaryAreaFills() {
81
164
  sidebarName = hasBlockSelection ? SIDEBAR_BLOCK : SIDEBAR_TEMPLATE;
82
165
  }
83
166
 
167
+ // `newSelectedTabId` could technically be falsey if no tab is selected (i.e.
168
+ // the initial render) or when we don't want a tab displayed (i.e. the
169
+ // sidebar is closed). These cases should both be covered by the `!!` check
170
+ // below, so we shouldn't need any additional falsey handling.
171
+ const onTabSelect = useCallback(
172
+ ( newSelectedTabId ) => {
173
+ if ( !! newSelectedTabId ) {
174
+ enableComplementaryArea( STORE_NAME, newSelectedTabId );
175
+ }
176
+ },
177
+ [ enableComplementaryArea ]
178
+ );
179
+
84
180
  return (
85
- <>
86
- <DefaultSidebar
87
- identifier={ sidebarName }
88
- title={ __( 'Settings' ) }
89
- icon={ isRTL() ? drawerLeft : drawerRight }
90
- closeLabel={ __( 'Close Settings' ) }
91
- header={ <SettingsHeader sidebarName={ sidebarName } /> }
92
- headerClassName="edit-site-sidebar-edit-mode__panel-tabs"
93
- >
94
- { sidebarName === SIDEBAR_TEMPLATE && (
95
- <>
96
- { isEditingPage ? <PagePanels /> : <TemplatePanel /> }
97
- <PluginTemplateSettingPanel.Slot />
98
- </>
99
- ) }
100
- { sidebarName === SIDEBAR_BLOCK && (
101
- <InspectorSlot bubblesVirtually />
102
- ) }
103
- </DefaultSidebar>
104
- { supportsGlobalStyles && <GlobalStylesSidebar /> }
105
- </>
181
+ <Tabs
182
+ // Due to how this component is controlled (via a value from the
183
+ // edit-site store), when the sidebar closes the currently selected
184
+ // tab can't be found. This causes the component to continuously reset
185
+ // the selection to `null` in an infinite loop. Proactively setting
186
+ // the selected tab to `null` avoids that.
187
+ selectedTabId={
188
+ isEditorOpen && isEditorSidebarOpened ? sidebarName : null
189
+ }
190
+ onSelect={ onTabSelect }
191
+ selectOnMove={ false }
192
+ >
193
+ <FillContents
194
+ sidebarName={ sidebarName }
195
+ isEditingPage={ isEditingPage }
196
+ supportsGlobalStyles={ supportsGlobalStyles }
197
+ />
198
+ </Tabs>
106
199
  );
107
200
  }
@@ -1,104 +1,44 @@
1
- /**
2
- * External dependencies
3
- */
4
- import classnames from 'classnames';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
- import { Button } from '@wordpress/components';
10
- import { __, sprintf } from '@wordpress/i18n';
11
- import { useSelect, useDispatch } from '@wordpress/data';
12
- import { store as interfaceStore } from '@wordpress/interface';
4
+ import { privateApis as componentsPrivateApis } from '@wordpress/components';
5
+ import { __ } from '@wordpress/i18n';
6
+ import { useSelect } from '@wordpress/data';
13
7
  import { store as editorStore } from '@wordpress/editor';
8
+ import { forwardRef } from '@wordpress/element';
14
9
 
15
10
  /**
16
11
  * Internal dependencies
17
12
  */
18
- import { STORE_NAME } from '../../../store/constants';
19
13
  import { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';
20
- import { store as editSiteStore } from '../../../store';
21
- import { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../../utils/constants';
22
-
23
- const SettingsHeader = ( { sidebarName } ) => {
24
- const { isEditingPage, entityType } = useSelect( ( select ) => {
25
- const { getEditedPostType, isPage } = select( editSiteStore );
26
- const { getRenderingMode } = select( editorStore );
14
+ import { unlock } from '../../../lock-unlock';
27
15
 
28
- return {
29
- isEditingPage: isPage() && getRenderingMode() !== 'template-only',
30
- entityType: getEditedPostType(),
31
- };
32
- } );
16
+ const { Tabs } = unlock( componentsPrivateApis );
33
17
 
34
- const entityLabel =
35
- POST_TYPE_LABELS[ entityType ] ||
36
- POST_TYPE_LABELS[ TEMPLATE_POST_TYPE ];
37
-
38
- const { enableComplementaryArea } = useDispatch( interfaceStore );
39
- const openTemplateSettings = () =>
40
- enableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );
41
- const openBlockSettings = () =>
42
- enableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );
43
-
44
- let templateAriaLabel;
45
- if ( isEditingPage ) {
46
- templateAriaLabel =
47
- sidebarName === SIDEBAR_TEMPLATE
48
- ? // translators: ARIA label for the Template sidebar tab, selected.
49
- __( 'Page (selected)' )
50
- : // translators: ARIA label for the Template Settings Sidebar tab, not selected.
51
- __( 'Page' );
52
- } else {
53
- templateAriaLabel =
54
- sidebarName === SIDEBAR_TEMPLATE
55
- ? // translators: ARIA label for the Template sidebar tab, selected.
56
- sprintf( __( '%s (selected)' ), entityLabel )
57
- : // translators: ARIA label for the Template Settings Sidebar tab, not selected.
58
- entityLabel;
59
- }
18
+ const SettingsHeader = ( _, ref ) => {
19
+ const postTypeLabel = useSelect(
20
+ ( select ) => select( editorStore ).getPostTypeLabel(),
21
+ []
22
+ );
60
23
 
61
- /* Use a list so screen readers will announce how many tabs there are. */
62
24
  return (
63
- <ul>
64
- <li>
65
- <Button
66
- onClick={ openTemplateSettings }
67
- className={ classnames(
68
- 'edit-site-sidebar-edit-mode__panel-tab',
69
- {
70
- 'is-active': sidebarName === SIDEBAR_TEMPLATE,
71
- }
72
- ) }
73
- aria-label={ templateAriaLabel }
74
- data-label={ isEditingPage ? __( 'Page' ) : entityLabel }
75
- >
76
- { isEditingPage ? __( 'Page' ) : entityLabel }
77
- </Button>
78
- </li>
79
- <li>
80
- <Button
81
- onClick={ openBlockSettings }
82
- className={ classnames(
83
- 'edit-site-sidebar-edit-mode__panel-tab',
84
- {
85
- 'is-active': sidebarName === SIDEBAR_BLOCK,
86
- }
87
- ) }
88
- aria-label={
89
- sidebarName === SIDEBAR_BLOCK
90
- ? // translators: ARIA label for the Block Settings Sidebar tab, selected.
91
- __( 'Block (selected)' )
92
- : // translators: ARIA label for the Block Settings Sidebar tab, not selected.
93
- __( 'Block' )
94
- }
95
- data-label={ __( 'Block' ) }
96
- >
97
- { __( 'Block' ) }
98
- </Button>
99
- </li>
100
- </ul>
25
+ <Tabs.TabList ref={ ref }>
26
+ <Tabs.Tab
27
+ tabId={ SIDEBAR_TEMPLATE }
28
+ // Used for focus management in the SettingsSidebar component.
29
+ data-tab-id={ SIDEBAR_TEMPLATE }
30
+ >
31
+ { postTypeLabel }
32
+ </Tabs.Tab>
33
+ <Tabs.Tab
34
+ tabId={ SIDEBAR_BLOCK }
35
+ // Used for focus management in the SettingsSidebar component.
36
+ data-tab-id={ SIDEBAR_BLOCK }
37
+ >
38
+ { __( 'Block' ) }
39
+ </Tabs.Tab>
40
+ </Tabs.TabList>
101
41
  );
102
42
  };
103
43
 
104
- export default SettingsHeader;
44
+ export default forwardRef( SettingsHeader );
@@ -1,20 +1,8 @@
1
1
  .components-panel__header.edit-site-sidebar-edit-mode__panel-tabs {
2
- justify-content: flex-start;
3
2
  padding-left: 0;
4
3
  padding-right: $grid-unit-20;
5
- border-top: 0;
6
- margin-top: 0;
7
-
8
- ul {
9
- display: flex;
10
- }
11
- li {
12
- margin: 0;
13
- }
14
4
 
15
5
  .components-button.has-icon {
16
- display: none;
17
- margin: 0 0 0 auto;
18
6
  padding: 0;
19
7
  min-width: $icon-size;
20
8
  height: $icon-size;
@@ -24,78 +12,3 @@
24
12
  }
25
13
  }
26
14
  }
27
-
28
- // This tab style CSS is duplicated verbatim in
29
- // /packages/components/src/tab-panel/style.scss
30
- .components-button.edit-site-sidebar-edit-mode__panel-tab {
31
- position: relative;
32
- border-radius: 0;
33
- height: $grid-unit-60;
34
- background: transparent;
35
- border: none;
36
- box-shadow: none;
37
- cursor: pointer;
38
- padding: 3px $grid-unit-20; // Use padding to offset the is-active border, this benefits Windows High Contrast mode
39
- margin-left: 0;
40
- font-weight: 500;
41
-
42
- &:focus:not(:disabled) {
43
- position: relative;
44
- box-shadow: none;
45
- outline: none;
46
- }
47
-
48
- // Tab indicator
49
- &::after {
50
- content: "";
51
- position: absolute;
52
- right: 0;
53
- bottom: 0;
54
- left: 0;
55
- pointer-events: none;
56
-
57
- // Draw the indicator.
58
- background: var(--wp-admin-theme-color);
59
- height: calc(0 * var(--wp-admin-border-width-focus));
60
- border-radius: 0;
61
-
62
- // Animation
63
- transition: all 0.1s linear;
64
- @include reduce-motion("transition");
65
- }
66
-
67
- // Active.
68
- &.is-active::after {
69
- height: calc(1 * var(--wp-admin-border-width-focus));
70
-
71
- // Windows high contrast mode.
72
- outline: 2px solid transparent;
73
- outline-offset: -1px;
74
- }
75
-
76
- // Focus.
77
- &::before {
78
- content: "";
79
- position: absolute;
80
- top: $grid-unit-15;
81
- right: $grid-unit-15;
82
- bottom: $grid-unit-15;
83
- left: $grid-unit-15;
84
- pointer-events: none;
85
-
86
- // Draw the indicator.
87
- box-shadow: 0 0 0 0 transparent;
88
- border-radius: $radius-block-ui;
89
-
90
- // Animation
91
- transition: all 0.1s linear;
92
- @include reduce-motion("transition");
93
- }
94
-
95
- &:focus-visible::before {
96
- box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
97
-
98
- // Windows high contrast mode.
99
- outline: 2px solid transparent;
100
- }
101
- }
@@ -11,7 +11,10 @@
11
11
  font-weight: 500;
12
12
  line-height: $icon-size;
13
13
  &.edit-site-sidebar-card__title {
14
+ font-size: $default-font-size;
15
+ line-height: $default-line-height;
14
16
  margin: 0;
17
+ padding: 3px 0; // This makes the title as high as the icon.
15
18
  }
16
19
  }
17
20
 
@@ -99,3 +99,7 @@
99
99
  }
100
100
  }
101
101
  }
102
+
103
+ .edit-site-sidebar__panel {
104
+ margin-top: -1px;
105
+ }
@@ -43,6 +43,8 @@
43
43
 
44
44
  .edit-site-sidebar-navigation-screen__page-link {
45
45
  color: $gray-600;
46
+ display: inline-block;
47
+ word-break: break-word;
46
48
 
47
49
  &:hover,
48
50
  &:focus {
@@ -52,7 +54,6 @@
52
54
  .components-external-link__icon {
53
55
  margin-left: $grid-unit-05;
54
56
  }
55
- display: inline-block;
56
57
  }
57
58
 
58
59
  .edit-site-sidebar-navigation-screen__title-icon {
@@ -6,7 +6,7 @@ import { sentenceCase } from 'change-case';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { __, sprintf } from '@wordpress/i18n';
9
+ import { __, _x, sprintf } from '@wordpress/i18n';
10
10
  import { store as coreStore } from '@wordpress/core-data';
11
11
  import { store as editorStore } from '@wordpress/editor';
12
12
  import { useSelect } from '@wordpress/data';
@@ -94,8 +94,14 @@ export default function usePatternDetails( postType, postId ) {
94
94
  label: __( 'Syncing' ),
95
95
  value:
96
96
  record.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced
97
- ? __( 'Not synced' )
98
- : __( 'Fully synced' ),
97
+ ? _x(
98
+ 'Not synced',
99
+ 'Text that indicates that the pattern is not synchronized'
100
+ )
101
+ : _x(
102
+ 'Synced',
103
+ 'Text that indicates that the pattern is synchronized'
104
+ ),
99
105
  } );
100
106
 
101
107
  if ( record.wp_pattern_category?.length === 0 ) {
@@ -54,7 +54,6 @@
54
54
  }
55
55
 
56
56
  .edit-site-site-hub__site-title {
57
- margin-left: $grid-unit-05;
58
57
  flex-grow: 1;
59
58
  color: $gray-200;
60
59
  }
@@ -36,8 +36,8 @@ function SiteIcon( { className } ) {
36
36
  ) : (
37
37
  <Icon
38
38
  className="edit-site-site-icon__icon"
39
- size="48px"
40
39
  icon={ wordpress }
40
+ size={ 48 }
41
41
  />
42
42
  );
43
43
 
@@ -1,10 +1,18 @@
1
1
  .edit-site-site-icon__icon {
2
2
  fill: currentColor;
3
+ // Matches SiteIcon motion, smoothing out the transition.
4
+ transition: padding 0.3s ease-out;
5
+ @include reduce-motion("transition");
6
+
7
+ .edit-site-layout.is-full-canvas & {
8
+ // Make the WordPress icon not so big in full canvas.
9
+ padding: $grid-unit-15 * 0.5; // 6px.
10
+ }
3
11
  }
4
12
 
5
13
  .edit-site-site-icon__image {
6
14
  width: 100%;
7
- height: auto;
15
+ height: 100%;
8
16
  border-radius: $radius-block-ui * 2;
9
17
  object-fit: cover;
10
18
  background: #333;
@@ -25,12 +25,12 @@ export default function WelcomeGuideTemplate() {
25
25
  'welcomeGuide'
26
26
  );
27
27
  const { isPage } = select( editSiteStore );
28
- const { getRenderingMode } = select( editorStore );
28
+ const { getCurrentPostType } = select( editorStore );
29
29
  return (
30
30
  isTemplateActive &&
31
31
  ! isEditorActive &&
32
32
  isPage() &&
33
- getRenderingMode() === 'template-only'
33
+ getCurrentPostType() === 'wp_template'
34
34
  );
35
35
  }, [] );
36
36
 
@@ -38,22 +38,34 @@ import { PREFERENCES_MODAL_NAME } from '../../components/preferences-modal';
38
38
  import { PATTERN_MODALS } from '../../components/pattern-modal';
39
39
  import { unlock } from '../../lock-unlock';
40
40
  import { TEMPLATE_POST_TYPE } from '../../utils/constants';
41
+ import { useLink } from '../../components/routes/link';
41
42
 
42
43
  const { useHistory } = unlock( routerPrivateApis );
43
44
 
44
45
  function usePageContentFocusCommands() {
45
46
  const { record: template } = useEditedEntityRecord();
46
- const { isPage, canvasMode, renderingMode } = useSelect( ( select ) => {
47
- const { isPage: _isPage, getCanvasMode } = unlock(
48
- select( editSiteStore )
49
- );
50
- const { getRenderingMode } = select( editorStore );
51
- return {
52
- isPage: _isPage(),
53
- canvasMode: getCanvasMode(),
54
- renderingMode: getRenderingMode(),
55
- };
56
- }, [] );
47
+ const { isPage, canvasMode, templateId, currentPostType } = useSelect(
48
+ ( select ) => {
49
+ const { isPage: _isPage, getCanvasMode } = unlock(
50
+ select( editSiteStore )
51
+ );
52
+ const { getCurrentPostType, getCurrentTemplateId } =
53
+ select( editorStore );
54
+ return {
55
+ isPage: _isPage(),
56
+ canvasMode: getCanvasMode(),
57
+ templateId: getCurrentTemplateId(),
58
+ currentPostType: getCurrentPostType(),
59
+ };
60
+ },
61
+ []
62
+ );
63
+
64
+ const { onClick: editTemplate } = useLink( {
65
+ postType: 'wp_template',
66
+ postId: templateId,
67
+ } );
68
+
57
69
  const { setRenderingMode } = useDispatch( editorStore );
58
70
 
59
71
  if ( ! isPage || canvasMode !== 'edit' ) {
@@ -62,7 +74,7 @@ function usePageContentFocusCommands() {
62
74
 
63
75
  const commands = [];
64
76
 
65
- if ( renderingMode !== 'template-only' ) {
77
+ if ( currentPostType !== 'wp_template' ) {
66
78
  commands.push( {
67
79
  name: 'core/switch-to-template-focus',
68
80
  /* translators: %1$s: template title */
@@ -72,7 +84,7 @@ function usePageContentFocusCommands() {
72
84
  ),
73
85
  icon: layout,
74
86
  callback: ( { close } ) => {
75
- setRenderingMode( 'template-only' );
87
+ editTemplate();
76
88
  close();
77
89
  },
78
90
  } );
@@ -129,7 +141,7 @@ function useManipulateDocumentCommands() {
129
141
  const isEditingPage = useSelect(
130
142
  ( select ) =>
131
143
  select( editSiteStore ).isPage() &&
132
- select( editorStore ).getRenderingMode() !== 'template-only',
144
+ select( editorStore ).getCurrentPostType() !== 'wp_template',
133
145
  []
134
146
  );
135
147
 
@@ -559,6 +559,11 @@ export const toggleDistractionFree =
559
559
  const isDistractionFree = registry
560
560
  .select( preferencesStore )
561
561
  .get( 'core', 'distractionFree' );
562
+ if ( isDistractionFree ) {
563
+ registry
564
+ .dispatch( preferencesStore )
565
+ .set( 'core', 'fixedToolbar', false );
566
+ }
562
567
  if ( ! isDistractionFree ) {
563
568
  registry.batch( () => {
564
569
  registry
@@ -586,9 +591,21 @@ export const toggleDistractionFree =
586
591
  {
587
592
  label: __( 'Undo' ),
588
593
  onClick: () => {
589
- registry
590
- .dispatch( preferencesStore )
591
- .toggle( 'core', 'distractionFree' );
594
+ registry.batch( () => {
595
+ registry
596
+ .dispatch( preferencesStore )
597
+ .set(
598
+ 'core',
599
+ 'fixedToolbar',
600
+ isDistractionFree ? true : false
601
+ );
602
+ registry
603
+ .dispatch( preferencesStore )
604
+ .toggle(
605
+ 'core',
606
+ 'distractionFree'
607
+ );
608
+ } );
592
609
  },
593
610
  },
594
611
  ],