@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
@@ -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>
@@ -6,70 +6,77 @@ import { __ } from '@wordpress/i18n';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import InFilter from './in-filter';
9
+ import { default as InFilter, OPERATOR_IN } from './in-filter';
10
+ import AddFilter from './add-filter';
11
+ import ResetFilters from './reset-filters';
12
+
13
+ const VALID_OPERATORS = [ OPERATOR_IN ];
10
14
 
11
15
  export default function Filters( { fields, view, onChangeView } ) {
12
- const filterIndex = {};
16
+ const filters = [];
13
17
  fields.forEach( ( field ) => {
14
18
  if ( ! field.filters ) {
15
19
  return;
16
20
  }
17
21
 
18
22
  field.filters.forEach( ( filter ) => {
19
- let id = field.id;
20
- if ( 'string' === typeof filter ) {
21
- filterIndex[ id ] = {
22
- id,
23
+ if ( VALID_OPERATORS.some( ( operator ) => operator === filter ) ) {
24
+ filters.push( {
25
+ field: field.id,
23
26
  name: field.header,
24
- type: filter,
25
- };
26
- }
27
-
28
- if ( 'object' === typeof filter ) {
29
- id = filter.id || field.id;
30
- filterIndex[ id ] = {
31
- id,
32
- name: filter.name || field.header,
33
- type: filter.type,
34
- };
35
- }
36
-
37
- if ( 'enumeration' === filterIndex[ id ]?.type ) {
38
- const elements = [
39
- {
40
- value: filter.resetValue || '',
41
- label: filter.resetLabel || __( 'All' ),
42
- },
43
- ...( field.elements || [] ),
44
- ];
45
- filterIndex[ id ] = {
46
- ...filterIndex[ id ],
47
- elements,
48
- };
27
+ operator: filter,
28
+ elements: [
29
+ {
30
+ value: '',
31
+ label: __( 'All' ),
32
+ },
33
+ ...( field.elements || [] ),
34
+ ],
35
+ isVisible: view.filters.some(
36
+ ( f ) => f.field === field.id && f.operator === filter
37
+ ),
38
+ } );
49
39
  }
50
40
  } );
51
41
  } );
52
42
 
53
- return (
54
- view.visibleFilters?.map( ( filterName ) => {
55
- const filter = filterIndex[ filterName ];
43
+ const filterComponents = filters?.map( ( filter ) => {
44
+ if ( ! filter.isVisible ) {
45
+ return null;
46
+ }
56
47
 
57
- if ( ! filter ) {
58
- return null;
59
- }
48
+ if ( OPERATOR_IN === filter.operator ) {
49
+ return (
50
+ <InFilter
51
+ key={ filter.field + '.' + filter.operator }
52
+ filter={ filter }
53
+ view={ view }
54
+ onChangeView={ onChangeView }
55
+ />
56
+ );
57
+ }
60
58
 
61
- if ( filter.type === 'enumeration' ) {
62
- return (
63
- <InFilter
64
- key={ filterName }
65
- filter={ filter }
66
- view={ view }
67
- onChangeView={ onChangeView }
68
- />
69
- );
70
- }
59
+ return null;
60
+ } );
71
61
 
72
- return null;
73
- } ) || __( 'No filters available' )
62
+ filterComponents.push(
63
+ <AddFilter
64
+ key="add-filter"
65
+ fields={ fields }
66
+ view={ view }
67
+ onChangeView={ onChangeView }
68
+ />
74
69
  );
70
+
71
+ if ( filterComponents.length > 1 ) {
72
+ filterComponents.push(
73
+ <ResetFilters
74
+ key="reset-filters"
75
+ view={ view }
76
+ onChangeView={ onChangeView }
77
+ />
78
+ );
79
+ }
80
+
81
+ return filterComponents;
75
82
  }
@@ -5,39 +5,57 @@ import {
5
5
  __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,
6
6
  SelectControl,
7
7
  } from '@wordpress/components';
8
- import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
8
+ import { __, sprintf } from '@wordpress/i18n';
9
9
 
10
- /**
11
- * Internal dependencies
12
- */
13
- import { unlock } from '../../lock-unlock';
14
-
15
- const { cleanEmptyObject } = unlock( blockEditorPrivateApis );
10
+ export const OPERATOR_IN = 'in';
16
11
 
17
12
  export default ( { filter, view, onChangeView } ) => {
13
+ const valueFound = view.filters.find(
14
+ ( f ) => f.field === filter.field && f.operator === OPERATOR_IN
15
+ );
16
+
17
+ const activeValue =
18
+ ! valueFound || ! valueFound.hasOwnProperty( 'value' )
19
+ ? ''
20
+ : valueFound.value;
21
+
22
+ const id = `dataviews__filters-in-${ filter.field }`;
23
+
18
24
  return (
19
25
  <SelectControl
20
- value={ view.filters[ filter.id ] }
26
+ id={ id }
27
+ __nextHasNoMarginBottom
28
+ value={ activeValue }
21
29
  prefix={
22
30
  <InputControlPrefixWrapper
23
- as="span"
31
+ as="label"
32
+ htmlFor={ id }
24
33
  className="dataviews__select-control-prefix"
25
34
  >
26
- { filter.name + ':' }
35
+ { sprintf(
36
+ /* translators: filter name. */
37
+ __( '%s:' ),
38
+ filter.name
39
+ ) }
27
40
  </InputControlPrefixWrapper>
28
41
  }
29
42
  options={ filter.elements }
30
43
  onChange={ ( value ) => {
31
- if ( value === '' ) {
32
- value = undefined;
33
- }
44
+ const filters = view.filters.filter(
45
+ ( f ) =>
46
+ f.field !== filter.field || f.operator !== OPERATOR_IN
47
+ );
48
+
49
+ filters.push( {
50
+ field: filter.field,
51
+ operator: OPERATOR_IN,
52
+ value,
53
+ } );
34
54
 
35
55
  onChangeView( ( currentView ) => ( {
36
56
  ...currentView,
37
- filters: cleanEmptyObject( {
38
- ...currentView.filters,
39
- [ filter.id ]: value,
40
- } ),
57
+ page: 1,
58
+ filters,
41
59
  } ) );
42
60
  } }
43
61
  />
@@ -1 +1 @@
1
- export { default as DataViews } from './dataviews';
1
+ export { default as DataViews, viewTypeSupportsMap } from './dataviews';
@@ -6,12 +6,62 @@ import {
6
6
  MenuGroup,
7
7
  MenuItem,
8
8
  Button,
9
+ Modal,
9
10
  __experimentalHStack as HStack,
10
11
  } from '@wordpress/components';
11
12
  import { __ } from '@wordpress/i18n';
12
- import { useMemo } from '@wordpress/element';
13
+ import { useMemo, useState } from '@wordpress/element';
13
14
  import { moreVertical } from '@wordpress/icons';
14
15
 
16
+ function PrimaryActionTrigger( { action, onClick } ) {
17
+ return (
18
+ <Button
19
+ label={ action.label }
20
+ icon={ action.icon }
21
+ isDestructive={ action.isDestructive }
22
+ size="compact"
23
+ onClick={ onClick }
24
+ />
25
+ );
26
+ }
27
+
28
+ function SecondaryActionTrigger( { action, onClick } ) {
29
+ return (
30
+ <MenuItem onClick={ onClick } isDestructive={ action.isDestructive }>
31
+ { action.label }
32
+ </MenuItem>
33
+ );
34
+ }
35
+
36
+ function ActionWithModal( { action, item, ActionTrigger } ) {
37
+ const [ isModalOpen, setIsModalOpen ] = useState( false );
38
+ const actionTriggerProps = {
39
+ action,
40
+ onClick: () => setIsModalOpen( true ),
41
+ };
42
+ const { RenderModal, hideModalHeader } = action;
43
+ return (
44
+ <>
45
+ <ActionTrigger { ...actionTriggerProps } />
46
+ { isModalOpen && (
47
+ <Modal
48
+ title={ ! hideModalHeader && action.label }
49
+ __experimentalHideHeader={ !! hideModalHeader }
50
+ onRequestClose={ () => {
51
+ setIsModalOpen( false );
52
+ } }
53
+ overlayClassName="dataviews-action-modal"
54
+ >
55
+ <RenderModal
56
+ item={ item }
57
+ closeModal={ () => setIsModalOpen( false ) }
58
+ />
59
+ </Modal>
60
+ ) }
61
+ </>
62
+ );
63
+ }
64
+
15
65
  export default function ItemActions( { item, actions } ) {
16
66
  const { primaryActions, secondaryActions } = useMemo( () => {
17
67
  return actions.reduce(
@@ -37,29 +87,54 @@ export default function ItemActions( { item, actions } ) {
37
87
  return (
38
88
  <HStack justify="flex-end">
39
89
  { !! primaryActions.length &&
40
- primaryActions.map( ( action ) => (
41
- <Button
42
- label={ action.label }
43
- key={ action.id }
44
- icon={ action.icon }
45
- onClick={ () => action.perform( item ) }
46
- isDestructive={ action.isDestructive }
47
- size="compact"
48
- />
49
- ) ) }
90
+ primaryActions.map( ( action ) => {
91
+ if ( !! action.RenderModal ) {
92
+ return (
93
+ <ActionWithModal
94
+ key={ action.id }
95
+ action={ action }
96
+ item={ item }
97
+ ActionTrigger={ PrimaryActionTrigger }
98
+ />
99
+ );
100
+ }
101
+ return (
102
+ <PrimaryActionTrigger
103
+ key={ action.id }
104
+ action={ action }
105
+ item={ item }
106
+ onClick={ () => action.callback( item ) }
107
+ />
108
+ );
109
+ } ) }
50
110
  { !! secondaryActions.length && (
51
111
  <DropdownMenu icon={ moreVertical } label={ __( 'Actions' ) }>
52
112
  { () => (
53
113
  <MenuGroup>
54
- { secondaryActions.map( ( action ) => (
55
- <MenuItem
56
- key={ action.id }
57
- onClick={ () => action.perform( item ) }
58
- isDestructive={ action.isDestructive }
59
- >
60
- { action.label }
61
- </MenuItem>
62
- ) ) }
114
+ { secondaryActions.map( ( action ) => {
115
+ if ( !! action.RenderModal ) {
116
+ return (
117
+ <ActionWithModal
118
+ key={ action.id }
119
+ action={ action }
120
+ item={ item }
121
+ ActionTrigger={
122
+ SecondaryActionTrigger
123
+ }
124
+ />
125
+ );
126
+ }
127
+ return (
128
+ <SecondaryActionTrigger
129
+ key={ action.id }
130
+ action={ action }
131
+ item={ item }
132
+ onClick={ () =>
133
+ action.callback( item )
134
+ }
135
+ />
136
+ );
137
+ } ) }
63
138
  </MenuGroup>
64
139
  ) }
65
140
  </DropdownMenu>
@@ -83,16 +83,17 @@ function Pagination( {
83
83
  min={ 1 }
84
84
  max={ totalPages }
85
85
  onChange={ ( value ) => {
86
+ const _value = +value;
86
87
  if (
87
- ! value ||
88
- value < 1 ||
89
- value > totalPages
88
+ ! _value ||
89
+ _value < 1 ||
90
+ _value > totalPages
90
91
  ) {
91
92
  return;
92
93
  }
93
94
  onChangeView( {
94
95
  ...view,
95
- page: value,
96
+ page: _value,
96
97
  } );
97
98
  } }
98
99
  step="1"
@@ -0,0 +1,26 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { Button } from '@wordpress/components';
5
+ import { __ } from '@wordpress/i18n';
6
+
7
+ export default ( { view, onChangeView } ) => {
8
+ return (
9
+ <Button
10
+ disabled={ view.search === '' && view.filters?.length === 0 }
11
+ __experimentalIsFocusable
12
+ size="compact"
13
+ variant="tertiary"
14
+ onClick={ () => {
15
+ onChangeView( ( currentView ) => ( {
16
+ ...currentView,
17
+ page: 1,
18
+ search: '',
19
+ filters: [],
20
+ } ) );
21
+ } }
22
+ >
23
+ { __( 'Reset filters' ) }
24
+ </Button>
25
+ );
26
+ };
@@ -31,6 +31,7 @@ export default function Search( { label, view, onChangeView } ) {
31
31
  const searchLabel = label || __( 'Filter list' );
32
32
  return (
33
33
  <SearchControl
34
+ __nextHasNoMarginBottom
34
35
  onChange={ setSearch }
35
36
  value={ search }
36
37
  label={ searchLabel }
@@ -31,7 +31,7 @@
31
31
  td,
32
32
  th {
33
33
  padding: $grid-unit-15;
34
- &:last-child {
34
+ &[data-field-id="actions"] {
35
35
  text-align: right;
36
36
  }
37
37
  }
@@ -49,3 +49,7 @@
49
49
  object-fit: cover;
50
50
  }
51
51
  }
52
+
53
+ .dataviews-action-modal {
54
+ z-index: z-index(".dataviews-action-modal");
55
+ }
@@ -10,9 +10,10 @@ import {
10
10
  chevronRightSmall,
11
11
  check,
12
12
  blockTable,
13
- chevronDown,
14
13
  arrowUp,
15
14
  arrowDown,
15
+ grid,
16
+ columns,
16
17
  } from '@wordpress/icons';
17
18
  import { __ } from '@wordpress/i18n';
18
19
 
@@ -38,10 +39,23 @@ const availableViews = [
38
39
  id: 'grid',
39
40
  label: __( 'Grid' ),
40
41
  },
42
+ {
43
+ id: 'side-by-side',
44
+ label: __( 'Side by side' ),
45
+ },
41
46
  ];
42
47
 
43
- function ViewTypeMenu( { view, onChangeView } ) {
44
- const activeView = availableViews.find( ( v ) => view.type === v.id );
48
+ function ViewTypeMenu( { view, onChangeView, supportedLayouts } ) {
49
+ let _availableViews = availableViews;
50
+ if ( supportedLayouts ) {
51
+ _availableViews = _availableViews.filter( ( _view ) =>
52
+ supportedLayouts.includes( _view.id )
53
+ );
54
+ }
55
+ if ( _availableViews.length === 1 ) {
56
+ return null;
57
+ }
58
+ const activeView = _availableViews.find( ( v ) => view.type === v.id );
45
59
  return (
46
60
  <DropdownSubMenuV2
47
61
  trigger={
@@ -57,7 +71,7 @@ function ViewTypeMenu( { view, onChangeView } ) {
57
71
  </DropdownSubMenuTriggerV2>
58
72
  }
59
73
  >
60
- { availableViews.map( ( availableView ) => {
74
+ { _availableViews.map( ( availableView ) => {
61
75
  return (
62
76
  <DropdownMenuItemV2
63
77
  key={ availableView.id }
@@ -82,7 +96,7 @@ function ViewTypeMenu( { view, onChangeView } ) {
82
96
  );
83
97
  }
84
98
 
85
- const PAGE_SIZE_VALUES = [ 5, 20, 50 ];
99
+ const PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];
86
100
  function PageSizeMenu( { view, onChangeView } ) {
87
101
  return (
88
102
  <DropdownSubMenuV2
@@ -261,19 +275,35 @@ function SortMenu( { fields, view, onChangeView } ) {
261
275
  );
262
276
  }
263
277
 
264
- export default function ViewActions( { fields, view, onChangeView } ) {
278
+ const VIEW_TYPE_ICONS = { list: blockTable, grid, 'side-by-side': columns };
279
+
280
+ export default function ViewActions( {
281
+ fields,
282
+ view,
283
+ onChangeView,
284
+ supportedLayouts,
285
+ } ) {
265
286
  return (
266
287
  <DropdownMenuV2
267
288
  label={ __( 'Actions' ) }
268
289
  trigger={
269
- <Button variant="tertiary" icon={ blockTable }>
290
+ <Button
291
+ variant="tertiary"
292
+ size="compact"
293
+ icon={
294
+ VIEW_TYPE_ICONS[ view.type ] || VIEW_TYPE_ICONS.list
295
+ }
296
+ >
270
297
  { __( 'View' ) }
271
- <Icon icon={ chevronDown } />
272
298
  </Button>
273
299
  }
274
300
  >
275
301
  <DropdownMenuGroupV2>
276
- <ViewTypeMenu view={ view } onChangeView={ onChangeView } />
302
+ <ViewTypeMenu
303
+ view={ view }
304
+ onChangeView={ onChangeView }
305
+ supportedLayouts={ supportedLayouts }
306
+ />
277
307
  <SortMenu
278
308
  fields={ fields }
279
309
  view={ view }