@wordpress/edit-site 5.21.1-next.f8d8eceb.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 (375) hide show
  1. package/CHANGELOG.md +4 -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/rename-category-menu-item.js +27 -9
  67. package/build/components/page-patterns/rename-category-menu-item.js.map +1 -1
  68. package/build/components/page-patterns/use-patterns.js +1 -1
  69. package/build/components/page-patterns/use-patterns.js.map +1 -1
  70. package/build/components/page-templates/dataviews-templates.js +201 -0
  71. package/build/components/page-templates/dataviews-templates.js.map +1 -0
  72. package/build/components/page-templates/template-actions.js +168 -0
  73. package/build/components/page-templates/template-actions.js.map +1 -0
  74. package/build/components/save-button/index.js +4 -2
  75. package/build/components/save-button/index.js.map +1 -1
  76. package/build/components/sidebar/index.js +1 -2
  77. package/build/components/sidebar/index.js.map +1 -1
  78. package/build/components/sidebar-dataviews/add-new-view.js +124 -0
  79. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -0
  80. package/build/components/sidebar-dataviews/custom-dataviews-list.js +189 -0
  81. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  82. package/build/components/sidebar-dataviews/dataview-item.js +71 -0
  83. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -0
  84. package/build/components/sidebar-dataviews/default-views.js +60 -0
  85. package/build/components/sidebar-dataviews/default-views.js.map +1 -0
  86. package/build/components/sidebar-dataviews/index.js +22 -37
  87. package/build/components/sidebar-dataviews/index.js.map +1 -1
  88. package/build/components/sidebar-edit-mode/default-sidebar.js +2 -6
  89. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  90. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +11 -11
  91. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  92. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
  93. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  94. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +4 -12
  95. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  96. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +4 -12
  97. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  98. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  99. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  100. package/build/components/sidebar-edit-mode/template-panel/hooks.js +3 -3
  101. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  102. package/build/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  103. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  104. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  105. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  106. package/build/components/sidebar-navigation-screen-page/page-details.js +4 -12
  107. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  108. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  109. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  110. package/build/components/site-hub/index.js +18 -6
  111. package/build/components/site-hub/index.js.map +1 -1
  112. package/build/components/start-template-options/index.js +12 -16
  113. package/build/components/start-template-options/index.js.map +1 -1
  114. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +112 -49
  115. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  116. package/build/components/template-part-converter/convert-to-regular.js +1 -1
  117. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  118. package/build/hooks/push-changes-to-global-styles/index.js +3 -1
  119. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  120. package/build/hooks/template-part-edit.js +6 -2
  121. package/build/hooks/template-part-edit.js.map +1 -1
  122. package/build/index.js +0 -3
  123. package/build/index.js.map +1 -1
  124. package/build/store/actions.js +35 -82
  125. package/build/store/actions.js.map +1 -1
  126. package/build/store/selectors.js +25 -63
  127. package/build/store/selectors.js.map +1 -1
  128. package/build/utils/constants.js +3 -3
  129. package/build/utils/constants.js.map +1 -1
  130. package/build/utils/use-activate-theme.js +8 -0
  131. package/build/utils/use-activate-theme.js.map +1 -1
  132. package/build-module/components/actions/index.js +85 -5
  133. package/build-module/components/actions/index.js.map +1 -1
  134. package/build-module/components/add-new-template/new-template.js +0 -7
  135. package/build-module/components/add-new-template/new-template.js.map +1 -1
  136. package/build-module/components/block-editor/use-site-editor-settings.js +54 -62
  137. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  138. package/build-module/components/dataviews/add-filter.js +83 -0
  139. package/build-module/components/dataviews/add-filter.js.map +1 -0
  140. package/build-module/components/dataviews/dataviews.js +22 -4
  141. package/build-module/components/dataviews/dataviews.js.map +1 -1
  142. package/build-module/components/dataviews/filters.js +34 -32
  143. package/build-module/components/dataviews/filters.js.map +1 -1
  144. package/build-module/components/dataviews/in-filter.js +20 -19
  145. package/build-module/components/dataviews/in-filter.js.map +1 -1
  146. package/build-module/components/dataviews/index.js +1 -1
  147. package/build-module/components/dataviews/index.js.map +1 -1
  148. package/build-module/components/dataviews/item-actions.js +84 -16
  149. package/build-module/components/dataviews/item-actions.js.map +1 -1
  150. package/build-module/components/dataviews/pagination.js +3 -2
  151. package/build-module/components/dataviews/pagination.js.map +1 -1
  152. package/build-module/components/dataviews/reset-filters.js +26 -0
  153. package/build-module/components/dataviews/reset-filters.js.map +1 -0
  154. package/build-module/components/dataviews/search.js +1 -0
  155. package/build-module/components/dataviews/search.js.map +1 -1
  156. package/build-module/components/dataviews/view-actions.js +28 -11
  157. package/build-module/components/dataviews/view-actions.js.map +1 -1
  158. package/build-module/components/dataviews/view-list.js +128 -7
  159. package/build-module/components/dataviews/view-list.js.map +1 -1
  160. package/build-module/components/dataviews/view-side-by-side.js +12 -0
  161. package/build-module/components/dataviews/view-side-by-side.js.map +1 -0
  162. package/build-module/components/editor/index.js +57 -57
  163. package/build-module/components/editor/index.js.map +1 -1
  164. package/build-module/components/global-styles/screen-revisions/index.js +42 -21
  165. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  166. package/build-module/components/global-styles/screen-root.js +3 -3
  167. package/build-module/components/global-styles/screen-root.js.map +1 -1
  168. package/build-module/components/global-styles/ui.js +3 -3
  169. package/build-module/components/global-styles/ui.js.map +1 -1
  170. package/build-module/components/global-styles-renderer/index.js +1 -1
  171. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  172. package/build-module/components/header-edit-mode/document-tools/index.js +152 -0
  173. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -0
  174. package/build-module/components/header-edit-mode/index.js +52 -120
  175. package/build-module/components/header-edit-mode/index.js.map +1 -1
  176. package/build-module/components/header-edit-mode/more-menu/site-export.js +2 -6
  177. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  178. package/build-module/components/layout/index.js +5 -20
  179. package/build-module/components/layout/index.js.map +1 -1
  180. package/build-module/components/list/added-by.js +1 -1
  181. package/build-module/components/list/added-by.js.map +1 -1
  182. package/build-module/components/page-content-focus-manager/back-to-page-notification.js +5 -10
  183. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +1 -1
  184. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +36 -23
  185. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  186. package/build-module/components/page-main/index.js +2 -1
  187. package/build-module/components/page-main/index.js.map +1 -1
  188. package/build-module/components/page-pages/index.js +137 -80
  189. package/build-module/components/page-pages/index.js.map +1 -1
  190. package/build-module/components/page-pages/side-editor.js +17 -0
  191. package/build-module/components/page-pages/side-editor.js.map +1 -0
  192. package/build-module/components/page-patterns/grid-item.js +2 -2
  193. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  194. package/build-module/components/page-patterns/patterns-list.js +4 -4
  195. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  196. package/build-module/components/page-patterns/rename-category-menu-item.js +25 -9
  197. package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -1
  198. package/build-module/components/page-patterns/use-patterns.js +2 -2
  199. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  200. package/build-module/components/page-templates/dataviews-templates.js +193 -0
  201. package/build-module/components/page-templates/dataviews-templates.js.map +1 -0
  202. package/build-module/components/page-templates/template-actions.js +157 -0
  203. package/build-module/components/page-templates/template-actions.js.map +1 -0
  204. package/build-module/components/save-button/index.js +4 -2
  205. package/build-module/components/save-button/index.js.map +1 -1
  206. package/build-module/components/sidebar/index.js +1 -2
  207. package/build-module/components/sidebar/index.js.map +1 -1
  208. package/build-module/components/sidebar-dataviews/add-new-view.js +116 -0
  209. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -0
  210. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +180 -0
  211. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  212. package/build-module/components/sidebar-dataviews/dataview-item.js +63 -0
  213. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -0
  214. package/build-module/components/sidebar-dataviews/default-views.js +52 -0
  215. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -0
  216. package/build-module/components/sidebar-dataviews/index.js +23 -38
  217. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  218. package/build-module/components/sidebar-edit-mode/default-sidebar.js +2 -6
  219. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  220. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +12 -12
  221. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  222. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +3 -1
  223. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  224. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +5 -13
  225. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  226. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +5 -13
  227. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  228. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  229. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  230. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +4 -4
  231. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  232. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  233. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  234. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  235. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  236. package/build-module/components/sidebar-navigation-screen-page/page-details.js +4 -12
  237. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  238. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  239. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  240. package/build-module/components/site-hub/index.js +19 -7
  241. package/build-module/components/site-hub/index.js.map +1 -1
  242. package/build-module/components/start-template-options/index.js +13 -16
  243. package/build-module/components/start-template-options/index.js.map +1 -1
  244. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +112 -50
  245. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  246. package/build-module/components/template-part-converter/convert-to-regular.js +1 -1
  247. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  248. package/build-module/hooks/push-changes-to-global-styles/index.js +4 -2
  249. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  250. package/build-module/hooks/template-part-edit.js +6 -2
  251. package/build-module/hooks/template-part-edit.js.map +1 -1
  252. package/build-module/index.js +0 -3
  253. package/build-module/index.js.map +1 -1
  254. package/build-module/store/actions.js +33 -79
  255. package/build-module/store/actions.js.map +1 -1
  256. package/build-module/store/selectors.js +19 -58
  257. package/build-module/store/selectors.js.map +1 -1
  258. package/build-module/utils/constants.js +1 -1
  259. package/build-module/utils/constants.js.map +1 -1
  260. package/build-module/utils/use-activate-theme.js +8 -0
  261. package/build-module/utils/use-activate-theme.js.map +1 -1
  262. package/build-style/style-rtl.css +69 -119
  263. package/build-style/style.css +69 -119
  264. package/package.json +41 -41
  265. package/src/components/actions/index.js +113 -5
  266. package/src/components/add-new-template/new-template.js +0 -5
  267. package/src/components/block-editor/style.scss +0 -87
  268. package/src/components/block-editor/use-site-editor-settings.js +68 -89
  269. package/src/components/dataviews/README.md +77 -83
  270. package/src/components/dataviews/add-filter.js +111 -0
  271. package/src/components/dataviews/dataviews.js +20 -2
  272. package/src/components/dataviews/filters.js +56 -49
  273. package/src/components/dataviews/in-filter.js +35 -17
  274. package/src/components/dataviews/index.js +1 -1
  275. package/src/components/dataviews/item-actions.js +95 -20
  276. package/src/components/dataviews/pagination.js +5 -4
  277. package/src/components/dataviews/reset-filters.js +26 -0
  278. package/src/components/dataviews/search.js +1 -0
  279. package/src/components/dataviews/style.scss +5 -1
  280. package/src/components/dataviews/view-actions.js +39 -9
  281. package/src/components/dataviews/view-list.js +174 -3
  282. package/src/components/dataviews/view-side-by-side.js +9 -0
  283. package/src/components/editor/index.js +149 -121
  284. package/src/components/global-styles/screen-revisions/index.js +52 -25
  285. package/src/components/global-styles/screen-root.js +2 -1
  286. package/src/components/global-styles/ui.js +1 -1
  287. package/src/components/global-styles-renderer/index.js +1 -1
  288. package/src/components/header-edit-mode/document-tools/index.js +201 -0
  289. package/src/components/header-edit-mode/index.js +86 -184
  290. package/src/components/header-edit-mode/more-menu/site-export.js +2 -6
  291. package/src/components/header-edit-mode/style.scss +35 -2
  292. package/src/components/layout/index.js +4 -11
  293. package/src/components/layout/style.scss +6 -18
  294. package/src/components/list/added-by.js +1 -1
  295. package/src/components/page-content-focus-manager/back-to-page-notification.js +4 -15
  296. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +38 -33
  297. package/src/components/page-main/index.js +6 -1
  298. package/src/components/page-pages/index.js +162 -81
  299. package/src/components/page-pages/side-editor.js +14 -0
  300. package/src/components/page-patterns/grid-item.js +3 -3
  301. package/src/components/page-patterns/patterns-list.js +10 -4
  302. package/src/components/page-patterns/rename-category-menu-item.js +29 -12
  303. package/src/components/page-patterns/use-patterns.js +3 -2
  304. package/src/components/page-templates/dataviews-templates.js +224 -0
  305. package/src/components/page-templates/template-actions.js +209 -0
  306. package/src/components/save-button/index.js +10 -5
  307. package/src/components/sidebar/index.js +1 -2
  308. package/src/components/sidebar-dataviews/add-new-view.js +141 -0
  309. package/src/components/sidebar-dataviews/custom-dataviews-list.js +227 -0
  310. package/src/components/sidebar-dataviews/dataview-item.js +67 -0
  311. package/src/components/sidebar-dataviews/default-views.js +54 -0
  312. package/src/components/sidebar-dataviews/index.js +36 -44
  313. package/src/components/sidebar-dataviews/style.scss +22 -0
  314. package/src/components/sidebar-edit-mode/default-sidebar.js +6 -6
  315. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +14 -21
  316. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +3 -0
  317. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +10 -9
  318. package/src/components/sidebar-edit-mode/page-panels/style.scss +5 -0
  319. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +10 -9
  320. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +6 -6
  321. package/src/components/sidebar-edit-mode/template-panel/hooks.js +11 -7
  322. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  323. package/src/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  324. package/src/components/sidebar-navigation-screen-page/page-details.js +7 -18
  325. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  326. package/src/components/site-hub/index.js +9 -8
  327. package/src/components/start-template-options/index.js +14 -12
  328. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +117 -50
  329. package/src/components/template-part-converter/convert-to-regular.js +1 -1
  330. package/src/hooks/push-changes-to-global-styles/index.js +13 -6
  331. package/src/hooks/template-part-edit.js +4 -2
  332. package/src/index.js +0 -8
  333. package/src/store/actions.js +37 -95
  334. package/src/store/selectors.js +31 -91
  335. package/src/store/test/actions.js +11 -137
  336. package/src/store/test/selectors.js +0 -82
  337. package/src/style.scss +1 -0
  338. package/src/utils/constants.js +1 -1
  339. package/src/utils/use-activate-theme.js +5 -0
  340. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -77
  341. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  342. package/build/components/block-editor/block-editor-provider/index.js +0 -31
  343. package/build/components/block-editor/block-editor-provider/index.js.map +0 -1
  344. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -110
  345. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  346. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -84
  347. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  348. package/build/components/block-editor/index.js +0 -30
  349. package/build/components/block-editor/index.js.map +0 -1
  350. package/build/components/dataviews/context.js +0 -15
  351. package/build/components/dataviews/context.js.map +0 -1
  352. package/build/components/page-pages/default-views.js +0 -60
  353. package/build/components/page-pages/default-views.js.map +0 -1
  354. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -69
  355. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  356. package/build-module/components/block-editor/block-editor-provider/index.js +0 -23
  357. package/build-module/components/block-editor/block-editor-provider/index.js.map +0 -1
  358. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -102
  359. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  360. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -78
  361. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  362. package/build-module/components/block-editor/index.js +0 -22
  363. package/build-module/components/block-editor/index.js.map +0 -1
  364. package/build-module/components/dataviews/context.js +0 -7
  365. package/build-module/components/dataviews/context.js.map +0 -1
  366. package/build-module/components/page-pages/default-views.js +0 -53
  367. package/build-module/components/page-pages/default-views.js.map +0 -1
  368. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -75
  369. package/src/components/block-editor/block-editor-provider/index.js +0 -29
  370. package/src/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -114
  371. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +0 -116
  372. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -90
  373. package/src/components/block-editor/index.js +0 -28
  374. package/src/components/dataviews/context.js +0 -7
  375. package/src/components/page-pages/default-views.js +0 -58
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { external, trash } from '@wordpress/icons';
4
+ import { external, trash, backup } from '@wordpress/icons';
5
5
  import { addQueryArgs } from '@wordpress/url';
6
6
  import { useDispatch } from '@wordpress/data';
7
7
  import { decodeEntities } from '@wordpress/html-entities';
@@ -31,7 +31,7 @@ export function useTrashPostAction() {
31
31
  isEligible( { status } ) {
32
32
  return status !== 'trash';
33
33
  },
34
- async perform( post ) {
34
+ async callback( post ) {
35
35
  try {
36
36
  await deleteEntityRecord(
37
37
  'postType',
@@ -67,6 +67,114 @@ export function useTrashPostAction() {
67
67
  );
68
68
  }
69
69
 
70
+ export function usePermanentlyDeletePostAction() {
71
+ const { createSuccessNotice, createErrorNotice } =
72
+ useDispatch( noticesStore );
73
+ const { deleteEntityRecord } = useDispatch( coreStore );
74
+
75
+ return useMemo(
76
+ () => ( {
77
+ id: 'permanently-delete',
78
+ label: __( 'Permanently delete' ),
79
+ isPrimary: true,
80
+ icon: trash,
81
+ isEligible( { status } ) {
82
+ return status === 'trash';
83
+ },
84
+ async callback( post ) {
85
+ try {
86
+ await deleteEntityRecord(
87
+ 'postType',
88
+ post.type,
89
+ post.id,
90
+ { force: true },
91
+ { throwOnError: true }
92
+ );
93
+ createSuccessNotice(
94
+ sprintf(
95
+ /* translators: The posts's title. */
96
+ __( '"%s" permanently deleted.' ),
97
+ decodeEntities( post.title.rendered )
98
+ ),
99
+ {
100
+ type: 'snackbar',
101
+ id: 'edit-site-post-permanently-deleted',
102
+ }
103
+ );
104
+ } catch ( error ) {
105
+ const errorMessage =
106
+ error.message && error.code !== 'unknown_error'
107
+ ? error.message
108
+ : __(
109
+ 'An error occurred while permanently deleting the post.'
110
+ );
111
+
112
+ createErrorNotice( errorMessage, { type: 'snackbar' } );
113
+ }
114
+ },
115
+ } ),
116
+ [ createSuccessNotice, createErrorNotice, deleteEntityRecord ]
117
+ );
118
+ }
119
+
120
+ export function useRestorePostAction() {
121
+ const { createSuccessNotice, createErrorNotice } =
122
+ useDispatch( noticesStore );
123
+ const { editEntityRecord, saveEditedEntityRecord } =
124
+ useDispatch( coreStore );
125
+
126
+ return useMemo(
127
+ () => ( {
128
+ id: 'restore',
129
+ label: __( 'Restore' ),
130
+ isPrimary: true,
131
+ icon: backup,
132
+ isEligible( { status } ) {
133
+ return status === 'trash';
134
+ },
135
+ async callback( post ) {
136
+ await editEntityRecord( 'postType', post.type, post.id, {
137
+ status: 'draft',
138
+ } );
139
+ try {
140
+ await saveEditedEntityRecord(
141
+ 'postType',
142
+ post.type,
143
+ post.id,
144
+ { throwOnError: true }
145
+ );
146
+ createSuccessNotice(
147
+ sprintf(
148
+ /* translators: The posts's title. */
149
+ __( '"%s" has been restored.' ),
150
+ decodeEntities( post.title.rendered )
151
+ ),
152
+ {
153
+ type: 'snackbar',
154
+ id: 'edit-site-post-restored',
155
+ }
156
+ );
157
+ } catch ( error ) {
158
+ const errorMessage =
159
+ error.message && error.code !== 'unknown_error'
160
+ ? error.message
161
+ : __(
162
+ 'An error occurred while restoring the post.'
163
+ );
164
+
165
+ createErrorNotice( errorMessage, { type: 'snackbar' } );
166
+ }
167
+ },
168
+ } ),
169
+ [
170
+ createSuccessNotice,
171
+ createErrorNotice,
172
+ editEntityRecord,
173
+ saveEditedEntityRecord,
174
+ ]
175
+ );
176
+ }
177
+
70
178
  export const viewPostAction = {
71
179
  id: 'view-post',
72
180
  label: __( 'View' ),
@@ -75,7 +183,7 @@ export const viewPostAction = {
75
183
  isEligible( post ) {
76
184
  return post.status !== 'trash';
77
185
  },
78
- perform( post ) {
186
+ callback( post ) {
79
187
  document.location.href = post.link;
80
188
  },
81
189
  };
@@ -89,7 +197,7 @@ export function useEditPostAction() {
89
197
  isEligible( { status } ) {
90
198
  return status !== 'trash';
91
199
  },
92
- perform( post ) {
200
+ callback( post ) {
93
201
  history.push( {
94
202
  postId: post.id,
95
203
  postType: post.type,
@@ -114,7 +222,7 @@ export const postRevisionsAction = {
114
222
  post?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;
115
223
  return lastRevisionId && revisionsCount > 1;
116
224
  },
117
- perform( post ) {
225
+ callback( post ) {
118
226
  const href = addQueryArgs( 'revision.php', {
119
227
  revision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,
120
228
  } );
@@ -61,7 +61,6 @@ import {
61
61
  } from './utils';
62
62
  import AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';
63
63
  import TemplateActionsLoadingScreen from './template-actions-loading-screen';
64
- import { store as editSiteStore } from '../../store';
65
64
  import { unlock } from '../../lock-unlock';
66
65
 
67
66
  const { useHistory } = unlock( routerPrivateApis );
@@ -165,7 +164,6 @@ export default function NewTemplate( {
165
164
  const { saveEntityRecord } = useDispatch( coreStore );
166
165
  const { createErrorNotice, createSuccessNotice } =
167
166
  useDispatch( noticesStore );
168
- const { setTemplate } = unlock( useDispatch( editSiteStore ) );
169
167
 
170
168
  const { homeUrl } = useSelect( ( select ) => {
171
169
  const {
@@ -208,9 +206,6 @@ export default function NewTemplate( {
208
206
  { throwOnError: true }
209
207
  );
210
208
 
211
- // Set template before navigating away to avoid initial stale value.
212
- setTemplate( newTemplate.id, newTemplate.slug );
213
-
214
209
  // Navigate to the created template editor.
215
210
  history.push( {
216
211
  postId: newTemplate.id,
@@ -172,90 +172,3 @@
172
172
  box-shadow: inset 0 0 0 2px var(--wp-admin-theme-color);
173
173
  }
174
174
  }
175
-
176
- // Fixed contextual toolbar
177
- @include editor-left(".edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed");
178
-
179
- .edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed {
180
- position: sticky;
181
- top: 0;
182
- z-index: z-index(".block-editor-block-popover");
183
- display: block;
184
- width: 100%;
185
-
186
- // on desktop and tablet viewports the toolbar is fixed
187
- // on top of interface header
188
- $toolbar-margin: $grid-unit-80 * 3 - 2 * $grid-unit + $grid-unit-05;
189
-
190
- @include break-medium() {
191
- // leave room for block inserter, undo and redo, list view
192
- margin-left: $toolbar-margin;
193
- // position on top of interface header
194
- position: fixed;
195
- top: $admin-bar-height;
196
- // Don't fill up when empty
197
- min-height: initial;
198
- // has to be flex for collapse button to fit
199
- display: flex;
200
-
201
- // Mimic the height of the parent, vertically align center, and provide a max-height.
202
- height: $header-height;
203
- align-items: center;
204
-
205
-
206
- // on tablet viewports the toolbar is fixed
207
- // on top of interface header and covers the whole header
208
- // except for the inserter on the left
209
- width: calc(100% - #{$toolbar-margin});
210
-
211
- &.is-collapsed {
212
- width: initial;
213
- }
214
-
215
- &:empty {
216
- width: initial;
217
- }
218
-
219
- .is-fullscreen-mode & {
220
- // leave room for block inserter, undo and redo, list view
221
- // and some margin left
222
- margin-left: $grid-unit-80 * 4 - 2 * $grid-unit;
223
-
224
- top: 0;
225
-
226
- &.is-collapsed {
227
- width: initial;
228
- }
229
-
230
- &:empty {
231
- width: initial;
232
- }
233
- }
234
-
235
- .show-icon-labels & {
236
- margin-left: $grid-unit-80 + 2 * $grid-unit; // inserter and margin
237
- width: calc(100% + 40px - #{$toolbar-margin}); //there are no undo, redo and list view buttons
238
-
239
- .is-fullscreen-mode & {
240
- margin-left: $grid-unit * 18; // site hub, inserter and margin
241
- }
242
- }
243
- }
244
-
245
- // on desktop viewports the toolbar is fixed
246
- // on top of interface header and leaves room
247
- // for the block inserter the publish button
248
- @include break-large() {
249
- width: auto;
250
- .show-icon-labels & {
251
- width: auto; //there are no undo, redo and list view buttons
252
- }
253
-
254
- .is-fullscreen-mode & {
255
- // in full screen mode we need to account for
256
- // the combined with of the tools at the right of the header and the margin left
257
- // of the toolbar which includes four buttons
258
- width: calc(100% - 280px - #{4 * $grid-unit-80});
259
- }
260
- }
261
- }
@@ -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.