@wordpress/edit-site 5.22.0 → 5.23.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 (355) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +86 -4
  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/use-site-editor-settings.js +54 -63
  7. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  8. package/build/components/dataviews/add-filter.js +90 -0
  9. package/build/components/dataviews/add-filter.js.map +1 -0
  10. package/build/components/dataviews/dataviews.js +23 -4
  11. package/build/components/dataviews/dataviews.js.map +1 -1
  12. package/build/components/dataviews/filters.js +36 -32
  13. package/build/components/dataviews/filters.js.map +1 -1
  14. package/build/components/dataviews/in-filter.js +22 -20
  15. package/build/components/dataviews/in-filter.js.map +1 -1
  16. package/build/components/dataviews/index.js +9 -2
  17. package/build/components/dataviews/index.js.map +1 -1
  18. package/build/components/dataviews/item-actions.js +81 -13
  19. package/build/components/dataviews/item-actions.js.map +1 -1
  20. package/build/components/dataviews/pagination.js +3 -2
  21. package/build/components/dataviews/pagination.js.map +1 -1
  22. package/build/components/dataviews/reset-filters.js +33 -0
  23. package/build/components/dataviews/reset-filters.js.map +1 -0
  24. package/build/components/dataviews/search.js +1 -0
  25. package/build/components/dataviews/search.js.map +1 -1
  26. package/build/components/dataviews/view-actions.js +27 -10
  27. package/build/components/dataviews/view-actions.js.map +1 -1
  28. package/build/components/dataviews/view-list.js +126 -5
  29. package/build/components/dataviews/view-list.js.map +1 -1
  30. package/build/components/dataviews/view-side-by-side.js +20 -0
  31. package/build/components/dataviews/view-side-by-side.js.map +1 -0
  32. package/build/components/editor/index.js +53 -53
  33. package/build/components/editor/index.js.map +1 -1
  34. package/build/components/global-styles/screen-revisions/index.js +42 -21
  35. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  36. package/build/components/global-styles/screen-root.js +3 -3
  37. package/build/components/global-styles/screen-root.js.map +1 -1
  38. package/build/components/global-styles/ui.js +3 -3
  39. package/build/components/global-styles/ui.js.map +1 -1
  40. package/build/components/global-styles-renderer/index.js +1 -1
  41. package/build/components/global-styles-renderer/index.js.map +1 -1
  42. package/build/components/header-edit-mode/document-tools/index.js +160 -0
  43. package/build/components/header-edit-mode/document-tools/index.js.map +1 -0
  44. package/build/components/header-edit-mode/index.js +48 -116
  45. package/build/components/header-edit-mode/index.js.map +1 -1
  46. package/build/components/header-edit-mode/more-menu/site-export.js +2 -6
  47. package/build/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  48. package/build/components/layout/index.js +4 -19
  49. package/build/components/layout/index.js.map +1 -1
  50. package/build/components/list/added-by.js +1 -0
  51. package/build/components/list/added-by.js.map +1 -1
  52. package/build/components/page-content-focus-manager/back-to-page-notification.js +5 -10
  53. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +1 -1
  54. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +36 -23
  55. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  56. package/build/components/page-main/index.js +2 -1
  57. package/build/components/page-main/index.js.map +1 -1
  58. package/build/components/page-pages/index.js +133 -78
  59. package/build/components/page-pages/index.js.map +1 -1
  60. package/build/components/page-pages/side-editor.js +25 -0
  61. package/build/components/page-pages/side-editor.js.map +1 -0
  62. package/build/components/page-patterns/grid-item.js +2 -2
  63. package/build/components/page-patterns/grid-item.js.map +1 -1
  64. package/build/components/page-patterns/patterns-list.js +3 -3
  65. package/build/components/page-patterns/patterns-list.js.map +1 -1
  66. package/build/components/page-patterns/use-patterns.js +1 -1
  67. package/build/components/page-patterns/use-patterns.js.map +1 -1
  68. package/build/components/page-templates/dataviews-templates.js +201 -0
  69. package/build/components/page-templates/dataviews-templates.js.map +1 -0
  70. package/build/components/page-templates/template-actions.js +168 -0
  71. package/build/components/page-templates/template-actions.js.map +1 -0
  72. package/build/components/sidebar/index.js +1 -2
  73. package/build/components/sidebar/index.js.map +1 -1
  74. package/build/components/sidebar-dataviews/add-new-view.js +124 -0
  75. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -0
  76. package/build/components/sidebar-dataviews/custom-dataviews-list.js +189 -0
  77. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  78. package/build/components/sidebar-dataviews/dataview-item.js +71 -0
  79. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -0
  80. package/build/components/sidebar-dataviews/default-views.js +60 -0
  81. package/build/components/sidebar-dataviews/default-views.js.map +1 -0
  82. package/build/components/sidebar-dataviews/index.js +21 -38
  83. package/build/components/sidebar-dataviews/index.js.map +1 -1
  84. package/build/components/sidebar-edit-mode/default-sidebar.js +2 -6
  85. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  86. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +11 -11
  87. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  88. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  89. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  90. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +4 -12
  91. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  92. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +4 -12
  93. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  94. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  95. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  96. package/build/components/sidebar-edit-mode/template-panel/hooks.js +3 -3
  97. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  98. package/build/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  99. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  100. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  101. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  102. package/build/components/sidebar-navigation-screen-page/page-details.js +3 -11
  103. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  104. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  105. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  106. package/build/components/site-hub/index.js +18 -6
  107. package/build/components/site-hub/index.js.map +1 -1
  108. package/build/components/start-template-options/index.js +12 -16
  109. package/build/components/start-template-options/index.js.map +1 -1
  110. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +112 -49
  111. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  112. package/build/components/template-part-converter/convert-to-regular.js +1 -1
  113. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  114. package/build/hooks/push-changes-to-global-styles/index.js +3 -1
  115. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  116. package/build/hooks/template-part-edit.js +6 -2
  117. package/build/hooks/template-part-edit.js.map +1 -1
  118. package/build/index.js +0 -3
  119. package/build/index.js.map +1 -1
  120. package/build/store/actions.js +35 -82
  121. package/build/store/actions.js.map +1 -1
  122. package/build/store/selectors.js +25 -63
  123. package/build/store/selectors.js.map +1 -1
  124. package/build/utils/constants.js +3 -3
  125. package/build/utils/constants.js.map +1 -1
  126. package/build-module/components/actions/index.js +85 -5
  127. package/build-module/components/actions/index.js.map +1 -1
  128. package/build-module/components/add-new-template/new-template.js +0 -7
  129. package/build-module/components/add-new-template/new-template.js.map +1 -1
  130. package/build-module/components/block-editor/use-site-editor-settings.js +54 -62
  131. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  132. package/build-module/components/dataviews/add-filter.js +83 -0
  133. package/build-module/components/dataviews/add-filter.js.map +1 -0
  134. package/build-module/components/dataviews/dataviews.js +22 -4
  135. package/build-module/components/dataviews/dataviews.js.map +1 -1
  136. package/build-module/components/dataviews/filters.js +34 -32
  137. package/build-module/components/dataviews/filters.js.map +1 -1
  138. package/build-module/components/dataviews/in-filter.js +20 -19
  139. package/build-module/components/dataviews/in-filter.js.map +1 -1
  140. package/build-module/components/dataviews/index.js +1 -1
  141. package/build-module/components/dataviews/index.js.map +1 -1
  142. package/build-module/components/dataviews/item-actions.js +84 -16
  143. package/build-module/components/dataviews/item-actions.js.map +1 -1
  144. package/build-module/components/dataviews/pagination.js +3 -2
  145. package/build-module/components/dataviews/pagination.js.map +1 -1
  146. package/build-module/components/dataviews/reset-filters.js +26 -0
  147. package/build-module/components/dataviews/reset-filters.js.map +1 -0
  148. package/build-module/components/dataviews/search.js +1 -0
  149. package/build-module/components/dataviews/search.js.map +1 -1
  150. package/build-module/components/dataviews/view-actions.js +28 -11
  151. package/build-module/components/dataviews/view-actions.js.map +1 -1
  152. package/build-module/components/dataviews/view-list.js +128 -7
  153. package/build-module/components/dataviews/view-list.js.map +1 -1
  154. package/build-module/components/dataviews/view-side-by-side.js +12 -0
  155. package/build-module/components/dataviews/view-side-by-side.js.map +1 -0
  156. package/build-module/components/editor/index.js +57 -57
  157. package/build-module/components/editor/index.js.map +1 -1
  158. package/build-module/components/global-styles/screen-revisions/index.js +42 -21
  159. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  160. package/build-module/components/global-styles/screen-root.js +3 -3
  161. package/build-module/components/global-styles/screen-root.js.map +1 -1
  162. package/build-module/components/global-styles/ui.js +3 -3
  163. package/build-module/components/global-styles/ui.js.map +1 -1
  164. package/build-module/components/global-styles-renderer/index.js +1 -1
  165. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  166. package/build-module/components/header-edit-mode/document-tools/index.js +152 -0
  167. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -0
  168. package/build-module/components/header-edit-mode/index.js +52 -120
  169. package/build-module/components/header-edit-mode/index.js.map +1 -1
  170. package/build-module/components/header-edit-mode/more-menu/site-export.js +2 -6
  171. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  172. package/build-module/components/layout/index.js +5 -20
  173. package/build-module/components/layout/index.js.map +1 -1
  174. package/build-module/components/list/added-by.js +1 -1
  175. package/build-module/components/list/added-by.js.map +1 -1
  176. package/build-module/components/page-content-focus-manager/back-to-page-notification.js +5 -10
  177. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +1 -1
  178. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +36 -23
  179. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  180. package/build-module/components/page-main/index.js +2 -1
  181. package/build-module/components/page-main/index.js.map +1 -1
  182. package/build-module/components/page-pages/index.js +137 -80
  183. package/build-module/components/page-pages/index.js.map +1 -1
  184. package/build-module/components/page-pages/side-editor.js +17 -0
  185. package/build-module/components/page-pages/side-editor.js.map +1 -0
  186. package/build-module/components/page-patterns/grid-item.js +2 -2
  187. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  188. package/build-module/components/page-patterns/patterns-list.js +4 -4
  189. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  190. package/build-module/components/page-patterns/use-patterns.js +2 -2
  191. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  192. package/build-module/components/page-templates/dataviews-templates.js +193 -0
  193. package/build-module/components/page-templates/dataviews-templates.js.map +1 -0
  194. package/build-module/components/page-templates/template-actions.js +157 -0
  195. package/build-module/components/page-templates/template-actions.js.map +1 -0
  196. package/build-module/components/sidebar/index.js +1 -2
  197. package/build-module/components/sidebar/index.js.map +1 -1
  198. package/build-module/components/sidebar-dataviews/add-new-view.js +116 -0
  199. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -0
  200. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +180 -0
  201. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  202. package/build-module/components/sidebar-dataviews/dataview-item.js +63 -0
  203. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -0
  204. package/build-module/components/sidebar-dataviews/default-views.js +52 -0
  205. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -0
  206. package/build-module/components/sidebar-dataviews/index.js +22 -39
  207. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  208. package/build-module/components/sidebar-edit-mode/default-sidebar.js +2 -6
  209. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  210. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +12 -12
  211. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  212. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +3 -1
  213. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  214. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +5 -13
  215. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  216. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +5 -13
  217. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  218. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  219. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  220. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +4 -4
  221. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  222. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  223. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  224. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  225. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  226. package/build-module/components/sidebar-navigation-screen-page/page-details.js +3 -11
  227. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  228. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  229. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  230. package/build-module/components/site-hub/index.js +19 -7
  231. package/build-module/components/site-hub/index.js.map +1 -1
  232. package/build-module/components/start-template-options/index.js +13 -16
  233. package/build-module/components/start-template-options/index.js.map +1 -1
  234. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +112 -50
  235. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  236. package/build-module/components/template-part-converter/convert-to-regular.js +1 -1
  237. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  238. package/build-module/hooks/push-changes-to-global-styles/index.js +4 -2
  239. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  240. package/build-module/hooks/template-part-edit.js +6 -2
  241. package/build-module/hooks/template-part-edit.js.map +1 -1
  242. package/build-module/index.js +0 -3
  243. package/build-module/index.js.map +1 -1
  244. package/build-module/store/actions.js +33 -79
  245. package/build-module/store/actions.js.map +1 -1
  246. package/build-module/store/selectors.js +19 -58
  247. package/build-module/store/selectors.js.map +1 -1
  248. package/build-module/utils/constants.js +1 -1
  249. package/build-module/utils/constants.js.map +1 -1
  250. package/build-style/style-rtl.css +69 -119
  251. package/build-style/style.css +69 -119
  252. package/package.json +41 -41
  253. package/src/components/actions/index.js +113 -5
  254. package/src/components/add-new-template/new-template.js +0 -5
  255. package/src/components/block-editor/style.scss +0 -87
  256. package/src/components/block-editor/use-site-editor-settings.js +68 -89
  257. package/src/components/dataviews/README.md +77 -83
  258. package/src/components/dataviews/add-filter.js +111 -0
  259. package/src/components/dataviews/dataviews.js +20 -2
  260. package/src/components/dataviews/filters.js +56 -49
  261. package/src/components/dataviews/in-filter.js +35 -17
  262. package/src/components/dataviews/index.js +1 -1
  263. package/src/components/dataviews/item-actions.js +95 -20
  264. package/src/components/dataviews/pagination.js +5 -4
  265. package/src/components/dataviews/reset-filters.js +26 -0
  266. package/src/components/dataviews/search.js +1 -0
  267. package/src/components/dataviews/style.scss +5 -1
  268. package/src/components/dataviews/view-actions.js +39 -9
  269. package/src/components/dataviews/view-list.js +174 -3
  270. package/src/components/dataviews/view-side-by-side.js +9 -0
  271. package/src/components/editor/index.js +149 -121
  272. package/src/components/global-styles/screen-revisions/index.js +52 -25
  273. package/src/components/global-styles/screen-root.js +2 -1
  274. package/src/components/global-styles/ui.js +1 -1
  275. package/src/components/global-styles-renderer/index.js +1 -1
  276. package/src/components/header-edit-mode/document-tools/index.js +201 -0
  277. package/src/components/header-edit-mode/index.js +86 -184
  278. package/src/components/header-edit-mode/more-menu/site-export.js +2 -6
  279. package/src/components/header-edit-mode/style.scss +35 -2
  280. package/src/components/layout/index.js +4 -11
  281. package/src/components/layout/style.scss +6 -18
  282. package/src/components/list/added-by.js +1 -1
  283. package/src/components/page-content-focus-manager/back-to-page-notification.js +4 -15
  284. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +38 -33
  285. package/src/components/page-main/index.js +6 -1
  286. package/src/components/page-pages/index.js +162 -81
  287. package/src/components/page-pages/side-editor.js +14 -0
  288. package/src/components/page-patterns/grid-item.js +3 -3
  289. package/src/components/page-patterns/patterns-list.js +10 -4
  290. package/src/components/page-patterns/use-patterns.js +3 -2
  291. package/src/components/page-templates/dataviews-templates.js +224 -0
  292. package/src/components/page-templates/template-actions.js +209 -0
  293. package/src/components/sidebar/index.js +1 -2
  294. package/src/components/sidebar-dataviews/add-new-view.js +141 -0
  295. package/src/components/sidebar-dataviews/custom-dataviews-list.js +227 -0
  296. package/src/components/sidebar-dataviews/dataview-item.js +67 -0
  297. package/src/components/sidebar-dataviews/default-views.js +54 -0
  298. package/src/components/sidebar-dataviews/index.js +36 -45
  299. package/src/components/sidebar-dataviews/style.scss +22 -0
  300. package/src/components/sidebar-edit-mode/default-sidebar.js +6 -6
  301. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +14 -21
  302. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +3 -0
  303. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +10 -9
  304. package/src/components/sidebar-edit-mode/page-panels/style.scss +5 -0
  305. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +10 -9
  306. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +6 -6
  307. package/src/components/sidebar-edit-mode/template-panel/hooks.js +11 -7
  308. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  309. package/src/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  310. package/src/components/sidebar-navigation-screen-page/page-details.js +4 -17
  311. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  312. package/src/components/site-hub/index.js +9 -8
  313. package/src/components/start-template-options/index.js +14 -12
  314. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +117 -50
  315. package/src/components/template-part-converter/convert-to-regular.js +1 -1
  316. package/src/hooks/push-changes-to-global-styles/index.js +13 -6
  317. package/src/hooks/template-part-edit.js +4 -2
  318. package/src/index.js +0 -8
  319. package/src/store/actions.js +37 -95
  320. package/src/store/selectors.js +31 -91
  321. package/src/store/test/actions.js +11 -137
  322. package/src/store/test/selectors.js +0 -82
  323. package/src/style.scss +1 -0
  324. package/src/utils/constants.js +1 -1
  325. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -77
  326. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  327. package/build/components/block-editor/block-editor-provider/index.js +0 -31
  328. package/build/components/block-editor/block-editor-provider/index.js.map +0 -1
  329. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -110
  330. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  331. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -84
  332. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  333. package/build/components/block-editor/index.js +0 -30
  334. package/build/components/block-editor/index.js.map +0 -1
  335. package/build/components/page-pages/default-views.js +0 -62
  336. package/build/components/page-pages/default-views.js.map +0 -1
  337. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -69
  338. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  339. package/build-module/components/block-editor/block-editor-provider/index.js +0 -23
  340. package/build-module/components/block-editor/block-editor-provider/index.js.map +0 -1
  341. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -102
  342. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  343. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -78
  344. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  345. package/build-module/components/block-editor/index.js +0 -22
  346. package/build-module/components/block-editor/index.js.map +0 -1
  347. package/build-module/components/page-pages/default-views.js +0 -55
  348. package/build-module/components/page-pages/default-views.js.map +0 -1
  349. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -75
  350. package/src/components/block-editor/block-editor-provider/index.js +0 -29
  351. package/src/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -114
  352. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +0 -116
  353. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -90
  354. package/src/components/block-editor/index.js +0 -28
  355. package/src/components/page-pages/default-views.js +0 -60
@@ -4,12 +4,16 @@
4
4
  import { useDispatch, useSelect } from '@wordpress/data';
5
5
  import { useMemo } from '@wordpress/element';
6
6
  import { store as coreStore } from '@wordpress/core-data';
7
+ import { privateApis as editorPrivateApis } from '@wordpress/editor';
8
+ import { store as preferencesStore } from '@wordpress/preferences';
9
+
7
10
  /**
8
11
  * Internal dependencies
9
12
  */
10
13
  import { store as editSiteStore } from '../../store';
11
14
  import { unlock } from '../../lock-unlock';
12
- import inserterMediaCategories from './inserter-media-categories';
15
+
16
+ const { useBlockEditorSettings } = unlock( editorPrivateApis );
13
17
 
14
18
  function useArchiveLabel( templateSlug ) {
15
19
  const taxonomyMatches = templateSlug?.match(
@@ -83,42 +87,25 @@ function useArchiveLabel( templateSlug ) {
83
87
  );
84
88
  }
85
89
 
86
- export default function useSiteEditorSettings() {
90
+ export function useSpecificEditorSettings() {
87
91
  const { setIsInserterOpened } = useDispatch( editSiteStore );
88
- const { storedSettings, canvasMode, templateType, siteSettings } =
89
- useSelect(
90
- ( select ) => {
91
- const { canUser, getEntityRecord } = select( coreStore );
92
- const { getSettings, getCanvasMode, getEditedPostType } =
93
- unlock( select( editSiteStore ) );
94
- return {
95
- storedSettings: getSettings( setIsInserterOpened ),
96
- canvasMode: getCanvasMode(),
97
- templateType: getEditedPostType(),
98
- siteSettings: canUser( 'read', 'settings' )
99
- ? getEntityRecord( 'root', 'site' )
100
- : undefined,
101
- };
102
- },
103
- [ setIsInserterOpened ]
104
- );
105
-
106
- const settingsBlockPatterns =
107
- storedSettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0
108
- storedSettings.__experimentalBlockPatterns; // WP 5.9
109
- const settingsBlockPatternCategories =
110
- storedSettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0
111
- storedSettings.__experimentalBlockPatternCategories; // WP 5.9
112
-
113
92
  const {
114
- restBlockPatterns,
115
- restBlockPatternCategories,
116
93
  templateSlug,
117
- userPatternCategories,
94
+ focusMode,
95
+ isDistractionFree,
96
+ hasFixedToolbar,
97
+ keepCaretInsideBlock,
98
+ canvasMode,
99
+ settings,
118
100
  } = useSelect( ( select ) => {
119
- const { getEditedPostType, getEditedPostId } = select( editSiteStore );
120
- const { getEditedEntityRecord, getUserPatternCategories } =
121
- select( coreStore );
101
+ const {
102
+ getEditedPostType,
103
+ getEditedPostId,
104
+ getCanvasMode,
105
+ getSettings,
106
+ } = unlock( select( editSiteStore ) );
107
+ const { get: getPreference } = select( preferencesStore );
108
+ const { getEditedEntityRecord } = select( coreStore );
122
109
  const usedPostType = getEditedPostType();
123
110
  const usedPostId = getEditedPostId();
124
111
  const _record = getEditedEntityRecord(
@@ -127,75 +114,67 @@ export default function useSiteEditorSettings() {
127
114
  usedPostId
128
115
  );
129
116
  return {
130
- restBlockPatterns: select( coreStore ).getBlockPatterns(),
131
- restBlockPatternCategories:
132
- select( coreStore ).getBlockPatternCategories(),
133
117
  templateSlug: _record.slug,
134
- userPatternCategories: getUserPatternCategories(),
118
+ focusMode: !! getPreference( 'core/edit-site', 'focusMode' ),
119
+ isDistractionFree: !! getPreference(
120
+ 'core/edit-site',
121
+ 'distractionFree'
122
+ ),
123
+ hasFixedToolbar: !! getPreference(
124
+ 'core/edit-site',
125
+ 'fixedToolbar'
126
+ ),
127
+ keepCaretInsideBlock: !! getPreference(
128
+ 'core/edit-site',
129
+ 'keepCaretInsideBlock'
130
+ ),
131
+ canvasMode: getCanvasMode(),
132
+ settings: getSettings(),
135
133
  };
136
134
  }, [] );
137
135
  const archiveLabels = useArchiveLabel( templateSlug );
138
136
 
139
- const blockPatterns = useMemo(
140
- () =>
141
- [
142
- ...( settingsBlockPatterns || [] ),
143
- ...( restBlockPatterns || [] ),
144
- ]
145
- .filter(
146
- ( x, index, arr ) =>
147
- index === arr.findIndex( ( y ) => x.name === y.name )
148
- )
149
- .filter( ( { postTypes } ) => {
150
- return (
151
- ! postTypes ||
152
- ( Array.isArray( postTypes ) &&
153
- postTypes.includes( templateType ) )
154
- );
155
- } ),
156
- [ settingsBlockPatterns, restBlockPatterns, templateType ]
157
- );
158
-
159
- const blockPatternCategories = useMemo(
160
- () =>
161
- [
162
- ...( settingsBlockPatternCategories || [] ),
163
- ...( restBlockPatternCategories || [] ),
164
- ].filter(
165
- ( x, index, arr ) =>
166
- index === arr.findIndex( ( y ) => x.name === y.name )
167
- ),
168
- [ settingsBlockPatternCategories, restBlockPatternCategories ]
169
- );
170
- return useMemo( () => {
171
- const {
172
- __experimentalAdditionalBlockPatterns,
173
- __experimentalAdditionalBlockPatternCategories,
174
- focusMode,
175
- ...restStoredSettings
176
- } = storedSettings;
177
-
137
+ const defaultEditorSettings = useMemo( () => {
178
138
  return {
179
- ...restStoredSettings,
180
- inserterMediaCategories,
181
- __experimentalBlockPatterns: blockPatterns,
182
- __experimentalBlockPatternCategories: blockPatternCategories,
183
- __experimentalUserPatternCategories: userPatternCategories,
139
+ ...settings,
140
+
141
+ __experimentalSetIsInserterOpened: setIsInserterOpened,
184
142
  focusMode: canvasMode === 'view' && focusMode ? false : focusMode,
143
+ isDistractionFree,
144
+ hasFixedToolbar,
145
+ keepCaretInsideBlock,
146
+
147
+ // I wonder if they should be set in the post editor too
185
148
  __experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,
186
149
  __experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,
187
- pageOnFront: siteSettings?.page_on_front,
188
- pageForPosts: siteSettings?.page_for_posts,
189
150
  };
190
151
  }, [
191
- storedSettings,
192
- blockPatterns,
193
- blockPatternCategories,
194
- userPatternCategories,
152
+ settings,
153
+ setIsInserterOpened,
154
+ focusMode,
155
+ isDistractionFree,
156
+ hasFixedToolbar,
157
+ keepCaretInsideBlock,
195
158
  canvasMode,
196
159
  archiveLabels.archiveTypeLabel,
197
160
  archiveLabels.archiveNameLabel,
198
- siteSettings?.page_on_front,
199
- siteSettings?.page_for_posts,
200
161
  ] );
162
+
163
+ return defaultEditorSettings;
164
+ }
165
+
166
+ export default function useSiteEditorSettings() {
167
+ const defaultEditorSettings = useSpecificEditorSettings();
168
+ const { postType, postId } = useSelect( ( select ) => {
169
+ const { getEditedPostType, getEditedPostId } = unlock(
170
+ select( editSiteStore )
171
+ );
172
+ const usedPostType = getEditedPostType();
173
+ const usedPostId = getEditedPostId();
174
+ return {
175
+ postType: usedPostType,
176
+ postId: usedPostId,
177
+ };
178
+ }, [] );
179
+ return useBlockEditorSettings( defaultEditorSettings, postType, postId );
201
180
  }
@@ -5,7 +5,7 @@ This file documents the DataViews UI component, which provides an API to render
5
5
  ```js
6
6
  <DataViews
7
7
  data={ pages }
8
- isLoading= { isLoadingPages }
8
+ isLoading={ isLoadingPages }
9
9
  view={ view }
10
10
  onChangeView={ onChangeView }
11
11
  fields={ fields }
@@ -16,7 +16,7 @@ This file documents the DataViews UI component, which provides an API to render
16
16
 
17
17
  ## Data
18
18
 
19
- The dataset to work with, represented as a one-dimensional array.
19
+ The dataset to work with, represented as a one-dimensional array.
20
20
 
21
21
  Example:
22
22
 
@@ -43,50 +43,73 @@ Example:
43
43
  direction: 'desc',
44
44
  },
45
45
  search: '',
46
- filters: {
47
- author: 2,
48
- status: 'publish, draft'
49
- },
50
- visibleFilters: [ 'author', 'status' ],
46
+ filters: [
47
+ { field: 'author', operator: 'in', value: 2 },
48
+ { field: 'status', operator: 'in', value: 'publish,draft' }
49
+ ],
51
50
  hiddenFields: [ 'date', 'featured-image' ],
52
51
  layout: {},
53
52
  }
54
53
  ```
55
54
 
56
- - `type`: view type, one of `list` or `grid`.
57
- - `perPage`: number of records to show per page.
58
- - `page`: the page that is visible.
59
- - `sort.field`: field used for sorting the dataset.
60
- - `sort.direction`: the direction to use for sorting, one of `asc` or `desc`.
61
- - `search`: the text search applied to the dataset.
62
- - `filters`: the filters applied to the dataset. See filters section.
63
- - `visibleFilters`: the `id` of the filters that are visible in the UI.
64
- - `hiddenFields`: the `id` of the fields that are hidden in the UI.
65
- - `layout`: ...
55
+ - `type`: view type, one of `list` or `grid`.
56
+ - `perPage`: number of records to show per page.
57
+ - `page`: the page that is visible.
58
+ - `sort.field`: field used for sorting the dataset.
59
+ - `sort.direction`: the direction to use for sorting, one of `asc` or `desc`.
60
+ - `search`: the text search applied to the dataset.
61
+ - `filters`: the filters applied to the dataset. Each item describes:
62
+ - `field`: which field this filter is bound to.
63
+ - `operator`: which type of filter it is. Only `in` available at the moment.
64
+ - `value`: the actual value selected by the user.
65
+ - `hiddenFields`: the `id` of the fields that are hidden in the UI.
66
+ - `layout`: ...
66
67
 
67
- Note that it's the consumer's responsibility to provide the data and make sure the dataset corresponds to the view's config (sort, pagination, filters, etc.).
68
+ ### View <=> data
68
69
 
69
- Example:
70
+ The view is a representation of the visible state of the dataset. Note, however, that it's the consumer's responsibility to work with the data provider to make sure the user options defined through the view's config (sort, pagination, filters, etc.) are respected.
71
+
72
+ The following example shows how a view object is used to query the WordPress REST API via the entities abstraction. The same can be done with any other data provider.
70
73
 
71
74
  ```js
72
- function MyCustomPageList() {
75
+ function MyCustomPageList() {
73
76
  const [ view, setView ] = useState( {
74
77
  type: 'list',
78
+ perPage: 5,
75
79
  page: 1,
76
- "...": "..."
80
+ sort: {
81
+ field: 'date',
82
+ direction: 'desc',
83
+ },
84
+ search: '',
85
+ filters: [
86
+ { field: 'author', operator: 'in', value: 2 },
87
+ { field: 'status', operator: 'in', value: 'publish,draft' }
88
+ ],
89
+ hiddenFields: [ 'date', 'featured-image' ],
90
+ layout: {},
77
91
  } );
78
92
 
79
- const queryArgs = useMemo(
80
- () => ( {
93
+ const queryArgs = useMemo( () => {
94
+ const filters = {};
95
+ view.filters.forEach( ( filter ) => {
96
+ if ( filter.field === 'status' && filter.operator === 'in' ) {
97
+ filters.status = filter.value;
98
+ }
99
+ if ( filter.field === 'author' && filter.operator === 'in' ) {
100
+ filters.author = filter.value;
101
+ }
102
+ } );
103
+ return {
81
104
  per_page: view.perPage,
82
105
  page: view.page,
106
+ _embed: 'author',
83
107
  order: view.sort?.direction,
84
- orderby: view.sort?.field
108
+ orderby: view.sort?.field,
85
109
  search: view.search,
86
- ...view.filters
87
- } ),
88
- [ view ]
89
- );
110
+ ...filters,
111
+ };
112
+ }, [ view ] );
90
113
 
91
114
  const {
92
115
  records
@@ -119,7 +142,8 @@ Example:
119
142
  return (
120
143
  <time>{ getFormattedDate( item.date ) }</time>
121
144
  );
122
- }
145
+ },
146
+ enableHiding: false
123
147
  },
124
148
  {
125
149
  id: 'author',
@@ -134,61 +158,31 @@ Example:
134
158
  { value: 1, label: 'Admin' }
135
159
  { value: 2, label: 'User' }
136
160
  ]
137
- filters: [ 'enumeration' ],
161
+ filters: [ 'in' ],
162
+ enableSorting: false
138
163
  }
139
164
  ]
140
165
  ```
141
166
 
142
- - `id`: identifier for the field. Unique.
143
- - `header`: the field's name to be shown in the UI.
144
- - `getValue`: function that returns the value of the field.
145
- - `render`: function that renders the field.
146
- - `elements`: the set of valid values for the field's value.
147
- - `filters`: what filters are available for the user to use. See filters section.
148
-
149
- ## Filters
150
-
151
- Filters describe the conditions a record should match to be listed as part of the dataset. Filters are provided per field.
152
-
153
- ```js
154
- const field = [
155
- {
156
- id: 'author',
157
- filters: [ 'enumeration' ],
158
- }
159
- ];
160
-
161
- <DataViews
162
- fields={ fields }
163
- />
164
- ```
165
-
166
- A filter is an object that may contain the following properties:
167
-
168
- - `id`: unique identifier for the filter. Matches the entity query param. Field filters may omit it, in which case the field's `id` will be used.
169
- - `name`: nice looking name for the filter. Field filters may omit it, in which case the field's `header` will be used.
170
- - `type`: the type of filter. Only `enumeration` is supported at the moment.
171
- - `elements`: for filters of type `enumeration`, the list of options to show. A one-dimensional array of object with value/label keys, as in `[ { value: 1, label: "Value name" } ]`.
172
- - `value`: what's serialized into the view's filters.
173
- - `label`: nice-looking name for users.
174
- - `resetValue`: for filters of type `enumeration`, this is the value for the reset option. If none is provided, `''` will be used.
175
- - `resetLabel`: for filters of type `enumeration`, this is the label for the reset option. If none is provided, `All` will be used.
176
-
177
- As a convenience, field's filter can provide abbreviated versions for the filter. All of following examples result in the same filter:
178
-
179
- ```js
180
- const field = [
181
- {
182
- id: 'author',
183
- header: __( 'Author' ),
184
- elements: authors,
185
- filters: [
186
- 'enumeration',
187
- { type: 'enumeration' },
188
- { id: 'author', type: 'enumeration' },
189
- { id: 'author', type: 'enumeration', name: __( 'Author' ) },
190
- { id: 'author', type: 'enumeration', name: __( 'Author' ), elements: authors },
191
- ],
192
- }
193
- ];
194
- ```
167
+ - `id`: identifier for the field. Unique.
168
+ - `header`: the field's name to be shown in the UI.
169
+ - `getValue`: function that returns the value of the field.
170
+ - `render`: function that renders the field.
171
+ - `elements`: the set of valid values for the field's value.
172
+ - `filters`: what filter operators are available for the user to use over this field. Only `in` available at the moment.
173
+ - `enableSorting`: whether the data can be sorted by the given field. True by default.
174
+ - `enableHiding`: whether the field can be hidden. True by default.
175
+
176
+ ## Actions
177
+
178
+ Array of operations that can be performed upon each record. Each action is an object with the following properties:
179
+
180
+ - `id`: string, required. Unique identifier of the action. For example, `move-to-trash`.
181
+ - `label`: string, required. User facing description of the action. For example, `Move to Trash`.
182
+ - `isPrimary`: boolean, optional. Whether the action should be listed inline (primary) or in hidden in the more actions menu (secondary).
183
+ - `icon`: icon to show for primary actions. It's required for a primary action, otherwise the action would be considered secondary.
184
+ - `isEligible`: function, optional. Whether the action can be performed for a given record. If not present, the action is considered to be eligible for all items. It takes the given record as input.
185
+ - `isDestructive`: boolean, optional. Whether the action can delete data, in which case the UI would communicate it via red color.
186
+ - `callback`: function, required. Callback function that takes the record as input and performs the required action.
187
+ - `RenderModal`: ReactElement, optional. If an action requires to render contents in a modal, can provide a component which takes as input the record and a `closeModal` function. If this prop is provided, the `callback` property would be ignored.
188
+ - `hideModalHeader`: boolean, optional. This property is used in combination with `RenderModal` and controls the visibility of the modal's header. If the action renders a modal and doesn't hide the header, the action's label is going to be used in the modal's header.
@@ -0,0 +1,111 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import {
5
+ privateApis as componentsPrivateApis,
6
+ Button,
7
+ Icon,
8
+ } from '@wordpress/components';
9
+ import { chevronRightSmall, plus } from '@wordpress/icons';
10
+ import { __ } from '@wordpress/i18n';
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ import { unlock } from '../../lock-unlock';
16
+ import { OPERATOR_IN } from './in-filter';
17
+
18
+ const {
19
+ DropdownMenuV2,
20
+ DropdownSubMenuV2,
21
+ DropdownSubMenuTriggerV2,
22
+ DropdownMenuItemV2,
23
+ } = unlock( componentsPrivateApis );
24
+
25
+ const VALID_OPERATORS = [ OPERATOR_IN ];
26
+
27
+ export default function AddFilter( { fields, view, onChangeView } ) {
28
+ const filters = [];
29
+ fields.forEach( ( field ) => {
30
+ if ( ! field.filters ) {
31
+ return;
32
+ }
33
+
34
+ field.filters.forEach( ( filter ) => {
35
+ if ( VALID_OPERATORS.some( ( operator ) => operator === filter ) ) {
36
+ filters.push( {
37
+ field: field.id,
38
+ name: field.header,
39
+ operator: filter,
40
+ elements: field.elements || [],
41
+ isVisible: view.filters.some(
42
+ ( f ) => f.field === field.id && f.operator === filter
43
+ ),
44
+ } );
45
+ }
46
+ } );
47
+ } );
48
+
49
+ if ( filters.length === 0 ) {
50
+ return null;
51
+ }
52
+
53
+ return (
54
+ <DropdownMenuV2
55
+ label={ __( 'Add filter' ) }
56
+ trigger={
57
+ <Button
58
+ disabled={ filters.length === view.filters?.length }
59
+ __experimentalIsFocusable
60
+ icon={ plus }
61
+ variant="tertiary"
62
+ size="compact"
63
+ >
64
+ { __( 'Add filter' ) }
65
+ </Button>
66
+ }
67
+ >
68
+ { filters.map( ( filter ) => {
69
+ if ( filter.isVisible ) {
70
+ return null;
71
+ }
72
+
73
+ return (
74
+ <DropdownSubMenuV2
75
+ key={ filter.field }
76
+ trigger={
77
+ <DropdownSubMenuTriggerV2
78
+ suffix={ <Icon icon={ chevronRightSmall } /> }
79
+ >
80
+ { filter.name }
81
+ </DropdownSubMenuTriggerV2>
82
+ }
83
+ >
84
+ { filter.elements.map( ( element ) => (
85
+ <DropdownMenuItemV2
86
+ key={ element.value }
87
+ onSelect={ () => {
88
+ onChangeView( ( currentView ) => ( {
89
+ ...currentView,
90
+ page: 1,
91
+ filters: [
92
+ ...currentView.filters,
93
+ {
94
+ field: filter.field,
95
+ operator: 'in',
96
+ value: element.value,
97
+ },
98
+ ],
99
+ } ) );
100
+ } }
101
+ role="menuitemcheckbox"
102
+ >
103
+ { element.label }
104
+ </DropdownMenuItemV2>
105
+ ) ) }
106
+ </DropdownSubMenuV2>
107
+ );
108
+ } ) }
109
+ </DropdownMenuV2>
110
+ );
111
+ }
@@ -16,6 +16,22 @@ import ViewActions from './view-actions';
16
16
  import Filters from './filters';
17
17
  import Search from './search';
18
18
  import { ViewGrid } from './view-grid';
19
+ import { ViewSideBySide } from './view-side-by-side';
20
+
21
+ // To do: convert to view type registry.
22
+ export const viewTypeSupportsMap = {
23
+ list: {},
24
+ grid: {},
25
+ 'side-by-side': {
26
+ preview: true,
27
+ },
28
+ };
29
+
30
+ const viewTypeMap = {
31
+ list: ViewList,
32
+ grid: ViewGrid,
33
+ 'side-by-side': ViewSideBySide,
34
+ };
19
35
 
20
36
  export default function DataViews( {
21
37
  view,
@@ -27,8 +43,9 @@ export default function DataViews( {
27
43
  data,
28
44
  isLoading = false,
29
45
  paginationInfo,
46
+ supportedLayouts,
30
47
  } ) {
31
- const ViewComponent = view.type === 'list' ? ViewList : ViewGrid;
48
+ const ViewComponent = viewTypeMap[ view.type ];
32
49
  const _fields = useMemo( () => {
33
50
  return fields.map( ( field ) => ( {
34
51
  ...field,
@@ -53,11 +70,12 @@ export default function DataViews( {
53
70
  onChangeView={ onChangeView }
54
71
  />
55
72
  </HStack>
56
- <HStack justify="end">
73
+ <HStack justify="end" expanded={ false }>
57
74
  <ViewActions
58
75
  fields={ fields }
59
76
  view={ view }
60
77
  onChangeView={ onChangeView }
78
+ supportedLayouts={ supportedLayouts }
61
79
  />
62
80
  </HStack>
63
81
  </HStack>