@wordpress/edit-site 5.22.0 → 5.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/actions/index.js +115 -15
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/add-new-template/new-template.js +0 -7
  5. package/build/components/add-new-template/new-template.js.map +1 -1
  6. package/build/components/block-editor/site-editor-canvas.js +7 -2
  7. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +54 -63
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/dataviews/add-filter.js +91 -0
  11. package/build/components/dataviews/add-filter.js.map +1 -0
  12. package/build/components/dataviews/constants.js +14 -0
  13. package/build/components/dataviews/constants.js.map +1 -0
  14. package/build/components/dataviews/dataviews.js +30 -9
  15. package/build/components/dataviews/dataviews.js.map +1 -1
  16. package/build/components/dataviews/filter-summary.js +62 -0
  17. package/build/components/dataviews/filter-summary.js.map +1 -0
  18. package/build/components/dataviews/filters.js +37 -48
  19. package/build/components/dataviews/filters.js.map +1 -1
  20. package/build/components/dataviews/index.js +9 -2
  21. package/build/components/dataviews/index.js.map +1 -1
  22. package/build/components/dataviews/item-actions.js +139 -17
  23. package/build/components/dataviews/item-actions.js.map +1 -1
  24. package/build/components/dataviews/pagination.js +7 -2
  25. package/build/components/dataviews/pagination.js.map +1 -1
  26. package/build/components/dataviews/reset-filters.js +33 -0
  27. package/build/components/dataviews/reset-filters.js.map +1 -0
  28. package/build/components/dataviews/search.js +1 -0
  29. package/build/components/dataviews/search.js.map +1 -1
  30. package/build/components/dataviews/view-actions.js +49 -32
  31. package/build/components/dataviews/view-actions.js.map +1 -1
  32. package/build/components/dataviews/view-grid.js +48 -25
  33. package/build/components/dataviews/view-grid.js.map +1 -1
  34. package/build/components/dataviews/view-list.js +130 -14
  35. package/build/components/dataviews/view-list.js.map +1 -1
  36. package/build/components/dataviews/view-side-by-side.js +20 -0
  37. package/build/components/dataviews/view-side-by-side.js.map +1 -0
  38. package/build/components/editor/index.js +52 -56
  39. package/build/components/editor/index.js.map +1 -1
  40. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  41. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  42. package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
  43. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  44. package/build/components/global-styles/header.js +4 -2
  45. package/build/components/global-styles/header.js.map +1 -1
  46. package/build/components/global-styles/screen-block-list.js +22 -16
  47. package/build/components/global-styles/screen-block-list.js.map +1 -1
  48. package/build/components/global-styles/screen-revisions/index.js +66 -24
  49. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  50. package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
  51. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  52. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  53. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  54. package/build/components/global-styles/screen-root.js +3 -3
  55. package/build/components/global-styles/screen-root.js.map +1 -1
  56. package/build/components/global-styles/ui.js +31 -39
  57. package/build/components/global-styles/ui.js.map +1 -1
  58. package/build/components/global-styles-renderer/index.js +1 -1
  59. package/build/components/global-styles-renderer/index.js.map +1 -1
  60. package/build/components/header-edit-mode/document-actions/index.js +21 -16
  61. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  62. package/build/components/header-edit-mode/document-tools/index.js +160 -0
  63. package/build/components/header-edit-mode/document-tools/index.js.map +1 -0
  64. package/build/components/header-edit-mode/index.js +50 -117
  65. package/build/components/header-edit-mode/index.js.map +1 -1
  66. package/build/components/header-edit-mode/more-menu/index.js +1 -1
  67. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  68. package/build/components/header-edit-mode/more-menu/site-export.js +2 -6
  69. package/build/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  70. package/build/components/layout/index.js +4 -19
  71. package/build/components/layout/index.js.map +1 -1
  72. package/build/components/list/added-by.js +44 -54
  73. package/build/components/list/added-by.js.map +1 -1
  74. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +11 -15
  75. package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  76. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  77. package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  78. package/build/components/page-content-focus-notifications/index.js +22 -0
  79. package/build/components/page-content-focus-notifications/index.js.map +1 -0
  80. package/build/components/page-main/index.js +2 -1
  81. package/build/components/page-main/index.js.map +1 -1
  82. package/build/components/page-pages/index.js +137 -88
  83. package/build/components/page-pages/index.js.map +1 -1
  84. package/build/components/page-pages/side-editor.js +25 -0
  85. package/build/components/page-pages/side-editor.js.map +1 -0
  86. package/build/components/page-patterns/grid-item.js +2 -2
  87. package/build/components/page-patterns/grid-item.js.map +1 -1
  88. package/build/components/page-patterns/patterns-list.js +3 -3
  89. package/build/components/page-patterns/patterns-list.js.map +1 -1
  90. package/build/components/page-patterns/use-patterns.js +2 -2
  91. package/build/components/page-patterns/use-patterns.js.map +1 -1
  92. package/build/components/page-templates/dataviews-templates.js +316 -0
  93. package/build/components/page-templates/dataviews-templates.js.map +1 -0
  94. package/build/components/page-templates/template-actions.js +168 -0
  95. package/build/components/page-templates/template-actions.js.map +1 -0
  96. package/build/components/preferences-modal/index.js +1 -1
  97. package/build/components/preferences-modal/index.js.map +1 -1
  98. package/build/components/save-button/index.js +9 -6
  99. package/build/components/save-button/index.js.map +1 -1
  100. package/build/components/save-hub/index.js +14 -0
  101. package/build/components/save-hub/index.js.map +1 -1
  102. package/build/components/sidebar/index.js +1 -2
  103. package/build/components/sidebar/index.js.map +1 -1
  104. package/build/components/sidebar-dataviews/add-new-view.js +124 -0
  105. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -0
  106. package/build/components/sidebar-dataviews/custom-dataviews-list.js +191 -0
  107. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  108. package/build/components/sidebar-dataviews/dataview-item.js +71 -0
  109. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -0
  110. package/build/components/sidebar-dataviews/default-views.js +65 -0
  111. package/build/components/sidebar-dataviews/default-views.js.map +1 -0
  112. package/build/components/sidebar-dataviews/index.js +21 -38
  113. package/build/components/sidebar-dataviews/index.js.map +1 -1
  114. package/build/components/sidebar-edit-mode/default-sidebar.js +2 -6
  115. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  116. package/build/components/sidebar-edit-mode/index.js +6 -5
  117. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  118. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +18 -29
  119. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  120. package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
  121. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  122. package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
  123. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  124. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +5 -8
  125. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  126. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +6 -14
  127. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  128. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +4 -12
  129. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  130. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  131. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  132. package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
  133. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  134. package/build/components/sidebar-edit-mode/template-panel/hooks.js +3 -3
  135. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  137. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  139. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-page/index.js +23 -4
  141. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  142. package/build/components/sidebar-navigation-screen-page/page-details.js +3 -11
  143. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  144. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  145. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  146. package/build/components/site-hub/index.js +18 -6
  147. package/build/components/site-hub/index.js.map +1 -1
  148. package/build/components/start-template-options/index.js +12 -16
  149. package/build/components/start-template-options/index.js.map +1 -1
  150. package/build/components/style-book/index.js +22 -12
  151. package/build/components/style-book/index.js.map +1 -1
  152. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +150 -55
  153. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  154. package/build/components/template-part-converter/convert-to-regular.js +1 -1
  155. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  156. package/build/components/welcome-guide/page.js +2 -2
  157. package/build/components/welcome-guide/page.js.map +1 -1
  158. package/build/components/welcome-guide/template.js +6 -3
  159. package/build/components/welcome-guide/template.js.map +1 -1
  160. package/build/hooks/commands/use-edit-mode-commands.js +24 -14
  161. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  162. package/build/hooks/push-changes-to-global-styles/index.js +3 -1
  163. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  164. package/build/hooks/template-part-edit.js +6 -2
  165. package/build/hooks/template-part-edit.js.map +1 -1
  166. package/build/index.js +0 -3
  167. package/build/index.js.map +1 -1
  168. package/build/store/actions.js +39 -83
  169. package/build/store/actions.js.map +1 -1
  170. package/build/store/private-actions.js +2 -27
  171. package/build/store/private-actions.js.map +1 -1
  172. package/build/store/private-selectors.js +0 -23
  173. package/build/store/private-selectors.js.map +1 -1
  174. package/build/store/reducer.js +1 -40
  175. package/build/store/reducer.js.map +1 -1
  176. package/build/store/selectors.js +33 -67
  177. package/build/store/selectors.js.map +1 -1
  178. package/build/utils/constants.js +3 -14
  179. package/build/utils/constants.js.map +1 -1
  180. package/build-module/components/actions/index.js +113 -14
  181. package/build-module/components/actions/index.js.map +1 -1
  182. package/build-module/components/add-new-template/new-template.js +0 -7
  183. package/build-module/components/add-new-template/new-template.js.map +1 -1
  184. package/build-module/components/block-editor/site-editor-canvas.js +7 -2
  185. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  186. package/build-module/components/block-editor/use-site-editor-settings.js +54 -62
  187. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  188. package/build-module/components/dataviews/add-filter.js +84 -0
  189. package/build-module/components/dataviews/add-filter.js.map +1 -0
  190. package/build-module/components/dataviews/constants.js +6 -0
  191. package/build-module/components/dataviews/constants.js.map +1 -0
  192. package/build-module/components/dataviews/dataviews.js +29 -9
  193. package/build-module/components/dataviews/dataviews.js.map +1 -1
  194. package/build-module/components/dataviews/filter-summary.js +55 -0
  195. package/build-module/components/dataviews/filter-summary.js.map +1 -0
  196. package/build-module/components/dataviews/filters.js +37 -48
  197. package/build-module/components/dataviews/filters.js.map +1 -1
  198. package/build-module/components/dataviews/index.js +1 -1
  199. package/build-module/components/dataviews/index.js.map +1 -1
  200. package/build-module/components/dataviews/item-actions.js +142 -20
  201. package/build-module/components/dataviews/item-actions.js.map +1 -1
  202. package/build-module/components/dataviews/pagination.js +7 -2
  203. package/build-module/components/dataviews/pagination.js.map +1 -1
  204. package/build-module/components/dataviews/reset-filters.js +26 -0
  205. package/build-module/components/dataviews/reset-filters.js.map +1 -0
  206. package/build-module/components/dataviews/search.js +1 -0
  207. package/build-module/components/dataviews/search.js.map +1 -1
  208. package/build-module/components/dataviews/view-actions.js +50 -33
  209. package/build-module/components/dataviews/view-actions.js.map +1 -1
  210. package/build-module/components/dataviews/view-grid.js +49 -26
  211. package/build-module/components/dataviews/view-grid.js.map +1 -1
  212. package/build-module/components/dataviews/view-list.js +132 -16
  213. package/build-module/components/dataviews/view-list.js.map +1 -1
  214. package/build-module/components/dataviews/view-side-by-side.js +12 -0
  215. package/build-module/components/dataviews/view-side-by-side.js.map +1 -0
  216. package/build-module/components/editor/index.js +55 -59
  217. package/build-module/components/editor/index.js.map +1 -1
  218. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  219. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  220. package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
  221. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  222. package/build-module/components/global-styles/header.js +4 -2
  223. package/build-module/components/global-styles/header.js.map +1 -1
  224. package/build-module/components/global-styles/screen-block-list.js +23 -17
  225. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  226. package/build-module/components/global-styles/screen-revisions/index.js +67 -25
  227. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  228. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
  229. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  230. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  231. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  232. package/build-module/components/global-styles/screen-root.js +3 -3
  233. package/build-module/components/global-styles/screen-root.js.map +1 -1
  234. package/build-module/components/global-styles/ui.js +31 -39
  235. package/build-module/components/global-styles/ui.js.map +1 -1
  236. package/build-module/components/global-styles-renderer/index.js +1 -1
  237. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  238. package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
  239. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  240. package/build-module/components/header-edit-mode/document-tools/index.js +152 -0
  241. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -0
  242. package/build-module/components/header-edit-mode/index.js +54 -121
  243. package/build-module/components/header-edit-mode/index.js.map +1 -1
  244. package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
  245. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  246. package/build-module/components/header-edit-mode/more-menu/site-export.js +2 -6
  247. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  248. package/build-module/components/layout/index.js +5 -20
  249. package/build-module/components/layout/index.js.map +1 -1
  250. package/build-module/components/list/added-by.js +45 -56
  251. package/build-module/components/list/added-by.js.map +1 -1
  252. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +11 -15
  253. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  254. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  255. package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  256. package/build-module/components/page-content-focus-notifications/index.js +14 -0
  257. package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
  258. package/build-module/components/page-main/index.js +2 -1
  259. package/build-module/components/page-main/index.js.map +1 -1
  260. package/build-module/components/page-pages/index.js +141 -90
  261. package/build-module/components/page-pages/index.js.map +1 -1
  262. package/build-module/components/page-pages/side-editor.js +17 -0
  263. package/build-module/components/page-pages/side-editor.js.map +1 -0
  264. package/build-module/components/page-patterns/grid-item.js +2 -2
  265. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  266. package/build-module/components/page-patterns/patterns-list.js +4 -4
  267. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  268. package/build-module/components/page-patterns/use-patterns.js +3 -3
  269. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  270. package/build-module/components/page-templates/dataviews-templates.js +308 -0
  271. package/build-module/components/page-templates/dataviews-templates.js.map +1 -0
  272. package/build-module/components/page-templates/template-actions.js +157 -0
  273. package/build-module/components/page-templates/template-actions.js.map +1 -0
  274. package/build-module/components/preferences-modal/index.js +1 -1
  275. package/build-module/components/preferences-modal/index.js.map +1 -1
  276. package/build-module/components/save-button/index.js +11 -8
  277. package/build-module/components/save-button/index.js.map +1 -1
  278. package/build-module/components/save-hub/index.js +14 -0
  279. package/build-module/components/save-hub/index.js.map +1 -1
  280. package/build-module/components/sidebar/index.js +1 -2
  281. package/build-module/components/sidebar/index.js.map +1 -1
  282. package/build-module/components/sidebar-dataviews/add-new-view.js +116 -0
  283. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -0
  284. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +182 -0
  285. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  286. package/build-module/components/sidebar-dataviews/dataview-item.js +63 -0
  287. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -0
  288. package/build-module/components/sidebar-dataviews/default-views.js +57 -0
  289. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -0
  290. package/build-module/components/sidebar-dataviews/index.js +22 -39
  291. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  292. package/build-module/components/sidebar-edit-mode/default-sidebar.js +2 -6
  293. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  294. package/build-module/components/sidebar-edit-mode/index.js +6 -5
  295. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  296. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +20 -31
  297. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  298. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
  299. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  300. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
  301. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  302. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +6 -8
  303. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  304. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +8 -16
  305. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  306. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +5 -13
  307. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  308. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  309. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  310. package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
  311. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  312. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +4 -4
  313. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  314. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  315. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  316. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  317. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  318. package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
  319. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  320. package/build-module/components/sidebar-navigation-screen-page/page-details.js +3 -11
  321. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  322. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  323. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  324. package/build-module/components/site-hub/index.js +19 -7
  325. package/build-module/components/site-hub/index.js.map +1 -1
  326. package/build-module/components/start-template-options/index.js +13 -16
  327. package/build-module/components/start-template-options/index.js.map +1 -1
  328. package/build-module/components/style-book/index.js +22 -12
  329. package/build-module/components/style-book/index.js.map +1 -1
  330. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +150 -56
  331. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  332. package/build-module/components/template-part-converter/convert-to-regular.js +1 -1
  333. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  334. package/build-module/components/welcome-guide/page.js +2 -2
  335. package/build-module/components/welcome-guide/page.js.map +1 -1
  336. package/build-module/components/welcome-guide/template.js +6 -3
  337. package/build-module/components/welcome-guide/template.js.map +1 -1
  338. package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
  339. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  340. package/build-module/hooks/push-changes-to-global-styles/index.js +4 -2
  341. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  342. package/build-module/hooks/template-part-edit.js +6 -2
  343. package/build-module/hooks/template-part-edit.js.map +1 -1
  344. package/build-module/index.js +0 -3
  345. package/build-module/index.js.map +1 -1
  346. package/build-module/store/actions.js +37 -80
  347. package/build-module/store/actions.js.map +1 -1
  348. package/build-module/store/private-actions.js +1 -25
  349. package/build-module/store/private-actions.js.map +1 -1
  350. package/build-module/store/private-selectors.js +0 -22
  351. package/build-module/store/private-selectors.js.map +1 -1
  352. package/build-module/store/reducer.js +1 -38
  353. package/build-module/store/reducer.js.map +1 -1
  354. package/build-module/store/selectors.js +27 -62
  355. package/build-module/store/selectors.js.map +1 -1
  356. package/build-module/utils/constants.js +1 -11
  357. package/build-module/utils/constants.js.map +1 -1
  358. package/build-style/style-rtl.css +221 -181
  359. package/build-style/style.css +221 -181
  360. package/package.json +41 -41
  361. package/src/components/actions/index.js +150 -14
  362. package/src/components/add-new-template/new-template.js +0 -5
  363. package/src/components/block-editor/site-editor-canvas.js +8 -2
  364. package/src/components/block-editor/style.scss +0 -87
  365. package/src/components/block-editor/use-site-editor-settings.js +68 -89
  366. package/src/components/dataviews/README.md +80 -83
  367. package/src/components/dataviews/add-filter.js +108 -0
  368. package/src/components/dataviews/constants.js +5 -0
  369. package/src/components/dataviews/dataviews.js +28 -10
  370. package/src/components/dataviews/filter-summary.js +79 -0
  371. package/src/components/dataviews/filters.js +48 -58
  372. package/src/components/dataviews/index.js +1 -1
  373. package/src/components/dataviews/item-actions.js +169 -30
  374. package/src/components/dataviews/pagination.js +9 -4
  375. package/src/components/dataviews/reset-filters.js +26 -0
  376. package/src/components/dataviews/search.js +1 -0
  377. package/src/components/dataviews/style.scss +89 -9
  378. package/src/components/dataviews/view-actions.js +77 -49
  379. package/src/components/dataviews/view-grid.js +63 -38
  380. package/src/components/dataviews/view-list.js +182 -18
  381. package/src/components/dataviews/view-side-by-side.js +9 -0
  382. package/src/components/editor/index.js +135 -123
  383. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  384. package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
  385. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
  386. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
  387. package/src/components/global-styles/header.js +2 -1
  388. package/src/components/global-styles/screen-block-list.js +37 -26
  389. package/src/components/global-styles/screen-revisions/index.js +91 -35
  390. package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
  391. package/src/components/global-styles/screen-revisions/style.scss +52 -28
  392. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
  393. package/src/components/global-styles/screen-root.js +2 -1
  394. package/src/components/global-styles/style.scss +0 -11
  395. package/src/components/global-styles/ui.js +60 -75
  396. package/src/components/global-styles-renderer/index.js +1 -1
  397. package/src/components/header-edit-mode/document-actions/index.js +20 -18
  398. package/src/components/header-edit-mode/document-tools/index.js +201 -0
  399. package/src/components/header-edit-mode/index.js +87 -184
  400. package/src/components/header-edit-mode/more-menu/index.js +1 -1
  401. package/src/components/header-edit-mode/more-menu/site-export.js +2 -6
  402. package/src/components/header-edit-mode/style.scss +35 -2
  403. package/src/components/layout/index.js +4 -11
  404. package/src/components/layout/style.scss +6 -18
  405. package/src/components/list/added-by.js +24 -64
  406. package/src/components/list/style.scss +11 -13
  407. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +10 -22
  408. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  409. package/src/components/page-content-focus-notifications/index.js +14 -0
  410. package/src/components/page-main/index.js +6 -1
  411. package/src/components/page-pages/index.js +167 -91
  412. package/src/components/page-pages/side-editor.js +14 -0
  413. package/src/components/page-patterns/grid-item.js +3 -3
  414. package/src/components/page-patterns/patterns-list.js +10 -4
  415. package/src/components/page-patterns/use-patterns.js +4 -3
  416. package/src/components/page-templates/dataviews-templates.js +345 -0
  417. package/src/components/page-templates/style.scss +13 -0
  418. package/src/components/page-templates/template-actions.js +209 -0
  419. package/src/components/preferences-modal/index.js +1 -1
  420. package/src/components/save-button/index.js +37 -24
  421. package/src/components/save-hub/index.js +15 -0
  422. package/src/components/save-hub/style.scss +7 -0
  423. package/src/components/sidebar/index.js +1 -2
  424. package/src/components/sidebar-dataviews/add-new-view.js +141 -0
  425. package/src/components/sidebar-dataviews/custom-dataviews-list.js +229 -0
  426. package/src/components/sidebar-dataviews/dataview-item.js +67 -0
  427. package/src/components/sidebar-dataviews/default-views.js +59 -0
  428. package/src/components/sidebar-dataviews/index.js +36 -45
  429. package/src/components/sidebar-dataviews/style.scss +29 -0
  430. package/src/components/sidebar-edit-mode/default-sidebar.js +6 -6
  431. package/src/components/sidebar-edit-mode/index.js +13 -9
  432. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +31 -57
  433. package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
  434. package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
  435. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +10 -8
  436. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +13 -12
  437. package/src/components/sidebar-edit-mode/page-panels/style.scss +14 -19
  438. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +10 -9
  439. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +6 -6
  440. package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
  441. package/src/components/sidebar-edit-mode/template-panel/hooks.js +11 -7
  442. package/src/components/sidebar-navigation-screen/style.scss +1 -0
  443. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  444. package/src/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  445. package/src/components/sidebar-navigation-screen-page/index.js +24 -3
  446. package/src/components/sidebar-navigation-screen-page/page-details.js +4 -17
  447. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  448. package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
  449. package/src/components/site-hub/index.js +9 -8
  450. package/src/components/start-template-options/index.js +14 -12
  451. package/src/components/style-book/index.js +48 -35
  452. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +182 -63
  453. package/src/components/template-part-converter/convert-to-regular.js +1 -1
  454. package/src/components/welcome-guide/page.js +2 -2
  455. package/src/components/welcome-guide/template.js +4 -2
  456. package/src/hooks/commands/use-edit-mode-commands.js +22 -16
  457. package/src/hooks/push-changes-to-global-styles/index.js +13 -6
  458. package/src/hooks/template-part-edit.js +4 -2
  459. package/src/index.js +0 -8
  460. package/src/store/actions.js +42 -96
  461. package/src/store/private-actions.js +1 -24
  462. package/src/store/private-selectors.js +0 -22
  463. package/src/store/reducer.js +0 -39
  464. package/src/store/selectors.js +43 -95
  465. package/src/store/test/actions.js +14 -169
  466. package/src/store/test/reducer.js +0 -62
  467. package/src/store/test/selectors.js +0 -117
  468. package/src/style.scss +2 -0
  469. package/src/utils/constants.js +1 -11
  470. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -77
  471. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  472. package/build/components/block-editor/block-editor-provider/index.js +0 -31
  473. package/build/components/block-editor/block-editor-provider/index.js.map +0 -1
  474. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -110
  475. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  476. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -84
  477. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  478. package/build/components/block-editor/index.js +0 -30
  479. package/build/components/block-editor/index.js.map +0 -1
  480. package/build/components/dataviews/in-filter.js +0 -49
  481. package/build/components/dataviews/in-filter.js.map +0 -1
  482. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  483. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -50
  484. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  485. package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  486. package/build/components/page-content-focus-manager/index.js +0 -61
  487. package/build/components/page-content-focus-manager/index.js.map +0 -1
  488. package/build/components/page-pages/default-views.js +0 -62
  489. package/build/components/page-pages/default-views.js.map +0 -1
  490. package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
  491. package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  492. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -69
  493. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  494. package/build-module/components/block-editor/block-editor-provider/index.js +0 -23
  495. package/build-module/components/block-editor/block-editor-provider/index.js.map +0 -1
  496. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -102
  497. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  498. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -78
  499. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  500. package/build-module/components/block-editor/index.js +0 -22
  501. package/build-module/components/block-editor/index.js.map +0 -1
  502. package/build-module/components/dataviews/in-filter.js +0 -41
  503. package/build-module/components/dataviews/in-filter.js.map +0 -1
  504. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  505. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -43
  506. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  507. package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  508. package/build-module/components/page-content-focus-manager/index.js +0 -52
  509. package/build-module/components/page-content-focus-manager/index.js.map +0 -1
  510. package/build-module/components/page-pages/default-views.js +0 -55
  511. package/build-module/components/page-pages/default-views.js.map +0 -1
  512. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
  513. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  514. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -75
  515. package/src/components/block-editor/block-editor-provider/index.js +0 -29
  516. package/src/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -114
  517. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +0 -116
  518. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -90
  519. package/src/components/block-editor/index.js +0 -28
  520. package/src/components/dataviews/in-filter.js +0 -45
  521. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -52
  522. package/src/components/page-content-focus-manager/index.js +0 -51
  523. package/src/components/page-pages/default-views.js +0 -60
  524. package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
@@ -14,6 +14,7 @@ import {
14
14
  * WordPress dependencies
15
15
  */
16
16
  import { __ } from '@wordpress/i18n';
17
+ import { useAsyncList } from '@wordpress/compose';
17
18
  import {
18
19
  chevronDown,
19
20
  chevronUp,
@@ -21,12 +22,13 @@ import {
21
22
  check,
22
23
  arrowUp,
23
24
  arrowDown,
25
+ chevronRightSmall,
26
+ funnel,
24
27
  } from '@wordpress/icons';
25
28
  import {
26
29
  Button,
27
30
  Icon,
28
31
  privateApis as componentsPrivateApis,
29
- VisuallyHidden,
30
32
  } from '@wordpress/components';
31
33
  import { useMemo, Children, Fragment } from '@wordpress/element';
32
34
 
@@ -35,12 +37,15 @@ import { useMemo, Children, Fragment } from '@wordpress/element';
35
37
  */
36
38
  import { unlock } from '../../lock-unlock';
37
39
  import ItemActions from './item-actions';
40
+ import { ENUMERATION_TYPE, OPERATOR_IN } from './constants';
38
41
 
39
42
  const {
40
- DropdownMenuV2,
41
- DropdownMenuGroupV2,
42
- DropdownMenuItemV2,
43
- DropdownMenuSeparatorV2,
43
+ DropdownMenuV2: DropdownMenu,
44
+ DropdownMenuGroupV2: DropdownMenuGroup,
45
+ DropdownMenuItemV2: DropdownMenuItem,
46
+ DropdownMenuSeparatorV2: DropdownMenuSeparator,
47
+ DropdownSubMenuV2: DropdownSubMenu,
48
+ DropdownSubMenuTriggerV2: DropdownSubMenuTrigger,
44
49
  } = unlock( componentsPrivateApis );
45
50
 
46
51
  const EMPTY_OBJECT = {};
@@ -49,6 +54,7 @@ const sortingItemsInfo = {
49
54
  desc: { icon: arrowDown, label: __( 'Sort descending' ) },
50
55
  };
51
56
  const sortIcons = { asc: chevronUp, desc: chevronDown };
57
+
52
58
  function HeaderMenu( { dataView, header } ) {
53
59
  if ( header.isPlaceholder ) {
54
60
  return null;
@@ -63,8 +69,18 @@ function HeaderMenu( { dataView, header } ) {
63
69
  return text;
64
70
  }
65
71
  const sortedDirection = header.column.getIsSorted();
72
+
73
+ let filter;
74
+ if ( header.column.columnDef.type === ENUMERATION_TYPE ) {
75
+ filter = {
76
+ field: header.column.columnDef.id,
77
+ elements: header.column.columnDef.elements || [],
78
+ };
79
+ }
80
+ const isFilterable = !! filter;
81
+
66
82
  return (
67
- <DropdownMenuV2
83
+ <DropdownMenu
68
84
  align="start"
69
85
  trigger={
70
86
  <Button
@@ -77,10 +93,10 @@ function HeaderMenu( { dataView, header } ) {
77
93
  >
78
94
  <WithSeparators>
79
95
  { isSortable && (
80
- <DropdownMenuGroupV2>
96
+ <DropdownMenuGroup>
81
97
  { Object.entries( sortingItemsInfo ).map(
82
98
  ( [ direction, info ] ) => (
83
- <DropdownMenuItemV2
99
+ <DropdownMenuItem
84
100
  key={ direction }
85
101
  prefix={ <Icon icon={ info.icon } /> }
86
102
  suffix={
@@ -103,13 +119,13 @@ function HeaderMenu( { dataView, header } ) {
103
119
  } }
104
120
  >
105
121
  { info.label }
106
- </DropdownMenuItemV2>
122
+ </DropdownMenuItem>
107
123
  )
108
124
  ) }
109
- </DropdownMenuGroupV2>
125
+ </DropdownMenuGroup>
110
126
  ) }
111
127
  { isHidable && (
112
- <DropdownMenuItemV2
128
+ <DropdownMenuItem
113
129
  prefix={ <Icon icon={ unseen } /> }
114
130
  onSelect={ ( event ) => {
115
131
  event.preventDefault();
@@ -117,10 +133,88 @@ function HeaderMenu( { dataView, header } ) {
117
133
  } }
118
134
  >
119
135
  { __( 'Hide' ) }
120
- </DropdownMenuItemV2>
136
+ </DropdownMenuItem>
137
+ ) }
138
+ { isFilterable && (
139
+ <DropdownMenuGroup>
140
+ <DropdownSubMenu
141
+ key={ filter.field }
142
+ trigger={
143
+ <DropdownSubMenuTrigger
144
+ prefix={ <Icon icon={ funnel } /> }
145
+ suffix={
146
+ <Icon icon={ chevronRightSmall } />
147
+ }
148
+ >
149
+ { __( 'Filter by' ) }
150
+ </DropdownSubMenuTrigger>
151
+ }
152
+ >
153
+ { filter.elements.map( ( element ) => {
154
+ let isActive = false;
155
+ const columnFilters =
156
+ dataView.getState().columnFilters;
157
+ const columnFilter = columnFilters.find(
158
+ ( f ) =>
159
+ Object.keys( f )[ 0 ].split(
160
+ ':'
161
+ )[ 0 ] === filter.field
162
+ );
163
+
164
+ if ( columnFilter ) {
165
+ const value =
166
+ Object.values( columnFilter )[ 0 ];
167
+ // Intentionally use loose comparison, so it does type conversion.
168
+ // This covers the case where a top-level filter for the same field converts a number into a string.
169
+ isActive = element.value == value; // eslint-disable-line eqeqeq
170
+ }
171
+
172
+ return (
173
+ <DropdownMenuItem
174
+ key={ element.value }
175
+ suffix={
176
+ isActive && <Icon icon={ check } />
177
+ }
178
+ onSelect={ () => {
179
+ const otherFilters =
180
+ columnFilters?.filter(
181
+ ( f ) => {
182
+ const [
183
+ field,
184
+ operator,
185
+ ] =
186
+ Object.keys(
187
+ f
188
+ )[ 0 ].split( ':' );
189
+ return (
190
+ field !==
191
+ filter.field ||
192
+ operator !==
193
+ OPERATOR_IN
194
+ );
195
+ }
196
+ );
197
+
198
+ dataView.setColumnFilters( [
199
+ ...otherFilters,
200
+ {
201
+ [ filter.field + ':in' ]:
202
+ isActive
203
+ ? undefined
204
+ : element.value,
205
+ },
206
+ ] );
207
+ } }
208
+ >
209
+ { element.label }
210
+ </DropdownMenuItem>
211
+ );
212
+ } ) }
213
+ </DropdownSubMenu>
214
+ </DropdownMenuGroup>
121
215
  ) }
122
216
  </WithSeparators>
123
- </DropdownMenuV2>
217
+ </DropdownMenu>
124
218
  );
125
219
  }
126
220
 
@@ -129,7 +223,7 @@ function WithSeparators( { children } ) {
129
223
  .filter( Boolean )
130
224
  .map( ( child, i ) => (
131
225
  <Fragment key={ i }>
132
- { i > 0 && <DropdownMenuSeparatorV2 /> }
226
+ { i > 0 && <DropdownMenuSeparator /> }
133
227
  { child }
134
228
  </Fragment>
135
229
  ) );
@@ -141,6 +235,7 @@ function ViewList( {
141
235
  fields,
142
236
  actions,
143
237
  data,
238
+ getItemId,
144
239
  isLoading = false,
145
240
  paginationInfo,
146
241
  } ) {
@@ -156,7 +251,7 @@ function ViewList( {
156
251
  } );
157
252
  if ( actions?.length ) {
158
253
  _columns.push( {
159
- header: <VisuallyHidden>{ __( 'Actions' ) }</VisuallyHidden>,
254
+ header: __( 'Actions' ),
160
255
  id: 'actions',
161
256
  cell: ( props ) => {
162
257
  return (
@@ -186,8 +281,61 @@ function ViewList( {
186
281
  );
187
282
  }, [ view.hiddenFields ] );
188
283
 
284
+ /**
285
+ * Transform the filters from the view format into the tanstack columns filter format.
286
+ *
287
+ * Input:
288
+ *
289
+ * view.filters = [
290
+ * { field: 'date', operator: 'before', value: '2020-01-01' },
291
+ * { field: 'date', operator: 'after', value: '2020-01-01' },
292
+ * ]
293
+ *
294
+ * Output:
295
+ *
296
+ * columnFilters = [
297
+ * { "date:before": '2020-01-01' },
298
+ * { "date:after": '2020-01-01' }
299
+ * ]
300
+ *
301
+ * @param {Array} filters The view filters to transform.
302
+ * @return {Array} The transformed TanStack column filters.
303
+ */
304
+ const toTanStackColumnFilters = ( filters ) =>
305
+ filters?.map( ( filter ) => ( {
306
+ [ filter.field + ':' + filter.operator ]: filter.value,
307
+ } ) );
308
+
309
+ /**
310
+ * Transform the filters from the view format into the tanstack columns filter format.
311
+ *
312
+ * Input:
313
+ *
314
+ * columnFilters = [
315
+ * { "date:before": '2020-01-01'},
316
+ * { "date:after": '2020-01-01' }
317
+ * ]
318
+ *
319
+ * Output:
320
+ *
321
+ * view.filters = [
322
+ * { field: 'date', operator: 'before', value: '2020-01-01' },
323
+ * { field: 'date', operator: 'after', value: '2020-01-01' },
324
+ * ]
325
+ *
326
+ * @param {Array} filters The TanStack column filters to transform.
327
+ * @return {Array} The transformed view filters.
328
+ */
329
+ const fromTanStackColumnFilters = ( filters ) =>
330
+ filters.map( ( filter ) => {
331
+ const [ key, value ] = Object.entries( filter )[ 0 ];
332
+ const [ field, operator ] = key.split( ':' );
333
+ return { field, operator, value };
334
+ } );
335
+
336
+ const shownData = useAsyncList( data );
189
337
  const dataView = useReactTable( {
190
- data,
338
+ data: shownData,
191
339
  columns,
192
340
  manualSorting: true,
193
341
  manualFiltering: true,
@@ -203,12 +351,14 @@ function ViewList( {
203
351
  ]
204
352
  : [],
205
353
  globalFilter: view.search,
354
+ columnFilters: toTanStackColumnFilters( view.filters ),
206
355
  pagination: {
207
356
  pageIndex: view.page,
208
357
  pageSize: view.perPage,
209
358
  },
210
359
  columnVisibility: columnVisibility ?? EMPTY_OBJECT,
211
360
  },
361
+ getRowId: getItemId,
212
362
  onSortingChange: ( sortingUpdater ) => {
213
363
  onChangeView( ( currentView ) => {
214
364
  const sort =
@@ -261,7 +411,14 @@ function ViewList( {
261
411
  } );
262
412
  },
263
413
  onGlobalFilterChange: ( value ) => {
264
- onChangeView( { ...view, search: value, page: 0 } );
414
+ onChangeView( { ...view, search: value, page: 1 } );
415
+ },
416
+ onColumnFiltersChange: ( columnFiltersUpdater ) => {
417
+ onChangeView( {
418
+ ...view,
419
+ filters: fromTanStackColumnFilters( columnFiltersUpdater() ),
420
+ page: 1,
421
+ } );
265
422
  },
266
423
  onPaginationChange: ( paginationUpdater ) => {
267
424
  onChangeView( ( currentView ) => {
@@ -300,10 +457,14 @@ function ViewList( {
300
457
  width:
301
458
  header.column.columnDef.width ||
302
459
  undefined,
460
+ minWidth:
461
+ header.column.columnDef
462
+ .minWidth || undefined,
303
463
  maxWidth:
304
464
  header.column.columnDef
305
465
  .maxWidth || undefined,
306
466
  } }
467
+ data-field-id={ header.id }
307
468
  >
308
469
  <HeaderMenu
309
470
  dataView={ dataView }
@@ -319,11 +480,14 @@ function ViewList( {
319
480
  <tr key={ row.id }>
320
481
  { row.getVisibleCells().map( ( cell ) => (
321
482
  <td
322
- key={ cell.id }
483
+ key={ cell.column.id }
323
484
  style={ {
324
485
  width:
325
486
  cell.column.columnDef.width ||
326
487
  undefined,
488
+ minWidth:
489
+ cell.column.columnDef
490
+ .minWidth || undefined,
327
491
  maxWidth:
328
492
  cell.column.columnDef
329
493
  .maxWidth || undefined,
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import ViewList from './view-list';
5
+
6
+ export function ViewSideBySide( props ) {
7
+ // To do: change to email-like preview list.
8
+ return <ViewList { ...props } />;
9
+ }
@@ -6,31 +6,38 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { useMemo } from '@wordpress/element';
10
9
  import { useSelect, useDispatch } from '@wordpress/data';
11
10
  import { Notice } from '@wordpress/components';
12
11
  import { useInstanceId } from '@wordpress/compose';
13
- import { EntityProvider } from '@wordpress/core-data';
14
12
  import { store as preferencesStore } from '@wordpress/preferences';
15
13
  import {
16
- BlockContextProvider,
17
14
  BlockBreadcrumb,
18
15
  store as blockEditorStore,
19
16
  privateApis as blockEditorPrivateApis,
17
+ BlockInspector,
20
18
  } from '@wordpress/block-editor';
21
19
  import {
22
20
  InterfaceSkeleton,
23
21
  ComplementaryArea,
24
22
  store as interfaceStore,
25
23
  } from '@wordpress/interface';
26
- import { EditorNotices, EditorSnackbars } from '@wordpress/editor';
24
+ import {
25
+ EditorNotices,
26
+ EditorSnackbars,
27
+ privateApis as editorPrivateApis,
28
+ store as editorStore,
29
+ } from '@wordpress/editor';
27
30
  import { __, sprintf } from '@wordpress/i18n';
31
+ import { store as coreDataStore } from '@wordpress/core-data';
32
+ import { useEffect } from '@wordpress/element';
28
33
 
29
34
  /**
30
35
  * Internal dependencies
31
36
  */
32
- import { SidebarComplementaryAreaFills } from '../sidebar-edit-mode';
33
- import BlockEditor from '../block-editor';
37
+ import {
38
+ SidebarComplementaryAreaFills,
39
+ SidebarInspectorFill,
40
+ } from '../sidebar-edit-mode';
34
41
  import CodeEditor from '../code-editor';
35
42
  import KeyboardShortcutsEditMode from '../keyboard-shortcuts/edit-mode';
36
43
  import InserterSidebar from '../secondary-sidebar/inserter-sidebar';
@@ -46,8 +53,13 @@ import useEditedEntityRecord from '../use-edited-entity-record';
46
53
  import { SidebarFixedBottomSlot } from '../sidebar-edit-mode/sidebar-fixed-bottom';
47
54
  import PatternModal from '../pattern-modal';
48
55
  import { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';
56
+ import SiteEditorCanvas from '../block-editor/site-editor-canvas';
57
+ import TemplatePartConverter from '../template-part-converter';
58
+ import { useSpecificEditorSettings } from '../block-editor/use-site-editor-settings';
49
59
 
50
60
  const { BlockRemovalWarningModal } = unlock( blockEditorPrivateApis );
61
+ const { ExperimentalEditorProvider: EditorProvider } =
62
+ unlock( editorPrivateApis );
51
63
 
52
64
  const interfaceLabels = {
53
65
  /* translators: accessibility text for the editor content landmark region. */
@@ -79,19 +91,20 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
79
91
  isLoaded: hasLoadedPost,
80
92
  } = useEditedEntityRecord();
81
93
 
82
- const { id: editedPostId, type: editedPostType } = editedPost;
94
+ const { type: editedPostType } = editedPost;
83
95
 
84
96
  const {
85
97
  context,
98
+ contextPost,
86
99
  editorMode,
87
100
  canvasMode,
101
+ renderingMode,
88
102
  blockEditorMode,
89
103
  isRightSidebarOpen,
90
104
  isInserterOpen,
91
105
  isListViewOpen,
92
106
  showIconLabels,
93
107
  showBlockBreadcrumbs,
94
- hasPageContentFocus,
95
108
  } = useSelect( ( select ) => {
96
109
  const {
97
110
  getEditedPostContext,
@@ -99,17 +112,27 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
99
112
  getCanvasMode,
100
113
  isInserterOpened,
101
114
  isListViewOpened,
102
- hasPageContentFocus: _hasPageContentFocus,
103
115
  } = unlock( select( editSiteStore ) );
104
116
  const { __unstableGetEditorMode } = select( blockEditorStore );
105
117
  const { getActiveComplementaryArea } = select( interfaceStore );
118
+ const { getEntityRecord } = select( coreDataStore );
119
+ const { getRenderingMode } = select( editorStore );
120
+ const _context = getEditedPostContext();
106
121
 
107
122
  // The currently selected entity to display.
108
123
  // Typically template or template part in the site editor.
109
124
  return {
110
- context: getEditedPostContext(),
125
+ context: _context,
126
+ contextPost: _context?.postId
127
+ ? getEntityRecord(
128
+ 'postType',
129
+ _context.postType,
130
+ _context.postId
131
+ )
132
+ : undefined,
111
133
  editorMode: getEditorMode(),
112
134
  canvasMode: getCanvasMode(),
135
+ renderingMode: getRenderingMode(),
113
136
  blockEditorMode: __unstableGetEditorMode(),
114
137
  isInserterOpen: isInserterOpened(),
115
138
  isListViewOpen: isListViewOpened(),
@@ -124,10 +147,9 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
124
147
  'core/edit-site',
125
148
  'showBlockBreadcrumbs'
126
149
  ),
127
- hasPageContentFocus: _hasPageContentFocus(),
128
150
  };
129
151
  }, [] );
130
- const { setEditedPostContext } = useDispatch( editSiteStore );
152
+ const { setRenderingMode } = useDispatch( editorStore );
131
153
 
132
154
  const isViewMode = canvasMode === 'view';
133
155
  const isEditMode = canvasMode === 'edit';
@@ -142,23 +164,7 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
142
164
  const secondarySidebarLabel = isListViewOpen
143
165
  ? __( 'List View' )
144
166
  : __( 'Block Library' );
145
- const blockContext = useMemo( () => {
146
- const { postType, postId, ...nonPostFields } = context ?? {};
147
- return {
148
- ...( hasPageContentFocus ? context : nonPostFields ),
149
- queryContext: [
150
- context?.queryContext || { page: 1 },
151
- ( newQueryContext ) =>
152
- setEditedPostContext( {
153
- ...context,
154
- queryContext: {
155
- ...context?.queryContext,
156
- ...newQueryContext,
157
- },
158
- } ),
159
- ],
160
- };
161
- }, [ hasPageContentFocus, context, setEditedPostContext ] );
167
+ const postWithTemplate = !! context?.postId;
162
168
 
163
169
  let title;
164
170
  if ( hasLoadedPost ) {
@@ -180,110 +186,116 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
180
186
  'edit-site-editor__loading-progress'
181
187
  );
182
188
 
183
- const contentProps = isLoading
184
- ? {
185
- 'aria-busy': 'true',
186
- 'aria-describedby': loadingProgressId,
187
- }
188
- : undefined;
189
+ const settings = useSpecificEditorSettings();
190
+ const isReady =
191
+ ! isLoading &&
192
+ ( ( postWithTemplate && !! contextPost && !! editedPost ) ||
193
+ ( ! postWithTemplate && !! editedPost ) );
194
+
195
+ // This is the only reliable way I've found to reinitialize the rendering mode
196
+ // when the canvas mode or the edited entity changes.
197
+ useEffect( () => {
198
+ if ( canvasMode === 'edit' && postWithTemplate ) {
199
+ setRenderingMode( 'template-locked' );
200
+ } else {
201
+ setRenderingMode( 'all' );
202
+ }
203
+ }, [ canvasMode, postWithTemplate, setRenderingMode ] );
189
204
 
190
205
  return (
191
206
  <>
192
- { isLoading ? <CanvasLoader id={ loadingProgressId } /> : null }
207
+ { ! isReady ? <CanvasLoader id={ loadingProgressId } /> : null }
193
208
  { isEditMode && <WelcomeGuide /> }
194
- <EntityProvider kind="root" type="site">
195
- <EntityProvider
196
- kind="postType"
197
- type={ editedPostType }
198
- id={ editedPostId }
209
+ { hasLoadedPost && ! editedPost && (
210
+ <Notice status="warning" isDismissible={ false }>
211
+ { __(
212
+ "You attempted to edit an item that doesn't exist. Perhaps it was deleted?"
213
+ ) }
214
+ </Notice>
215
+ ) }
216
+ { isReady && (
217
+ <EditorProvider
218
+ post={ postWithTemplate ? contextPost : editedPost }
219
+ __unstableTemplate={
220
+ postWithTemplate ? editedPost : undefined
221
+ }
222
+ settings={ settings }
223
+ useSubRegistry={ false }
199
224
  >
200
- <BlockContextProvider value={ blockContext }>
201
- <SidebarComplementaryAreaFills />
202
- { isEditMode && <StartTemplateOptions /> }
203
- <InterfaceSkeleton
204
- isDistractionFree={ true }
205
- enableRegionNavigation={ false }
206
- className={ classnames(
207
- 'edit-site-editor__interface-skeleton',
208
- {
209
- 'show-icon-labels': showIconLabels,
210
- 'is-loading': isLoading,
211
- }
212
- ) }
213
- notices={ <EditorSnackbars /> }
214
- content={
215
- <>
216
- <GlobalStylesRenderer />
217
- { isEditMode && <EditorNotices /> }
218
- { showVisualEditor && editedPost && (
219
- <>
220
- <BlockEditor />
221
- <BlockRemovalWarningModal
222
- rules={ blockRemovalRules }
223
- />
224
- <PatternModal />
225
- </>
226
- ) }
227
- { editorMode === 'text' &&
228
- editedPost &&
229
- isEditMode && <CodeEditor /> }
230
- { hasLoadedPost && ! editedPost && (
231
- <Notice
232
- status="warning"
233
- isDismissible={ false }
234
- >
235
- { __(
236
- "You attempted to edit an item that doesn't exist. Perhaps it was deleted?"
237
- ) }
238
- </Notice>
239
- ) }
240
- { isEditMode && (
241
- <KeyboardShortcutsEditMode />
242
- ) }
243
- </>
225
+ <SidebarComplementaryAreaFills />
226
+ { isEditMode && <StartTemplateOptions /> }
227
+ <InterfaceSkeleton
228
+ isDistractionFree={ true }
229
+ enableRegionNavigation={ false }
230
+ className={ classnames(
231
+ 'edit-site-editor__interface-skeleton',
232
+ {
233
+ 'show-icon-labels': showIconLabels,
244
234
  }
245
- contentProps={ contentProps }
246
- secondarySidebar={
247
- isEditMode &&
248
- ( ( shouldShowInserter && (
249
- <InserterSidebar />
250
- ) ) ||
251
- ( shouldShowListView && (
252
- <ListViewSidebar
253
- listViewToggleElement={
254
- listViewToggleElement
255
- }
256
- />
257
- ) ) )
258
- }
259
- sidebar={
260
- isEditMode &&
261
- isRightSidebarOpen && (
235
+ ) }
236
+ notices={ <EditorSnackbars /> }
237
+ content={
238
+ <>
239
+ <GlobalStylesRenderer />
240
+ { isEditMode && <EditorNotices /> }
241
+ { showVisualEditor && (
262
242
  <>
263
- <ComplementaryArea.Slot scope="core/edit-site" />
264
- <SidebarFixedBottomSlot />
243
+ <TemplatePartConverter />
244
+ <SidebarInspectorFill>
245
+ <BlockInspector />
246
+ </SidebarInspectorFill>
247
+ <SiteEditorCanvas />
248
+ <BlockRemovalWarningModal
249
+ rules={ blockRemovalRules }
250
+ />
251
+ <PatternModal />
265
252
  </>
266
- )
267
- }
268
- footer={
269
- shouldShowBlockBreadcrumbs && (
270
- <BlockBreadcrumb
271
- rootLabelText={
272
- hasPageContentFocus
273
- ? __( 'Page' )
274
- : __( 'Template' )
253
+ ) }
254
+ { editorMode === 'text' && isEditMode && (
255
+ <CodeEditor />
256
+ ) }
257
+ { isEditMode && <KeyboardShortcutsEditMode /> }
258
+ </>
259
+ }
260
+ secondarySidebar={
261
+ isEditMode &&
262
+ ( ( shouldShowInserter && <InserterSidebar /> ) ||
263
+ ( shouldShowListView && (
264
+ <ListViewSidebar
265
+ listViewToggleElement={
266
+ listViewToggleElement
275
267
  }
276
268
  />
277
- )
278
- }
279
- labels={ {
280
- ...interfaceLabels,
281
- secondarySidebar: secondarySidebarLabel,
282
- } }
283
- />
284
- </BlockContextProvider>
285
- </EntityProvider>
286
- </EntityProvider>
269
+ ) ) )
270
+ }
271
+ sidebar={
272
+ isEditMode &&
273
+ isRightSidebarOpen && (
274
+ <>
275
+ <ComplementaryArea.Slot scope="core/edit-site" />
276
+ <SidebarFixedBottomSlot />
277
+ </>
278
+ )
279
+ }
280
+ footer={
281
+ shouldShowBlockBreadcrumbs && (
282
+ <BlockBreadcrumb
283
+ rootLabelText={
284
+ postWithTemplate &&
285
+ renderingMode !== 'template-only'
286
+ ? __( 'Page' )
287
+ : __( 'Template' )
288
+ }
289
+ />
290
+ )
291
+ }
292
+ labels={ {
293
+ ...interfaceLabels,
294
+ secondarySidebar: secondarySidebarLabel,
295
+ } }
296
+ />
297
+ </EditorProvider>
298
+ ) }
287
299
  </>
288
300
  );
289
301
  }