@wordpress/edit-site 6.2.0 → 6.4.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 (368) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-pattern/index.js +8 -2
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/{add-new-page → add-new-post}/index.js +21 -17
  5. package/build/components/add-new-post/index.js.map +1 -0
  6. package/build/components/add-new-template/index.js +3 -1
  7. package/build/components/add-new-template/index.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +6 -85
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/editor/index.js +21 -3
  11. package/build/components/editor/index.js.map +1 -1
  12. package/build/components/global-styles/background-panel.js +0 -5
  13. package/build/components/global-styles/background-panel.js.map +1 -1
  14. package/build/components/global-styles/block-preview-panel.js +14 -5
  15. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  16. package/build/components/global-styles/font-families.js +42 -23
  17. package/build/components/global-styles/font-families.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/font-collection.js +13 -30
  19. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/index.js +4 -4
  21. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/installed-fonts.js +60 -12
  23. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  24. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +39 -0
  25. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  26. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +39 -0
  27. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  28. package/build/components/global-styles/font-sizes/font-size-preview.js +44 -0
  29. package/build/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  30. package/build/components/global-styles/font-sizes/font-size.js +213 -0
  31. package/build/components/global-styles/font-sizes/font-size.js.map +1 -0
  32. package/build/components/global-styles/font-sizes/font-sizes-count.js +50 -0
  33. package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  34. package/build/components/global-styles/font-sizes/font-sizes.js +163 -0
  35. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  36. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js +67 -0
  37. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  38. package/build/components/global-styles/hooks.js +0 -40
  39. package/build/components/global-styles/hooks.js.map +1 -1
  40. package/build/components/global-styles/preview-typography.js +47 -0
  41. package/build/components/global-styles/preview-typography.js.map +1 -0
  42. package/build/components/global-styles/screen-block.js +17 -1
  43. package/build/components/global-styles/screen-block.js.map +1 -1
  44. package/build/components/global-styles/screen-layout.js +5 -1
  45. package/build/components/global-styles/screen-layout.js.map +1 -1
  46. package/build/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  47. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  48. package/build/components/global-styles/screen-style-variations.js +2 -2
  49. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  50. package/build/components/global-styles/screen-typography.js +3 -2
  51. package/build/components/global-styles/screen-typography.js.map +1 -1
  52. package/build/components/global-styles/shadows-edit-panel.js +1 -2
  53. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  54. package/build/components/global-styles/size-control/index.js +85 -0
  55. package/build/components/global-styles/size-control/index.js.map +1 -0
  56. package/build/components/global-styles/style-variations-container.js +8 -5
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typography-elements.js +0 -2
  59. package/build/components/global-styles/typography-elements.js.map +1 -1
  60. package/build/components/global-styles/ui.js +8 -0
  61. package/build/components/global-styles/ui.js.map +1 -1
  62. package/build/components/global-styles/variations/variation.js +4 -4
  63. package/build/components/global-styles/variations/variation.js.map +1 -1
  64. package/build/components/global-styles/variations/variations-color.js +4 -3
  65. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  66. package/build/components/global-styles/variations/variations-typography.js +15 -29
  67. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  68. package/build/components/global-styles-sidebar/index.js +2 -2
  69. package/build/components/global-styles-sidebar/index.js.map +1 -1
  70. package/build/components/layout/index.js +22 -8
  71. package/build/components/layout/index.js.map +1 -1
  72. package/build/components/layout/router.js +30 -43
  73. package/build/components/layout/router.js.map +1 -1
  74. package/build/components/page-patterns/header.js +1 -1
  75. package/build/components/page-patterns/header.js.map +1 -1
  76. package/build/components/page-patterns/index.js +65 -49
  77. package/build/components/page-patterns/index.js.map +1 -1
  78. package/build/components/page-patterns/search-items.js +29 -4
  79. package/build/components/page-patterns/search-items.js.map +1 -1
  80. package/build/components/page-patterns/use-patterns.js +22 -55
  81. package/build/components/page-patterns/use-patterns.js.map +1 -1
  82. package/build/components/page-templates/index.js +56 -50
  83. package/build/components/page-templates/index.js.map +1 -1
  84. package/build/components/pagination/index.js +4 -4
  85. package/build/components/pagination/index.js.map +1 -1
  86. package/build/components/post-edit/index.js +105 -0
  87. package/build/components/post-edit/index.js.map +1 -0
  88. package/build/components/post-fields/index.js +314 -0
  89. package/build/components/post-fields/index.js.map +1 -0
  90. package/build/components/post-list/index.js +281 -0
  91. package/build/components/post-list/index.js.map +1 -0
  92. package/build/components/posts-app/index.js +11 -17
  93. package/build/components/posts-app/index.js.map +1 -1
  94. package/build/components/posts-app/router.js +85 -0
  95. package/build/components/posts-app/router.js.map +1 -0
  96. package/build/components/revisions/index.js +10 -7
  97. package/build/components/revisions/index.js.map +1 -1
  98. package/build/components/save-panel/index.js +1 -1
  99. package/build/components/save-panel/index.js.map +1 -1
  100. package/build/components/sidebar-dataviews/add-new-view.js +4 -1
  101. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  102. package/build/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  103. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  104. package/build/components/sidebar-dataviews/default-views.js +119 -93
  105. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  106. package/build/components/sidebar-dataviews/index.js +44 -2
  107. package/build/components/sidebar-dataviews/index.js.map +1 -1
  108. package/build/components/sidebar-navigation-screen-global-styles/content.js +64 -0
  109. package/build/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  110. package/build/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  111. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  112. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  113. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  114. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  115. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  116. package/build/components/site-hub/index.js +81 -1
  117. package/build/components/site-hub/index.js.map +1 -1
  118. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  119. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  120. package/build/hooks/push-changes-to-global-styles/index.js +2 -2
  121. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  122. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +65 -42
  123. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  124. package/build/index.js +10 -0
  125. package/build/index.js.map +1 -1
  126. package/build/posts.js +57 -2
  127. package/build/posts.js.map +1 -1
  128. package/build/store/private-actions.js +7 -2
  129. package/build/store/private-actions.js.map +1 -1
  130. package/build/store/selectors.js +34 -6
  131. package/build/store/selectors.js.map +1 -1
  132. package/build/utils/get-filtered-template-parts.js +64 -0
  133. package/build/utils/get-filtered-template-parts.js.map +1 -0
  134. package/build-module/components/add-new-pattern/index.js +8 -2
  135. package/build-module/components/add-new-pattern/index.js.map +1 -1
  136. package/build-module/components/{add-new-page → add-new-post}/index.js +21 -17
  137. package/build-module/components/add-new-post/index.js.map +1 -0
  138. package/build-module/components/add-new-template/index.js +3 -1
  139. package/build-module/components/add-new-template/index.js.map +1 -1
  140. package/build-module/components/block-editor/use-site-editor-settings.js +6 -85
  141. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  142. package/build-module/components/editor/index.js +21 -3
  143. package/build-module/components/editor/index.js.map +1 -1
  144. package/build-module/components/global-styles/background-panel.js +0 -5
  145. package/build-module/components/global-styles/background-panel.js.map +1 -1
  146. package/build-module/components/global-styles/block-preview-panel.js +14 -5
  147. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  148. package/build-module/components/global-styles/font-families.js +44 -25
  149. package/build-module/components/global-styles/font-families.js.map +1 -1
  150. package/build-module/components/global-styles/font-library-modal/font-collection.js +14 -31
  151. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  152. package/build-module/components/global-styles/font-library-modal/index.js +4 -4
  153. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  154. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +63 -15
  155. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  156. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +32 -0
  157. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  158. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +32 -0
  159. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  160. package/build-module/components/global-styles/font-sizes/font-size-preview.js +37 -0
  161. package/build-module/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  162. package/build-module/components/global-styles/font-sizes/font-size.js +207 -0
  163. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -0
  164. package/build-module/components/global-styles/font-sizes/font-sizes-count.js +43 -0
  165. package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  166. package/build-module/components/global-styles/font-sizes/font-sizes.js +157 -0
  167. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  168. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +61 -0
  169. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  170. package/build-module/components/global-styles/hooks.js +0 -38
  171. package/build-module/components/global-styles/hooks.js.map +1 -1
  172. package/build-module/components/global-styles/preview-typography.js +39 -0
  173. package/build-module/components/global-styles/preview-typography.js.map +1 -0
  174. package/build-module/components/global-styles/screen-block.js +18 -1
  175. package/build-module/components/global-styles/screen-block.js.map +1 -1
  176. package/build-module/components/global-styles/screen-layout.js +5 -1
  177. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  178. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  179. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  180. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  181. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  182. package/build-module/components/global-styles/screen-typography.js +3 -2
  183. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  184. package/build-module/components/global-styles/shadows-edit-panel.js +1 -2
  185. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  186. package/build-module/components/global-styles/size-control/index.js +79 -0
  187. package/build-module/components/global-styles/size-control/index.js.map +1 -0
  188. package/build-module/components/global-styles/style-variations-container.js +9 -6
  189. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  190. package/build-module/components/global-styles/typography-elements.js +0 -2
  191. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  192. package/build-module/components/global-styles/ui.js +8 -0
  193. package/build-module/components/global-styles/ui.js.map +1 -1
  194. package/build-module/components/global-styles/variations/variation.js +5 -5
  195. package/build-module/components/global-styles/variations/variation.js.map +1 -1
  196. package/build-module/components/global-styles/variations/variations-color.js +5 -4
  197. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  198. package/build-module/components/global-styles/variations/variations-typography.js +16 -30
  199. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  200. package/build-module/components/global-styles-sidebar/index.js +2 -2
  201. package/build-module/components/global-styles-sidebar/index.js.map +1 -1
  202. package/build-module/components/layout/index.js +20 -8
  203. package/build-module/components/layout/index.js.map +1 -1
  204. package/build-module/components/layout/router.js +30 -43
  205. package/build-module/components/layout/router.js.map +1 -1
  206. package/build-module/components/page-patterns/header.js +1 -1
  207. package/build-module/components/page-patterns/header.js.map +1 -1
  208. package/build-module/components/page-patterns/index.js +66 -50
  209. package/build-module/components/page-patterns/index.js.map +1 -1
  210. package/build-module/components/page-patterns/search-items.js +28 -4
  211. package/build-module/components/page-patterns/search-items.js.map +1 -1
  212. package/build-module/components/page-patterns/use-patterns.js +23 -56
  213. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  214. package/build-module/components/page-templates/index.js +58 -53
  215. package/build-module/components/page-templates/index.js.map +1 -1
  216. package/build-module/components/pagination/index.js +4 -4
  217. package/build-module/components/pagination/index.js.map +1 -1
  218. package/build-module/components/post-edit/index.js +98 -0
  219. package/build-module/components/post-edit/index.js.map +1 -0
  220. package/build-module/components/post-fields/index.js +306 -0
  221. package/build-module/components/post-fields/index.js.map +1 -0
  222. package/build-module/components/post-list/index.js +275 -0
  223. package/build-module/components/post-list/index.js.map +1 -0
  224. package/build-module/components/posts-app/index.js +11 -17
  225. package/build-module/components/posts-app/index.js.map +1 -1
  226. package/build-module/components/posts-app/router.js +77 -0
  227. package/build-module/components/posts-app/router.js.map +1 -0
  228. package/build-module/components/revisions/index.js +10 -7
  229. package/build-module/components/revisions/index.js.map +1 -1
  230. package/build-module/components/save-panel/index.js +1 -1
  231. package/build-module/components/save-panel/index.js.map +1 -1
  232. package/build-module/components/sidebar-dataviews/add-new-view.js +4 -1
  233. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  234. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  235. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  236. package/build-module/components/sidebar-dataviews/default-views.js +117 -92
  237. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  238. package/build-module/components/sidebar-dataviews/index.js +47 -5
  239. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  240. package/build-module/components/sidebar-navigation-screen-global-styles/content.js +57 -0
  241. package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  242. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  243. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  244. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  245. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  246. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  247. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  248. package/build-module/components/site-hub/index.js +81 -1
  249. package/build-module/components/site-hub/index.js.map +1 -1
  250. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  251. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  252. package/build-module/hooks/push-changes-to-global-styles/index.js +2 -2
  253. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  254. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +61 -38
  255. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  256. package/build-module/index.js +11 -2
  257. package/build-module/index.js.map +1 -1
  258. package/build-module/posts.js +57 -2
  259. package/build-module/posts.js.map +1 -1
  260. package/build-module/store/private-actions.js +7 -2
  261. package/build-module/store/private-actions.js.map +1 -1
  262. package/build-module/store/selectors.js +35 -7
  263. package/build-module/store/selectors.js.map +1 -1
  264. package/build-module/utils/get-filtered-template-parts.js +57 -0
  265. package/build-module/utils/get-filtered-template-parts.js.map +1 -0
  266. package/build-style/posts-rtl.css +668 -510
  267. package/build-style/posts.css +668 -510
  268. package/build-style/style-rtl.css +772 -702
  269. package/build-style/style.css +772 -702
  270. package/package.json +41 -41
  271. package/src/components/add-new-pattern/index.js +8 -2
  272. package/src/components/{add-new-page → add-new-post}/index.js +28 -22
  273. package/src/components/add-new-template/index.js +4 -1
  274. package/src/components/add-new-template/style.scss +4 -6
  275. package/src/components/block-editor/use-site-editor-settings.js +10 -101
  276. package/src/components/editor/index.js +21 -5
  277. package/src/components/global-styles/background-panel.js +0 -8
  278. package/src/components/global-styles/block-preview-panel.js +22 -9
  279. package/src/components/global-styles/font-families.js +66 -31
  280. package/src/components/global-styles/font-library-modal/font-collection.js +17 -32
  281. package/src/components/global-styles/font-library-modal/index.js +4 -2
  282. package/src/components/global-styles/font-library-modal/installed-fonts.js +94 -13
  283. package/src/components/global-styles/font-library-modal/style.scss +26 -10
  284. package/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +43 -0
  285. package/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +37 -0
  286. package/src/components/global-styles/font-sizes/font-size-preview.js +43 -0
  287. package/src/components/global-styles/font-sizes/font-size.js +250 -0
  288. package/src/components/global-styles/font-sizes/font-sizes-count.js +40 -0
  289. package/src/components/global-styles/font-sizes/font-sizes.js +263 -0
  290. package/src/components/global-styles/font-sizes/rename-font-size-dialog.js +70 -0
  291. package/src/components/global-styles/hooks.js +0 -41
  292. package/src/components/global-styles/preview-typography.js +39 -0
  293. package/src/components/global-styles/screen-block.js +20 -0
  294. package/src/components/global-styles/screen-layout.js +5 -1
  295. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  296. package/src/components/global-styles/screen-style-variations.js +2 -2
  297. package/src/components/global-styles/screen-typography.js +3 -2
  298. package/src/components/global-styles/shadows-edit-panel.js +1 -2
  299. package/src/components/global-styles/size-control/index.js +86 -0
  300. package/src/components/global-styles/style-variations-container.js +14 -7
  301. package/src/components/global-styles/style.scss +13 -3
  302. package/src/components/global-styles/typography-elements.js +0 -4
  303. package/src/components/global-styles/ui.js +10 -0
  304. package/src/components/global-styles/variations/variation.js +5 -5
  305. package/src/components/global-styles/variations/variations-color.js +6 -4
  306. package/src/components/global-styles/variations/variations-typography.js +15 -33
  307. package/src/components/global-styles-sidebar/index.js +2 -2
  308. package/src/components/layout/index.js +24 -4
  309. package/src/components/layout/router.js +29 -37
  310. package/src/components/layout/style.scss +38 -8
  311. package/src/components/page-patterns/header.js +1 -1
  312. package/src/components/page-patterns/index.js +62 -64
  313. package/src/components/page-patterns/search-items.js +37 -3
  314. package/src/components/page-patterns/style.scss +1 -8
  315. package/src/components/page-patterns/use-patterns.js +43 -82
  316. package/src/components/page-templates/index.js +67 -64
  317. package/src/components/page-templates/style.scss +6 -9
  318. package/src/components/pagination/index.js +4 -4
  319. package/src/components/post-edit/index.js +96 -0
  320. package/src/components/post-edit/style.scss +9 -0
  321. package/src/components/post-fields/index.js +345 -0
  322. package/src/components/post-list/index.js +326 -0
  323. package/src/components/{page-pages → post-list}/style.scss +25 -8
  324. package/src/components/posts-app/index.js +9 -11
  325. package/src/components/posts-app/router.js +69 -0
  326. package/src/components/revisions/index.js +9 -1
  327. package/src/components/save-panel/index.js +1 -1
  328. package/src/components/sidebar/style.scss +6 -0
  329. package/src/components/sidebar-dataviews/add-new-view.js +2 -1
  330. package/src/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  331. package/src/components/sidebar-dataviews/default-views.js +131 -106
  332. package/src/components/sidebar-dataviews/index.js +39 -4
  333. package/src/components/sidebar-navigation-screen-global-styles/content.js +55 -0
  334. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -54
  335. package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +2 -1
  336. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +10 -2
  337. package/src/components/site-hub/index.js +84 -1
  338. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -2
  339. package/src/hooks/push-changes-to-global-styles/index.js +2 -2
  340. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +28 -24
  341. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +72 -47
  342. package/src/index.js +14 -1
  343. package/src/posts.js +63 -2
  344. package/src/posts.scss +9 -0
  345. package/src/store/private-actions.js +7 -3
  346. package/src/store/selectors.js +53 -14
  347. package/src/store/test/selectors.js +1 -26
  348. package/src/style.scss +2 -2
  349. package/src/utils/get-filtered-template-parts.js +61 -0
  350. package/src/utils/test/get-filtered-template-parts.js +127 -0
  351. package/build/components/add-new-page/index.js.map +0 -1
  352. package/build/components/global-styles/screen-background.js +0 -36
  353. package/build/components/global-styles/screen-background.js.map +0 -1
  354. package/build/components/page-pages/index.js +0 -473
  355. package/build/components/page-pages/index.js.map +0 -1
  356. package/build/components/table/index.js +0 -35
  357. package/build/components/table/index.js.map +0 -1
  358. package/build-module/components/add-new-page/index.js.map +0 -1
  359. package/build-module/components/global-styles/screen-background.js +0 -30
  360. package/build-module/components/global-styles/screen-background.js.map +0 -1
  361. package/build-module/components/page-pages/index.js +0 -465
  362. package/build-module/components/page-pages/index.js.map +0 -1
  363. package/build-module/components/table/index.js +0 -30
  364. package/build-module/components/table/index.js.map +0 -1
  365. package/src/components/global-styles/screen-background.js +0 -29
  366. package/src/components/page-pages/index.js +0 -564
  367. package/src/components/table/index.js +0 -33
  368. package/src/components/table/style.scss +0 -38
@@ -1,564 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { Button, __experimentalHStack as HStack } from '@wordpress/components';
5
- import { __, sprintf } from '@wordpress/i18n';
6
- import { useEntityRecords, store as coreStore } from '@wordpress/core-data';
7
- import { decodeEntities } from '@wordpress/html-entities';
8
- import {
9
- createInterpolateElement,
10
- useState,
11
- useMemo,
12
- useCallback,
13
- useEffect,
14
- } from '@wordpress/element';
15
- import { dateI18n, getDate, getSettings } from '@wordpress/date';
16
- import { privateApis as routerPrivateApis } from '@wordpress/router';
17
- import { useSelect, useDispatch } from '@wordpress/data';
18
- import { DataViews } from '@wordpress/dataviews';
19
- import { privateApis as editorPrivateApis } from '@wordpress/editor';
20
-
21
- /**
22
- * Internal dependencies
23
- */
24
- import Page from '../page';
25
- import { default as Link, useLink } from '../routes/link';
26
- import {
27
- DEFAULT_VIEWS,
28
- DEFAULT_CONFIG_PER_VIEW_TYPE,
29
- } from '../sidebar-dataviews/default-views';
30
- import {
31
- LAYOUT_GRID,
32
- LAYOUT_TABLE,
33
- LAYOUT_LIST,
34
- OPERATOR_IS_ANY,
35
- OPERATOR_IS_NONE,
36
- } from '../../utils/constants';
37
-
38
- import AddNewPageModal from '../add-new-page';
39
- import Media from '../media';
40
- import { unlock } from '../../lock-unlock';
41
- import { useEditPostAction } from '../dataviews-actions';
42
- import { usePrevious } from '@wordpress/compose';
43
-
44
- const { usePostActions } = unlock( editorPrivateApis );
45
- const { useLocation, useHistory } = unlock( routerPrivateApis );
46
- const EMPTY_ARRAY = [];
47
-
48
- const getFormattedDate = ( dateToDisplay ) =>
49
- dateI18n(
50
- getSettings().formats.datetimeAbbreviated,
51
- getDate( dateToDisplay )
52
- );
53
-
54
- function useView( postType ) {
55
- const {
56
- params: { activeView = 'all', isCustom = 'false', layout },
57
- } = useLocation();
58
- const history = useHistory();
59
- const selectedDefaultView = useMemo( () => {
60
- const defaultView =
61
- isCustom === 'false' &&
62
- DEFAULT_VIEWS[ postType ].find(
63
- ( { slug } ) => slug === activeView
64
- )?.view;
65
- if ( isCustom === 'false' && layout ) {
66
- return {
67
- ...defaultView,
68
- type: layout,
69
- layout: {
70
- ...( DEFAULT_CONFIG_PER_VIEW_TYPE[ layout ] || {} ),
71
- },
72
- };
73
- }
74
- return defaultView;
75
- }, [ isCustom, activeView, layout, postType ] );
76
- const [ view, setView ] = useState( selectedDefaultView );
77
-
78
- useEffect( () => {
79
- if ( selectedDefaultView ) {
80
- setView( selectedDefaultView );
81
- }
82
- }, [ selectedDefaultView ] );
83
- const editedViewRecord = useSelect(
84
- ( select ) => {
85
- if ( isCustom !== 'true' ) {
86
- return;
87
- }
88
- const { getEditedEntityRecord } = select( coreStore );
89
- const dataviewRecord = getEditedEntityRecord(
90
- 'postType',
91
- 'wp_dataviews',
92
- Number( activeView )
93
- );
94
- return dataviewRecord;
95
- },
96
- [ activeView, isCustom ]
97
- );
98
- const { editEntityRecord } = useDispatch( coreStore );
99
-
100
- const customView = useMemo( () => {
101
- const storedView =
102
- editedViewRecord?.content &&
103
- JSON.parse( editedViewRecord?.content );
104
- if ( ! storedView ) {
105
- return storedView;
106
- }
107
-
108
- return {
109
- ...storedView,
110
- layout: {
111
- ...( DEFAULT_CONFIG_PER_VIEW_TYPE[ storedView?.type ] || {} ),
112
- },
113
- };
114
- }, [ editedViewRecord?.content ] );
115
-
116
- const setCustomView = useCallback(
117
- ( viewToSet ) => {
118
- editEntityRecord(
119
- 'postType',
120
- 'wp_dataviews',
121
- editedViewRecord?.id,
122
- {
123
- content: JSON.stringify( viewToSet ),
124
- }
125
- );
126
- },
127
- [ editEntityRecord, editedViewRecord?.id ]
128
- );
129
-
130
- const setDefaultViewAndUpdateUrl = useCallback(
131
- ( viewToSet ) => {
132
- if ( viewToSet.type !== view?.type ) {
133
- const { params } = history.getLocationWithParams();
134
- history.push( {
135
- ...params,
136
- layout: viewToSet.type,
137
- } );
138
- }
139
- setView( viewToSet );
140
- },
141
- [ history, view?.type ]
142
- );
143
-
144
- if ( isCustom === 'false' ) {
145
- return [ view, setDefaultViewAndUpdateUrl ];
146
- } else if ( isCustom === 'true' && customView ) {
147
- return [ customView, setCustomView ];
148
- }
149
- // Loading state where no the view was not found on custom views or default views.
150
- return [ DEFAULT_VIEWS[ postType ][ 0 ].view, setDefaultViewAndUpdateUrl ];
151
- }
152
-
153
- // See https://github.com/WordPress/gutenberg/issues/55886
154
- // We do not support custom statutes at the moment.
155
- const STATUSES = [
156
- { value: 'draft', label: __( 'Draft' ) },
157
- { value: 'future', label: __( 'Scheduled' ) },
158
- { value: 'pending', label: __( 'Pending Review' ) },
159
- { value: 'private', label: __( 'Private' ) },
160
- { value: 'publish', label: __( 'Published' ) },
161
- { value: 'trash', label: __( 'Trash' ) },
162
- ];
163
- const DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All but 'trash'.
164
-
165
- function FeaturedImage( { item, viewType } ) {
166
- const isDisabled = item.status === 'trash';
167
- const { onClick } = useLink( {
168
- postId: item.id,
169
- postType: item.type,
170
- canvas: 'edit',
171
- } );
172
- const hasMedia = !! item.featured_media;
173
- const size =
174
- viewType === LAYOUT_GRID
175
- ? [ 'large', 'full', 'medium', 'thumbnail' ]
176
- : [ 'thumbnail', 'medium', 'large', 'full' ];
177
- const media = hasMedia ? (
178
- <Media
179
- className="edit-site-page-pages__featured-image"
180
- id={ item.featured_media }
181
- size={ size }
182
- />
183
- ) : null;
184
- const renderButton = viewType !== LAYOUT_LIST && ! isDisabled;
185
- return (
186
- <div
187
- className={ `edit-site-page-pages__featured-image-wrapper is-layout-${ viewType }` }
188
- >
189
- { renderButton ? (
190
- <button
191
- className="page-pages-preview-field__button"
192
- type="button"
193
- onClick={ onClick }
194
- aria-label={ item.title?.rendered || __( '(no title)' ) }
195
- >
196
- { media }
197
- </button>
198
- ) : (
199
- media
200
- ) }
201
- </div>
202
- );
203
- }
204
-
205
- function getItemId( item ) {
206
- return item.id.toString();
207
- }
208
-
209
- export default function PagePages() {
210
- const postType = 'page';
211
- const [ view, setView ] = useView( postType );
212
- const history = useHistory();
213
- const {
214
- params: { postId },
215
- } = useLocation();
216
- const [ selection, setSelection ] = useState( [ postId ] );
217
-
218
- const onSelectionChange = useCallback(
219
- ( items ) => {
220
- const { params } = history.getLocationWithParams();
221
- if (
222
- ( params.isCustom ?? 'false' ) === 'false' &&
223
- view?.type === LAYOUT_LIST
224
- ) {
225
- history.push( {
226
- ...params,
227
- postId: items.length === 1 ? items[ 0 ].id : undefined,
228
- } );
229
- }
230
- },
231
- [ history, view?.type ]
232
- );
233
-
234
- const queryArgs = useMemo( () => {
235
- const filters = {};
236
- view.filters.forEach( ( filter ) => {
237
- if (
238
- filter.field === 'status' &&
239
- filter.operator === OPERATOR_IS_ANY
240
- ) {
241
- filters.status = filter.value;
242
- }
243
- if (
244
- filter.field === 'author' &&
245
- filter.operator === OPERATOR_IS_ANY
246
- ) {
247
- filters.author = filter.value;
248
- } else if (
249
- filter.field === 'author' &&
250
- filter.operator === OPERATOR_IS_NONE
251
- ) {
252
- filters.author_exclude = filter.value;
253
- }
254
- } );
255
- // We want to provide a different default item for the status filter
256
- // than the REST API provides.
257
- if ( ! filters.status || filters.status === '' ) {
258
- filters.status = DEFAULT_STATUSES;
259
- }
260
-
261
- return {
262
- per_page: view.perPage,
263
- page: view.page,
264
- _embed: 'author',
265
- order: view.sort?.direction,
266
- orderby: view.sort?.field,
267
- search: view.search,
268
- ...filters,
269
- };
270
- }, [ view ] );
271
- const {
272
- records: pages,
273
- isResolving: isLoadingPages,
274
- totalItems,
275
- totalPages,
276
- } = useEntityRecords( 'postType', postType, queryArgs );
277
-
278
- const ids = pages?.map( ( page ) => getItemId( page ) ) ?? [];
279
- const prevIds = usePrevious( ids ) ?? [];
280
- const deletedIds = prevIds.filter( ( id ) => ! ids.includes( id ) );
281
- const postIdWasDeleted = deletedIds.includes( postId );
282
-
283
- useEffect( () => {
284
- if ( postIdWasDeleted ) {
285
- history.push( {
286
- ...history.getLocationWithParams().params,
287
- postId: undefined,
288
- } );
289
- }
290
- }, [ postIdWasDeleted, history ] );
291
-
292
- const { records: authors, isResolving: isLoadingAuthors } =
293
- useEntityRecords( 'root', 'user', { per_page: -1 } );
294
-
295
- const paginationInfo = useMemo(
296
- () => ( {
297
- totalItems,
298
- totalPages,
299
- } ),
300
- [ totalItems, totalPages ]
301
- );
302
-
303
- const { frontPageId, postsPageId, addNewLabel, canCreatePage } = useSelect(
304
- ( select ) => {
305
- const { getEntityRecord, getPostType, canUser } =
306
- select( coreStore );
307
- const siteSettings = getEntityRecord( 'root', 'site' );
308
- return {
309
- frontPageId: siteSettings?.page_on_front,
310
- postsPageId: siteSettings?.page_for_posts,
311
- addNewLabel: getPostType( 'page' )?.labels?.add_new_item,
312
- canCreatePage: canUser( 'create', 'pages' ),
313
- };
314
- }
315
- );
316
-
317
- const fields = useMemo(
318
- () => [
319
- {
320
- id: 'featured-image',
321
- header: __( 'Featured Image' ),
322
- getValue: ( { item } ) => item.featured_media,
323
- render: ( { item } ) => (
324
- <FeaturedImage item={ item } viewType={ view.type } />
325
- ),
326
- enableSorting: false,
327
- width: '1%',
328
- },
329
- {
330
- header: __( 'Title' ),
331
- id: 'title',
332
- getValue: ( { item } ) => item.title?.rendered,
333
- render: ( { item } ) => {
334
- const addLink =
335
- [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&
336
- item.status !== 'trash';
337
- const title = addLink ? (
338
- <Link
339
- params={ {
340
- postId: item.id,
341
- postType: item.type,
342
- canvas: 'edit',
343
- } }
344
- >
345
- { decodeEntities( item.title?.rendered ) ||
346
- __( '(no title)' ) }
347
- </Link>
348
- ) : (
349
- <span>
350
- { decodeEntities( item.title?.rendered ) ||
351
- __( '(no title)' ) }
352
- </span>
353
- );
354
-
355
- let suffix = '';
356
- if ( item.id === frontPageId ) {
357
- suffix = (
358
- <span className="edit-site-page-pages__title-badge">
359
- { __( 'Front Page' ) }
360
- </span>
361
- );
362
- } else if ( item.id === postsPageId ) {
363
- suffix = (
364
- <span className="edit-site-page-pages__title-badge">
365
- { __( 'Posts Page' ) }
366
- </span>
367
- );
368
- }
369
-
370
- return (
371
- <HStack
372
- className="edit-site-page-pages-title"
373
- alignment="center"
374
- justify="flex-start"
375
- >
376
- { title }
377
- { suffix }
378
- </HStack>
379
- );
380
- },
381
- maxWidth: 300,
382
- enableHiding: false,
383
- },
384
- {
385
- header: __( 'Author' ),
386
- id: 'author',
387
- getValue: ( { item } ) => item._embedded?.author[ 0 ]?.name,
388
- elements:
389
- authors?.map( ( { id, name } ) => ( {
390
- value: id,
391
- label: name,
392
- } ) ) || [],
393
- },
394
- {
395
- header: __( 'Status' ),
396
- id: 'status',
397
- getValue: ( { item } ) =>
398
- STATUSES.find( ( { value } ) => value === item.status )
399
- ?.label ?? item.status,
400
- elements: STATUSES,
401
- enableSorting: false,
402
- filterBy: {
403
- operators: [ OPERATOR_IS_ANY ],
404
- },
405
- },
406
- {
407
- header: __( 'Date' ),
408
- id: 'date',
409
- render: ( { item } ) => {
410
- const isDraftOrPrivate = [ 'draft', 'private' ].includes(
411
- item.status
412
- );
413
- if ( isDraftOrPrivate ) {
414
- return createInterpolateElement(
415
- sprintf(
416
- /* translators: %s: page creation date */
417
- __( '<span>Modified: <time>%s</time></span>' ),
418
- getFormattedDate( item.date )
419
- ),
420
- {
421
- span: <span />,
422
- time: <time />,
423
- }
424
- );
425
- }
426
-
427
- const isScheduled = item.status === 'future';
428
- if ( isScheduled ) {
429
- return createInterpolateElement(
430
- sprintf(
431
- /* translators: %s: page creation date */
432
- __( '<span>Scheduled: <time>%s</time></span>' ),
433
- getFormattedDate( item.date )
434
- ),
435
- {
436
- span: <span />,
437
- time: <time />,
438
- }
439
- );
440
- }
441
-
442
- // Pending & Published posts show the modified date if it's newer.
443
- const dateToDisplay =
444
- getDate( item.modified ) > getDate( item.date )
445
- ? item.modified
446
- : item.date;
447
-
448
- const isPending = item.status === 'pending';
449
- if ( isPending ) {
450
- return createInterpolateElement(
451
- sprintf(
452
- /* translators: %s: the newest of created or modified date for the page */
453
- __( '<span>Modified: <time>%s</time></span>' ),
454
- getFormattedDate( dateToDisplay )
455
- ),
456
- {
457
- span: <span />,
458
- time: <time />,
459
- }
460
- );
461
- }
462
-
463
- const isPublished = item.status === 'publish';
464
- if ( isPublished ) {
465
- return createInterpolateElement(
466
- sprintf(
467
- /* translators: %s: the newest of created or modified date for the page */
468
- __( '<span>Published: <time>%s</time></span>' ),
469
- getFormattedDate( dateToDisplay )
470
- ),
471
- {
472
- span: <span />,
473
- time: <time />,
474
- }
475
- );
476
- }
477
-
478
- // Unknow status.
479
- return <time>{ getFormattedDate( item.date ) }</time>;
480
- },
481
- },
482
- ],
483
- [ authors, view.type, frontPageId, postsPageId ]
484
- );
485
-
486
- const postTypeActions = usePostActions( {
487
- postType: 'page',
488
- context: 'list',
489
- } );
490
- const editAction = useEditPostAction();
491
- const actions = useMemo(
492
- () => [ editAction, ...postTypeActions ],
493
- [ postTypeActions, editAction ]
494
- );
495
-
496
- const onChangeView = useCallback(
497
- ( newView ) => {
498
- if ( newView.type !== view.type ) {
499
- newView = {
500
- ...newView,
501
- layout: {
502
- ...DEFAULT_CONFIG_PER_VIEW_TYPE[ newView.type ],
503
- },
504
- };
505
- }
506
-
507
- setView( newView );
508
- },
509
- [ view.type, setView ]
510
- );
511
-
512
- const [ showAddPageModal, setShowAddPageModal ] = useState( false );
513
-
514
- const openModal = () => setShowAddPageModal( true );
515
- const closeModal = () => setShowAddPageModal( false );
516
- const handleNewPage = ( { type, id } ) => {
517
- history.push( {
518
- postId: id,
519
- postType: type,
520
- canvas: 'edit',
521
- } );
522
- closeModal();
523
- };
524
-
525
- return (
526
- <Page
527
- title={ __( 'Pages' ) }
528
- actions={
529
- addNewLabel &&
530
- canCreatePage && (
531
- <>
532
- <Button
533
- variant="primary"
534
- onClick={ openModal }
535
- __next40pxDefaultSize
536
- >
537
- { addNewLabel }
538
- </Button>
539
- { showAddPageModal && (
540
- <AddNewPageModal
541
- onSave={ handleNewPage }
542
- onClose={ closeModal }
543
- />
544
- ) }
545
- </>
546
- )
547
- }
548
- >
549
- <DataViews
550
- paginationInfo={ paginationInfo }
551
- fields={ fields }
552
- actions={ actions }
553
- data={ pages || EMPTY_ARRAY }
554
- isLoading={ isLoadingPages || isLoadingAuthors }
555
- view={ view }
556
- onChangeView={ onChangeView }
557
- selection={ selection }
558
- setSelection={ setSelection }
559
- onSelectionChange={ onSelectionChange }
560
- getItemId={ getItemId }
561
- />
562
- </Page>
563
- );
564
- }
@@ -1,33 +0,0 @@
1
- export default function Table( { data, columns } ) {
2
- return (
3
- <div className="edit-site-table-wrapper">
4
- <table className="edit-site-table">
5
- <thead>
6
- <tr>
7
- { columns.map( ( column ) => (
8
- <th key={ column.header }>{ column.header }</th>
9
- ) ) }
10
- </tr>
11
- </thead>
12
- <tbody>
13
- { data.map( ( row, rowIndex ) => (
14
- <tr key={ rowIndex }>
15
- { columns.map( ( column, columnIndex ) => (
16
- <td
17
- style={ {
18
- maxWidth: column.maxWidth
19
- ? column.maxWidth
20
- : undefined,
21
- } }
22
- key={ columnIndex }
23
- >
24
- { column.cell( row ) }
25
- </td>
26
- ) ) }
27
- </tr>
28
- ) ) }
29
- </tbody>
30
- </table>
31
- </div>
32
- );
33
- }
@@ -1,38 +0,0 @@
1
- .edit-site-table-wrapper {
2
- width: 100%;
3
- padding: $grid-unit-40;
4
- }
5
-
6
- .edit-site-table {
7
- width: 100%;
8
- text-indent: 0;
9
- border-color: inherit;
10
- border-collapse: collapse;
11
- position: relative;
12
- a {
13
- text-decoration: none;
14
- }
15
- th {
16
- text-align: left;
17
- font-weight: normal;
18
- padding: 0 $grid-unit-20 $grid-unit-20;
19
- color: $gray-700;
20
- }
21
- td {
22
- padding: $grid-unit-20;
23
- }
24
- td,
25
- th {
26
- vertical-align: center;
27
- &:first-child {
28
- padding-left: 0;
29
- }
30
- &:last-child {
31
- padding-right: 0;
32
- text-align: right;
33
- }
34
- }
35
- tr {
36
- border-bottom: 1px solid $gray-100;
37
- }
38
- }