@wordpress/edit-site 5.23.0 → 5.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +56 -38
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +7 -2
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/dataviews/add-filter.js +21 -20
  7. package/build/components/dataviews/add-filter.js.map +1 -1
  8. package/build/components/dataviews/constants.js +14 -0
  9. package/build/components/dataviews/constants.js.map +1 -0
  10. package/build/components/dataviews/dataviews.js +9 -7
  11. package/build/components/dataviews/dataviews.js.map +1 -1
  12. package/build/components/dataviews/filter-summary.js +62 -0
  13. package/build/components/dataviews/filter-summary.js.map +1 -0
  14. package/build/components/dataviews/filters.js +15 -30
  15. package/build/components/dataviews/filters.js.map +1 -1
  16. package/build/components/dataviews/item-actions.js +84 -30
  17. package/build/components/dataviews/item-actions.js.map +1 -1
  18. package/build/components/dataviews/pagination.js +4 -0
  19. package/build/components/dataviews/pagination.js.map +1 -1
  20. package/build/components/dataviews/view-actions.js +24 -24
  21. package/build/components/dataviews/view-actions.js.map +1 -1
  22. package/build/components/dataviews/view-grid.js +48 -25
  23. package/build/components/dataviews/view-grid.js.map +1 -1
  24. package/build/components/dataviews/view-list.js +28 -33
  25. package/build/components/dataviews/view-list.js.map +1 -1
  26. package/build/components/editor/index.js +23 -27
  27. package/build/components/editor/index.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  29. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
  31. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  32. package/build/components/global-styles/header.js +4 -2
  33. package/build/components/global-styles/header.js.map +1 -1
  34. package/build/components/global-styles/screen-block-list.js +22 -16
  35. package/build/components/global-styles/screen-block-list.js.map +1 -1
  36. package/build/components/global-styles/screen-revisions/index.js +26 -5
  37. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  38. package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
  39. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  40. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  41. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  42. package/build/components/global-styles/ui.js +28 -36
  43. package/build/components/global-styles/ui.js.map +1 -1
  44. package/build/components/header-edit-mode/document-actions/index.js +21 -16
  45. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  46. package/build/components/header-edit-mode/index.js +2 -1
  47. package/build/components/header-edit-mode/index.js.map +1 -1
  48. package/build/components/header-edit-mode/more-menu/index.js +1 -1
  49. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  50. package/build/components/list/added-by.js +43 -54
  51. package/build/components/list/added-by.js.map +1 -1
  52. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  53. package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  54. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  55. package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  56. package/build/components/page-content-focus-notifications/index.js +22 -0
  57. package/build/components/page-content-focus-notifications/index.js.map +1 -0
  58. package/build/components/page-pages/index.js +9 -15
  59. package/build/components/page-pages/index.js.map +1 -1
  60. package/build/components/page-patterns/use-patterns.js +1 -1
  61. package/build/components/page-patterns/use-patterns.js.map +1 -1
  62. package/build/components/page-templates/dataviews-templates.js +166 -51
  63. package/build/components/page-templates/dataviews-templates.js.map +1 -1
  64. package/build/components/preferences-modal/index.js +1 -1
  65. package/build/components/preferences-modal/index.js.map +1 -1
  66. package/build/components/save-button/index.js +9 -6
  67. package/build/components/save-button/index.js.map +1 -1
  68. package/build/components/save-hub/index.js +14 -0
  69. package/build/components/save-hub/index.js.map +1 -1
  70. package/build/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  71. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  72. package/build/components/sidebar-dataviews/default-views.js +7 -2
  73. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  74. package/build/components/sidebar-edit-mode/index.js +6 -5
  75. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  76. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +15 -26
  77. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  78. package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
  79. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  80. package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
  81. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  82. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +4 -8
  83. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  84. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +2 -2
  85. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  86. package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
  87. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  88. package/build/components/sidebar-navigation-screen-page/index.js +23 -4
  89. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  90. package/build/components/style-book/index.js +22 -12
  91. package/build/components/style-book/index.js.map +1 -1
  92. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  93. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  94. package/build/components/welcome-guide/page.js +2 -2
  95. package/build/components/welcome-guide/page.js.map +1 -1
  96. package/build/components/welcome-guide/template.js +6 -3
  97. package/build/components/welcome-guide/template.js.map +1 -1
  98. package/build/hooks/commands/use-edit-mode-commands.js +24 -14
  99. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  100. package/build/store/actions.js +4 -1
  101. package/build/store/actions.js.map +1 -1
  102. package/build/store/private-actions.js +2 -27
  103. package/build/store/private-actions.js.map +1 -1
  104. package/build/store/private-selectors.js +0 -23
  105. package/build/store/private-selectors.js.map +1 -1
  106. package/build/store/reducer.js +1 -40
  107. package/build/store/reducer.js.map +1 -1
  108. package/build/store/selectors.js +8 -4
  109. package/build/store/selectors.js.map +1 -1
  110. package/build/utils/constants.js +1 -12
  111. package/build/utils/constants.js.map +1 -1
  112. package/build-module/components/actions/index.js +55 -36
  113. package/build-module/components/actions/index.js.map +1 -1
  114. package/build-module/components/block-editor/site-editor-canvas.js +7 -2
  115. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  116. package/build-module/components/dataviews/add-filter.js +21 -20
  117. package/build-module/components/dataviews/add-filter.js.map +1 -1
  118. package/build-module/components/dataviews/constants.js +6 -0
  119. package/build-module/components/dataviews/constants.js.map +1 -0
  120. package/build-module/components/dataviews/dataviews.js +9 -7
  121. package/build-module/components/dataviews/dataviews.js.map +1 -1
  122. package/build-module/components/dataviews/filter-summary.js +55 -0
  123. package/build-module/components/dataviews/filter-summary.js.map +1 -0
  124. package/build-module/components/dataviews/filters.js +15 -28
  125. package/build-module/components/dataviews/filters.js.map +1 -1
  126. package/build-module/components/dataviews/item-actions.js +84 -30
  127. package/build-module/components/dataviews/item-actions.js.map +1 -1
  128. package/build-module/components/dataviews/pagination.js +4 -0
  129. package/build-module/components/dataviews/pagination.js.map +1 -1
  130. package/build-module/components/dataviews/view-actions.js +24 -24
  131. package/build-module/components/dataviews/view-actions.js.map +1 -1
  132. package/build-module/components/dataviews/view-grid.js +49 -26
  133. package/build-module/components/dataviews/view-grid.js.map +1 -1
  134. package/build-module/components/dataviews/view-list.js +28 -33
  135. package/build-module/components/dataviews/view-list.js.map +1 -1
  136. package/build-module/components/editor/index.js +26 -30
  137. package/build-module/components/editor/index.js.map +1 -1
  138. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  139. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  140. package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
  141. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  142. package/build-module/components/global-styles/header.js +4 -2
  143. package/build-module/components/global-styles/header.js.map +1 -1
  144. package/build-module/components/global-styles/screen-block-list.js +23 -17
  145. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  146. package/build-module/components/global-styles/screen-revisions/index.js +27 -6
  147. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  148. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
  149. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  150. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  151. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  152. package/build-module/components/global-styles/ui.js +28 -36
  153. package/build-module/components/global-styles/ui.js.map +1 -1
  154. package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
  155. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  156. package/build-module/components/header-edit-mode/index.js +2 -1
  157. package/build-module/components/header-edit-mode/index.js.map +1 -1
  158. package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
  159. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  160. package/build-module/components/list/added-by.js +44 -55
  161. package/build-module/components/list/added-by.js.map +1 -1
  162. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  163. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  164. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  165. package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  166. package/build-module/components/page-content-focus-notifications/index.js +14 -0
  167. package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
  168. package/build-module/components/page-pages/index.js +10 -16
  169. package/build-module/components/page-pages/index.js.map +1 -1
  170. package/build-module/components/page-patterns/use-patterns.js +1 -1
  171. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  172. package/build-module/components/page-templates/dataviews-templates.js +168 -53
  173. package/build-module/components/page-templates/dataviews-templates.js.map +1 -1
  174. package/build-module/components/preferences-modal/index.js +1 -1
  175. package/build-module/components/preferences-modal/index.js.map +1 -1
  176. package/build-module/components/save-button/index.js +11 -8
  177. package/build-module/components/save-button/index.js.map +1 -1
  178. package/build-module/components/save-hub/index.js +14 -0
  179. package/build-module/components/save-hub/index.js.map +1 -1
  180. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  181. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  182. package/build-module/components/sidebar-dataviews/default-views.js +7 -2
  183. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  184. package/build-module/components/sidebar-edit-mode/index.js +6 -5
  185. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  186. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +16 -27
  187. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  188. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
  189. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  190. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
  191. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  192. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +5 -9
  193. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  194. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  195. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  196. package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
  197. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  198. package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
  199. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  200. package/build-module/components/style-book/index.js +22 -12
  201. package/build-module/components/style-book/index.js.map +1 -1
  202. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  203. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  204. package/build-module/components/welcome-guide/page.js +2 -2
  205. package/build-module/components/welcome-guide/page.js.map +1 -1
  206. package/build-module/components/welcome-guide/template.js +6 -3
  207. package/build-module/components/welcome-guide/template.js.map +1 -1
  208. package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
  209. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  210. package/build-module/store/actions.js +4 -1
  211. package/build-module/store/actions.js.map +1 -1
  212. package/build-module/store/private-actions.js +1 -25
  213. package/build-module/store/private-actions.js.map +1 -1
  214. package/build-module/store/private-selectors.js +0 -22
  215. package/build-module/store/private-selectors.js.map +1 -1
  216. package/build-module/store/reducer.js +1 -38
  217. package/build-module/store/reducer.js.map +1 -1
  218. package/build-module/store/selectors.js +8 -4
  219. package/build-module/store/selectors.js.map +1 -1
  220. package/build-module/utils/constants.js +0 -10
  221. package/build-module/utils/constants.js.map +1 -1
  222. package/build-style/style-rtl.css +152 -62
  223. package/build-style/style.css +152 -62
  224. package/package.json +41 -41
  225. package/src/components/actions/index.js +76 -48
  226. package/src/components/block-editor/site-editor-canvas.js +8 -2
  227. package/src/components/dataviews/README.md +14 -11
  228. package/src/components/dataviews/add-filter.js +21 -24
  229. package/src/components/dataviews/constants.js +5 -0
  230. package/src/components/dataviews/dataviews.js +10 -10
  231. package/src/components/dataviews/filter-summary.js +79 -0
  232. package/src/components/dataviews/filters.js +18 -35
  233. package/src/components/dataviews/item-actions.js +106 -42
  234. package/src/components/dataviews/pagination.js +4 -0
  235. package/src/components/dataviews/style.scss +84 -8
  236. package/src/components/dataviews/view-actions.js +39 -41
  237. package/src/components/dataviews/view-grid.js +63 -38
  238. package/src/components/dataviews/view-list.js +50 -57
  239. package/src/components/editor/index.js +18 -34
  240. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  241. package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
  242. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
  243. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
  244. package/src/components/global-styles/header.js +2 -1
  245. package/src/components/global-styles/screen-block-list.js +37 -26
  246. package/src/components/global-styles/screen-revisions/index.js +39 -10
  247. package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
  248. package/src/components/global-styles/screen-revisions/style.scss +52 -28
  249. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
  250. package/src/components/global-styles/style.scss +0 -11
  251. package/src/components/global-styles/ui.js +59 -74
  252. package/src/components/header-edit-mode/document-actions/index.js +20 -18
  253. package/src/components/header-edit-mode/index.js +1 -0
  254. package/src/components/header-edit-mode/more-menu/index.js +1 -1
  255. package/src/components/list/added-by.js +23 -63
  256. package/src/components/list/style.scss +11 -13
  257. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +12 -13
  258. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  259. package/src/components/page-content-focus-notifications/index.js +14 -0
  260. package/src/components/page-pages/index.js +15 -20
  261. package/src/components/page-patterns/use-patterns.js +1 -1
  262. package/src/components/page-templates/dataviews-templates.js +169 -48
  263. package/src/components/page-templates/style.scss +13 -0
  264. package/src/components/preferences-modal/index.js +1 -1
  265. package/src/components/save-button/index.js +37 -24
  266. package/src/components/save-hub/index.js +15 -0
  267. package/src/components/save-hub/style.scss +7 -0
  268. package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -0
  269. package/src/components/sidebar-dataviews/default-views.js +7 -2
  270. package/src/components/sidebar-dataviews/style.scss +7 -0
  271. package/src/components/sidebar-edit-mode/index.js +13 -9
  272. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +33 -52
  273. package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
  274. package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
  275. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +8 -9
  276. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  277. package/src/components/sidebar-edit-mode/page-panels/style.scss +9 -19
  278. package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
  279. package/src/components/sidebar-navigation-screen/style.scss +1 -0
  280. package/src/components/sidebar-navigation-screen-page/index.js +24 -3
  281. package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
  282. package/src/components/style-book/index.js +48 -35
  283. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +69 -17
  284. package/src/components/welcome-guide/page.js +2 -2
  285. package/src/components/welcome-guide/template.js +4 -2
  286. package/src/hooks/commands/use-edit-mode-commands.js +22 -16
  287. package/src/store/actions.js +5 -1
  288. package/src/store/private-actions.js +1 -24
  289. package/src/store/private-selectors.js +0 -22
  290. package/src/store/reducer.js +0 -39
  291. package/src/store/selectors.js +12 -4
  292. package/src/store/test/actions.js +3 -32
  293. package/src/store/test/reducer.js +0 -62
  294. package/src/store/test/selectors.js +0 -35
  295. package/src/style.scss +1 -0
  296. package/src/utils/constants.js +0 -10
  297. package/build/components/dataviews/in-filter.js +0 -51
  298. package/build/components/dataviews/in-filter.js.map +0 -1
  299. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  300. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -63
  301. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  302. package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  303. package/build/components/page-content-focus-manager/index.js +0 -61
  304. package/build/components/page-content-focus-manager/index.js.map +0 -1
  305. package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
  306. package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  307. package/build-module/components/dataviews/in-filter.js +0 -42
  308. package/build-module/components/dataviews/in-filter.js.map +0 -1
  309. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  310. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -56
  311. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  312. package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  313. package/build-module/components/page-content-focus-manager/index.js +0 -52
  314. package/build-module/components/page-content-focus-manager/index.js.map +0 -1
  315. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
  316. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  317. package/src/components/dataviews/in-filter.js +0 -63
  318. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -57
  319. package/src/components/page-content-focus-manager/index.js +0 -51
  320. package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
@@ -7,13 +7,10 @@ import classnames from 'classnames';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import {
10
- __unstableComposite as Composite,
11
- __unstableUseCompositeState as useCompositeState,
12
- __unstableCompositeItem as CompositeItem,
13
10
  Disabled,
14
11
  TabPanel,
12
+ privateApis as componentsPrivateApis,
15
13
  } from '@wordpress/components';
16
-
17
14
  import { __, sprintf } from '@wordpress/i18n';
18
15
  import {
19
16
  getCategories,
@@ -43,6 +40,12 @@ const { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(
43
40
  blockEditorPrivateApis
44
41
  );
45
42
 
43
+ const {
44
+ CompositeV2: Composite,
45
+ CompositeItemV2: CompositeItem,
46
+ useCompositeStoreV2: useCompositeStore,
47
+ } = unlock( componentsPrivateApis );
48
+
46
49
  // The content area of the Style Book is rendered within an iframe so that global styles
47
50
  // are applied to elements within the entire content area. To support elements that are
48
51
  // not part of the block previews, such as headings and layout for the block previews,
@@ -66,6 +69,8 @@ const STYLE_BOOK_IFRAME_STYLES = `
66
69
  padding: 16px;
67
70
  width: 100%;
68
71
  box-sizing: border-box;
72
+ scroll-margin-top: 32px;
73
+ scroll-margin-bottom: 32px;
69
74
  }
70
75
 
71
76
  .edit-site-style-book__example.is-selected {
@@ -332,6 +337,7 @@ const StyleBookBody = ( {
332
337
  }
333
338
  isSelected={ isSelected }
334
339
  onSelect={ onSelect }
340
+ key={ category }
335
341
  />
336
342
  </Iframe>
337
343
  );
@@ -339,12 +345,14 @@ const StyleBookBody = ( {
339
345
 
340
346
  const Examples = memo(
341
347
  ( { className, examples, category, label, isSelected, onSelect } ) => {
342
- const composite = useCompositeState( { orientation: 'vertical' } );
348
+ const compositeStore = useCompositeStore( { orientation: 'vertical' } );
349
+
343
350
  return (
344
351
  <Composite
345
- { ...composite }
352
+ store={ compositeStore }
346
353
  className={ className }
347
354
  aria-label={ label }
355
+ role="grid"
348
356
  >
349
357
  { examples
350
358
  .filter( ( example ) =>
@@ -354,7 +362,6 @@ const Examples = memo(
354
362
  <Example
355
363
  key={ example.name }
356
364
  id={ `example-${ example.name }` }
357
- composite={ composite }
358
365
  title={ example.title }
359
366
  blocks={ example.blocks }
360
367
  isSelected={ isSelected( example.name ) }
@@ -368,7 +375,7 @@ const Examples = memo(
368
375
  }
369
376
  );
370
377
 
371
- const Example = ( { composite, id, title, blocks, isSelected, onClick } ) => {
378
+ const Example = ( { id, title, blocks, isSelected, onClick } ) => {
372
379
  const originalSettings = useSelect(
373
380
  ( select ) => select( blockEditorStore ).getSettings(),
374
381
  []
@@ -385,35 +392,41 @@ const Example = ( { composite, id, title, blocks, isSelected, onClick } ) => {
385
392
  );
386
393
 
387
394
  return (
388
- <CompositeItem
389
- { ...composite }
390
- className={ classnames( 'edit-site-style-book__example', {
391
- 'is-selected': isSelected,
392
- } ) }
393
- id={ id }
394
- aria-label={ sprintf(
395
- // translators: %s: Title of a block, e.g. Heading.
396
- __( 'Open %s styles in Styles panel' ),
397
- title
398
- ) }
399
- onClick={ onClick }
400
- role="button"
401
- as="div"
402
- >
403
- <span className="edit-site-style-book__example-title">
404
- { title }
405
- </span>
406
- <div className="edit-site-style-book__example-preview" aria-hidden>
407
- <Disabled className="edit-site-style-book__example-preview__content">
408
- <ExperimentalBlockEditorProvider
409
- value={ renderedBlocks }
410
- settings={ settings }
395
+ <div role="row">
396
+ <div role="gridcell">
397
+ <CompositeItem
398
+ className={ classnames( 'edit-site-style-book__example', {
399
+ 'is-selected': isSelected,
400
+ } ) }
401
+ id={ id }
402
+ aria-label={ sprintf(
403
+ // translators: %s: Title of a block, e.g. Heading.
404
+ __( 'Open %s styles in Styles panel' ),
405
+ title
406
+ ) }
407
+ render={ <div /> }
408
+ role="button"
409
+ onClick={ onClick }
410
+ >
411
+ <span className="edit-site-style-book__example-title">
412
+ { title }
413
+ </span>
414
+ <div
415
+ className="edit-site-style-book__example-preview"
416
+ aria-hidden
411
417
  >
412
- <BlockList renderAppender={ false } />
413
- </ExperimentalBlockEditorProvider>
414
- </Disabled>
418
+ <Disabled className="edit-site-style-book__example-preview__content">
419
+ <ExperimentalBlockEditorProvider
420
+ value={ renderedBlocks }
421
+ settings={ settings }
422
+ >
423
+ <BlockList renderAppender={ false } />
424
+ </ExperimentalBlockEditorProvider>
425
+ </Disabled>
426
+ </div>
427
+ </CompositeItem>
415
428
  </div>
416
- </CompositeItem>
429
+ </div>
417
430
  );
418
431
  };
419
432
 
@@ -28,21 +28,46 @@ const postTypesWithoutParentTemplate = [
28
28
  ];
29
29
 
30
30
  function useResolveEditedEntityAndContext( { postId, postType } ) {
31
- const { isRequestingSite, homepageId, url } = useSelect( ( select ) => {
32
- const { getSite, getUnstableBase } = select( coreDataStore );
33
- const siteData = getSite();
34
- const base = getUnstableBase();
35
-
36
- return {
37
- isRequestingSite: ! base,
38
- homepageId:
39
- siteData?.show_on_front === 'page'
40
- ? siteData.page_on_front
41
- : null,
42
- url: base?.home,
43
- };
44
- }, [] );
31
+ const { hasLoadedAllDependencies, homepageId, url, frontPageTemplateId } =
32
+ useSelect( ( select ) => {
33
+ const { getSite, getUnstableBase, getEntityRecords } =
34
+ select( coreDataStore );
35
+ const siteData = getSite();
36
+ const base = getUnstableBase();
37
+ const templates = getEntityRecords(
38
+ 'postType',
39
+ TEMPLATE_POST_TYPE,
40
+ {
41
+ per_page: -1,
42
+ }
43
+ );
44
+ let _frontPateTemplateId;
45
+ if ( templates ) {
46
+ const frontPageTemplate = templates.find(
47
+ ( t ) => t.slug === 'front-page'
48
+ );
49
+ _frontPateTemplateId = frontPageTemplate
50
+ ? frontPageTemplate.id
51
+ : false;
52
+ }
45
53
 
54
+ return {
55
+ hasLoadedAllDependencies: !! base && !! siteData,
56
+ homepageId:
57
+ siteData?.show_on_front === 'page'
58
+ ? siteData.page_on_front.toString()
59
+ : null,
60
+ url: base?.home,
61
+ frontPageTemplateId: _frontPateTemplateId,
62
+ };
63
+ }, [] );
64
+
65
+ /**
66
+ * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId
67
+ * in order to match the frontend as closely as possible in the site editor.
68
+ *
69
+ * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.
70
+ */
46
71
  const resolvedTemplateId = useSelect(
47
72
  ( select ) => {
48
73
  // If we're rendering a post type that doesn't have a template
@@ -62,6 +87,22 @@ function useResolveEditedEntityAndContext( { postId, postType } ) {
62
87
  postTypeToResolve,
63
88
  postIdToResolve
64
89
  ) {
90
+ // For the front page, we always use the front page template if existing.
91
+ if (
92
+ postTypeToResolve === 'page' &&
93
+ homepageId === postIdToResolve
94
+ ) {
95
+ // We're still checking whether the front page template exists.
96
+ // Don't resolve the template yet.
97
+ if ( frontPageTemplateId === undefined ) {
98
+ return undefined;
99
+ }
100
+
101
+ if ( !! frontPageTemplateId ) {
102
+ return frontPageTemplateId;
103
+ }
104
+ }
105
+
65
106
  const editedEntity = getEditedEntityRecord(
66
107
  'postType',
67
108
  postTypeToResolve,
@@ -91,6 +132,10 @@ function useResolveEditedEntityAndContext( { postId, postType } ) {
91
132
  } );
92
133
  }
93
134
 
135
+ if ( ! hasLoadedAllDependencies ) {
136
+ return undefined;
137
+ }
138
+
94
139
  // If we're rendering a specific page, post... we need to resolve its template.
95
140
  if ( postType && postId ) {
96
141
  return resolveTemplateForPostTypeAndId( postType, postId );
@@ -102,12 +147,19 @@ function useResolveEditedEntityAndContext( { postId, postType } ) {
102
147
  }
103
148
 
104
149
  // If we're not rendering a specific page, use the front page template.
105
- if ( ! isRequestingSite && url ) {
150
+ if ( url ) {
106
151
  const template = __experimentalGetTemplateForLink( url );
107
152
  return template?.id;
108
153
  }
109
154
  },
110
- [ homepageId, isRequestingSite, url, postId, postType ]
155
+ [
156
+ homepageId,
157
+ hasLoadedAllDependencies,
158
+ url,
159
+ postId,
160
+ postType,
161
+ frontPageTemplateId,
162
+ ]
111
163
  );
112
164
 
113
165
  const context = useMemo( () => {
@@ -130,7 +182,7 @@ function useResolveEditedEntityAndContext( { postId, postType } ) {
130
182
  return { isReady: true, postType, postId, context };
131
183
  }
132
184
 
133
- if ( ( postType && postId ) || homepageId || ! isRequestingSite ) {
185
+ if ( hasLoadedAllDependencies ) {
134
186
  return {
135
187
  isReady: resolvedTemplateId !== undefined,
136
188
  postType: TEMPLATE_POST_TYPE,
@@ -23,8 +23,8 @@ export default function WelcomeGuidePage() {
23
23
  'core/edit-site',
24
24
  'welcomeGuide'
25
25
  );
26
- const { hasPageContentFocus } = select( editSiteStore );
27
- return isPageActive && ! isEditorActive && hasPageContentFocus();
26
+ const { isPage } = select( editSiteStore );
27
+ return isPageActive && ! isEditorActive && isPage();
28
28
  }, [] );
29
29
 
30
30
  if ( ! isVisible ) {
@@ -5,6 +5,7 @@ import { useDispatch, useSelect } from '@wordpress/data';
5
5
  import { Guide } from '@wordpress/components';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { store as preferencesStore } from '@wordpress/preferences';
8
+ import { store as editorStore } from '@wordpress/editor';
8
9
 
9
10
  /**
10
11
  * Internal dependencies
@@ -23,12 +24,13 @@ export default function WelcomeGuideTemplate() {
23
24
  'core/edit-site',
24
25
  'welcomeGuide'
25
26
  );
26
- const { isPage, hasPageContentFocus } = select( editSiteStore );
27
+ const { isPage } = select( editSiteStore );
28
+ const { getRenderingMode } = select( editorStore );
27
29
  return (
28
30
  isTemplateActive &&
29
31
  ! isEditorActive &&
30
32
  isPage() &&
31
- ! hasPageContentFocus()
33
+ getRenderingMode() === 'template-only'
32
34
  );
33
35
  }, [] );
34
36
 
@@ -24,6 +24,7 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
24
24
  import { store as preferencesStore } from '@wordpress/preferences';
25
25
  import { store as interfaceStore } from '@wordpress/interface';
26
26
  import { store as noticesStore } from '@wordpress/notices';
27
+ import { store as editorStore } from '@wordpress/editor';
27
28
 
28
29
  /**
29
30
  * Internal dependencies
@@ -42,15 +43,18 @@ const { useHistory } = unlock( routerPrivateApis );
42
43
 
43
44
  function usePageContentFocusCommands() {
44
45
  const { record: template } = useEditedEntityRecord();
45
- const { isPage, canvasMode, hasPageContentFocus } = useSelect(
46
- ( select ) => ( {
47
- isPage: select( editSiteStore ).isPage(),
48
- canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
49
- hasPageContentFocus: select( editSiteStore ).hasPageContentFocus(),
50
- } ),
51
- []
52
- );
53
- const { setHasPageContentFocus } = useDispatch( editSiteStore );
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
+ }, [] );
57
+ const { setRenderingMode } = useDispatch( editorStore );
54
58
 
55
59
  if ( ! isPage || canvasMode !== 'edit' ) {
56
60
  return { isLoading: false, commands: [] };
@@ -58,7 +62,7 @@ function usePageContentFocusCommands() {
58
62
 
59
63
  const commands = [];
60
64
 
61
- if ( hasPageContentFocus ) {
65
+ if ( renderingMode !== 'template-only' ) {
62
66
  commands.push( {
63
67
  name: 'core/switch-to-template-focus',
64
68
  /* translators: %1$s: template title */
@@ -68,7 +72,7 @@ function usePageContentFocusCommands() {
68
72
  ),
69
73
  icon: layout,
70
74
  callback: ( { close } ) => {
71
- setHasPageContentFocus( false );
75
+ setRenderingMode( 'template-only' );
72
76
  close();
73
77
  },
74
78
  } );
@@ -78,7 +82,7 @@ function usePageContentFocusCommands() {
78
82
  label: __( 'Back to page' ),
79
83
  icon: page,
80
84
  callback: ( { close } ) => {
81
- setHasPageContentFocus( true );
85
+ setRenderingMode( 'template-locked' );
82
86
  close();
83
87
  },
84
88
  } );
@@ -122,8 +126,10 @@ function useManipulateDocumentCommands() {
122
126
  const { isLoaded, record: template } = useEditedEntityRecord();
123
127
  const { removeTemplate, revertTemplate } = useDispatch( editSiteStore );
124
128
  const history = useHistory();
125
- const hasPageContentFocus = useSelect(
126
- ( select ) => select( editSiteStore ).hasPageContentFocus(),
129
+ const isEditingPage = useSelect(
130
+ ( select ) =>
131
+ select( editSiteStore ).isPage() &&
132
+ select( editorStore ).getRenderingMode() !== 'template-only',
127
133
  []
128
134
  );
129
135
 
@@ -133,7 +139,7 @@ function useManipulateDocumentCommands() {
133
139
 
134
140
  const commands = [];
135
141
 
136
- if ( isTemplateRevertable( template ) && ! hasPageContentFocus ) {
142
+ if ( isTemplateRevertable( template ) && ! isEditingPage ) {
137
143
  const label =
138
144
  template.type === TEMPLATE_POST_TYPE
139
145
  ? /* translators: %1$s: template title */
@@ -157,7 +163,7 @@ function useManipulateDocumentCommands() {
157
163
  } );
158
164
  }
159
165
 
160
- if ( isTemplateRemovable( template ) && ! hasPageContentFocus ) {
166
+ if ( isTemplateRemovable( template ) && ! isEditingPage ) {
161
167
  const label =
162
168
  template.type === TEMPLATE_POST_TYPE
163
169
  ? /* translators: %1$s: template title */
@@ -575,6 +575,10 @@ export const switchEditorMode =
575
575
  export const setHasPageContentFocus =
576
576
  ( hasPageContentFocus ) =>
577
577
  ( { dispatch, registry } ) => {
578
+ deprecated( `dispatch( 'core/edit-site' ).setHasPageContentFocus`, {
579
+ since: '6.5',
580
+ } );
581
+
578
582
  if ( hasPageContentFocus ) {
579
583
  registry.dispatch( blockEditorStore ).clearSelectedBlock();
580
584
  }
@@ -599,7 +603,7 @@ export const toggleDistractionFree =
599
603
  registry.batch( () => {
600
604
  registry
601
605
  .dispatch( preferencesStore )
602
- .set( 'core/edit-site', 'fixedToolbar', false );
606
+ .set( 'core/edit-site', 'fixedToolbar', true );
603
607
  dispatch.setIsInserterOpened( false );
604
608
  dispatch.setIsListViewOpened( false );
605
609
  dispatch.closeGeneralSidebar();
@@ -11,7 +11,7 @@ import { store as preferencesStore } from '@wordpress/preferences';
11
11
  */
12
12
  export const setCanvasMode =
13
13
  ( mode ) =>
14
- ( { registry, dispatch, select } ) => {
14
+ ( { registry, dispatch } ) => {
15
15
  registry.dispatch( blockEditorStore ).__unstableSetEditorMode( 'edit' );
16
16
  dispatch( {
17
17
  type: 'SET_CANVAS_MODE',
@@ -30,10 +30,6 @@ export const setCanvasMode =
30
30
  ) {
31
31
  dispatch.setIsListViewOpened( true );
32
32
  }
33
- // Switch focus away from editing the template when switching to view mode.
34
- if ( mode === 'view' && select.isPage() ) {
35
- dispatch.setHasPageContentFocus( true );
36
- }
37
33
  };
38
34
 
39
35
  /**
@@ -49,22 +45,3 @@ export const setEditorCanvasContainerView =
49
45
  view,
50
46
  } );
51
47
  };
52
-
53
- /**
54
- * Sets the type of page content focus. Can be one of:
55
- *
56
- * - `'disableTemplate'`: Disable the blocks belonging to the page's template.
57
- * - `'hideTemplate'`: Hide the blocks belonging to the page's template.
58
- *
59
- * @param {'disableTemplate'|'hideTemplate'} pageContentFocusType The type of page content focus.
60
- *
61
- * @return {Object} Action object.
62
- */
63
- export const setPageContentFocusType =
64
- ( pageContentFocusType ) =>
65
- ( { dispatch } ) => {
66
- dispatch( {
67
- type: 'SET_PAGE_CONTENT_FOCUS_TYPE',
68
- pageContentFocusType,
69
- } );
70
- };
@@ -1,8 +1,3 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import { hasPageContentFocus } from './selectors';
5
-
6
1
  /**
7
2
  * Returns the current canvas mode.
8
3
  *
@@ -24,20 +19,3 @@ export function getCanvasMode( state ) {
24
19
  export function getEditorCanvasContainerView( state ) {
25
20
  return state.editorCanvasContainerView;
26
21
  }
27
-
28
- /**
29
- * Returns the type of the current page content focus, or null if there is no
30
- * page content focus.
31
- *
32
- * Possible values are:
33
- *
34
- * - `'disableTemplate'`: Disable the blocks belonging to the page's template.
35
- * - `'hideTemplate'`: Hide the blocks belonging to the page's template.
36
- *
37
- * @param {Object} state Global application state.
38
- *
39
- * @return {'disableTemplate'|'hideTemplate'|null} Type of the current page content focus.
40
- */
41
- export function getPageContentFocusType( state ) {
42
- return hasPageContentFocus( state ) ? state.pageContentFocusType : null;
43
- }
@@ -157,43 +157,6 @@ function editorCanvasContainerView( state = undefined, action ) {
157
157
  return state;
158
158
  }
159
159
 
160
- /**
161
- * Reducer used to track whether the editor allows only page content to be
162
- * edited.
163
- *
164
- * @param {boolean} state Current state.
165
- * @param {Object} action Dispatched action.
166
- *
167
- * @return {boolean} Updated state.
168
- */
169
- export function hasPageContentFocus( state = false, action ) {
170
- switch ( action.type ) {
171
- case 'SET_EDITED_POST':
172
- return !! action.context?.postId;
173
- case 'SET_HAS_PAGE_CONTENT_FOCUS':
174
- return action.hasPageContentFocus;
175
- }
176
-
177
- return state;
178
- }
179
-
180
- /**
181
- * Reducer used to track the type of page content focus.
182
- *
183
- * @param {string} state Current state.
184
- * @param {Object} action Dispatched action.
185
- *
186
- * @return {string} Updated state.
187
- */
188
- export function pageContentFocusType( state = 'disableTemplate', action ) {
189
- switch ( action.type ) {
190
- case 'SET_PAGE_CONTENT_FOCUS_TYPE':
191
- return action.pageContentFocusType;
192
- }
193
-
194
- return state;
195
- }
196
-
197
160
  export default combineReducers( {
198
161
  deviceType,
199
162
  settings,
@@ -203,6 +166,4 @@ export default combineReducers( {
203
166
  saveViewPanel,
204
167
  canvasMode,
205
168
  editorCanvasContainerView,
206
- hasPageContentFocus,
207
- pageContentFocusType,
208
169
  } );
@@ -7,6 +7,7 @@ import deprecated from '@wordpress/deprecated';
7
7
  import { Platform } from '@wordpress/element';
8
8
  import { store as preferencesStore } from '@wordpress/preferences';
9
9
  import { store as blockEditorStore } from '@wordpress/block-editor';
10
+ import { store as editorStore } from '@wordpress/editor';
10
11
 
11
12
  /**
12
13
  * Internal dependencies
@@ -181,7 +182,10 @@ export const __experimentalGetInsertionPoint = createRegistrySelector(
181
182
  return { rootClientId, insertionIndex, filterValue };
182
183
  }
183
184
 
184
- if ( hasPageContentFocus( state ) ) {
185
+ if (
186
+ isPage( state ) &&
187
+ select( editorStore ).getRenderingMode() !== 'template-only'
188
+ ) {
185
189
  const [ postContentClientId ] =
186
190
  select( blockEditorStore ).__experimentalGetGlobalBlocksByName(
187
191
  'core/post-content'
@@ -310,10 +314,14 @@ export function isPage( state ) {
310
314
  /**
311
315
  * Whether or not the editor allows only page content to be edited.
312
316
  *
313
- * @param {Object} state Global application state.
317
+ * @deprecated
314
318
  *
315
319
  * @return {boolean} Whether or not focus is on editing page content.
316
320
  */
317
- export function hasPageContentFocus( state ) {
318
- return isPage( state ) ? state.hasPageContentFocus : false;
321
+ export function hasPageContentFocus() {
322
+ deprecated( `select( 'core/edit-site' ).hasPageContentFocus`, {
323
+ since: '6.5',
324
+ } );
325
+
326
+ return false;
319
327
  }
@@ -7,18 +7,19 @@ import { createRegistry } from '@wordpress/data';
7
7
  import { store as interfaceStore } from '@wordpress/interface';
8
8
  import { store as noticesStore } from '@wordpress/notices';
9
9
  import { store as preferencesStore } from '@wordpress/preferences';
10
+ import { store as editorStore } from '@wordpress/editor';
10
11
 
11
12
  /**
12
13
  * Internal dependencies
13
14
  */
14
15
  import { store as editSiteStore } from '..';
15
- import { setHasPageContentFocus } from '../actions';
16
16
 
17
17
  function createRegistryWithStores() {
18
18
  // create a registry
19
19
  const registry = createRegistry();
20
20
 
21
21
  // register stores
22
+ registry.register( editorStore );
22
23
  registry.register( blockEditorStore );
23
24
  registry.register( coreStore );
24
25
  registry.register( editSiteStore );
@@ -158,7 +159,7 @@ describe( 'actions', () => {
158
159
  registry
159
160
  .select( preferencesStore )
160
161
  .get( 'core/edit-site', 'fixedToolbar' )
161
- ).toBe( false );
162
+ ).toBe( true );
162
163
  expect( registry.select( editSiteStore ).isListViewOpened() ).toBe(
163
164
  false
164
165
  );
@@ -177,34 +178,4 @@ describe( 'actions', () => {
177
178
  ).toBe( true );
178
179
  } );
179
180
  } );
180
-
181
- describe( 'setHasPageContentFocus', () => {
182
- it( 'toggles the page content lock on', () => {
183
- const dispatch = jest.fn();
184
- const clearSelectedBlock = jest.fn();
185
- const registry = {
186
- dispatch: () => ( { clearSelectedBlock } ),
187
- };
188
- setHasPageContentFocus( true )( { dispatch, registry } );
189
- expect( clearSelectedBlock ).toHaveBeenCalled();
190
- expect( dispatch ).toHaveBeenCalledWith( {
191
- type: 'SET_HAS_PAGE_CONTENT_FOCUS',
192
- hasPageContentFocus: true,
193
- } );
194
- } );
195
-
196
- it( 'toggles the page content lock off', () => {
197
- const dispatch = jest.fn();
198
- const clearSelectedBlock = jest.fn();
199
- const registry = {
200
- dispatch: () => ( { clearSelectedBlock } ),
201
- };
202
- setHasPageContentFocus( false )( { dispatch, registry } );
203
- expect( clearSelectedBlock ).not.toHaveBeenCalled();
204
- expect( dispatch ).toHaveBeenCalledWith( {
205
- type: 'SET_HAS_PAGE_CONTENT_FOCUS',
206
- hasPageContentFocus: false,
207
- } );
208
- } );
209
- } );
210
181
  } );