@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,9 +1,11 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { createHigherOrderComponent } from '@wordpress/compose';
5
- import { addFilter, removeFilter } from '@wordpress/hooks';
6
- import { useBlockEditingMode } from '@wordpress/block-editor';
4
+ import { useSelect, useDispatch } from '@wordpress/data';
5
+ import {
6
+ useBlockEditingMode,
7
+ store as blockEditorStore,
8
+ } from '@wordpress/block-editor';
7
9
  import { useEffect } from '@wordpress/element';
8
10
 
9
11
  /**
@@ -11,42 +13,45 @@ import { useEffect } from '@wordpress/element';
11
13
  */
12
14
  import { PAGE_CONTENT_BLOCK_TYPES } from '../../utils/constants';
13
15
 
16
+ function DisableBlock( { clientId } ) {
17
+ const isDescendentOfQueryLoop = useSelect(
18
+ ( select ) => {
19
+ const { getBlockParentsByBlockName } = select( blockEditorStore );
20
+ return (
21
+ getBlockParentsByBlockName( clientId, 'core/query' ).length !==
22
+ 0
23
+ );
24
+ },
25
+ [ clientId ]
26
+ );
27
+ const mode = isDescendentOfQueryLoop ? undefined : 'contentOnly';
28
+ const { setBlockEditingMode, unsetBlockEditingMode } =
29
+ useDispatch( blockEditorStore );
30
+ useEffect( () => {
31
+ if ( mode ) {
32
+ setBlockEditingMode( clientId, mode );
33
+ return () => {
34
+ unsetBlockEditingMode( clientId );
35
+ };
36
+ }
37
+ }, [ clientId, mode, setBlockEditingMode, unsetBlockEditingMode ] );
38
+ }
39
+
14
40
  /**
15
41
  * Component that when rendered, makes it so that the site editor allows only
16
42
  * page content to be edited.
17
43
  */
18
44
  export default function DisableNonPageContentBlocks() {
19
- useDisableNonPageContentBlocks();
20
- return null;
21
- }
22
-
23
- /**
24
- * Disables non-content blocks using the `useBlockEditingMode` hook.
25
- */
26
- export function useDisableNonPageContentBlocks() {
27
45
  useBlockEditingMode( 'disabled' );
28
- useEffect( () => {
29
- addFilter(
30
- 'editor.BlockEdit',
31
- 'core/edit-site/disable-non-content-blocks',
32
- withDisableNonPageContentBlocks
46
+ const clientIds = useSelect( ( select ) => {
47
+ const { __experimentalGetGlobalBlocksByName } =
48
+ select( blockEditorStore );
49
+ return __experimentalGetGlobalBlocksByName(
50
+ Object.keys( PAGE_CONTENT_BLOCK_TYPES )
33
51
  );
34
- return () =>
35
- removeFilter(
36
- 'editor.BlockEdit',
37
- 'core/edit-site/disable-non-content-blocks'
38
- );
39
52
  }, [] );
40
- }
41
53
 
42
- const withDisableNonPageContentBlocks = createHigherOrderComponent(
43
- ( BlockEdit ) => ( props ) => {
44
- const isDescendentOfQueryLoop = props.context.queryId !== undefined;
45
- const isPageContent =
46
- PAGE_CONTENT_BLOCK_TYPES[ props.name ] && ! isDescendentOfQueryLoop;
47
- const mode = isPageContent ? 'contentOnly' : undefined;
48
- useBlockEditingMode( mode );
49
- return <BlockEdit { ...props } />;
50
- },
51
- 'withDisableNonPageContentBlocks'
52
- );
54
+ return clientIds.map( ( clientId ) => {
55
+ return <DisableBlock key={ clientId } clientId={ clientId } />;
56
+ } );
57
+ }
@@ -9,6 +9,7 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
9
9
  import PagePatterns from '../page-patterns';
10
10
  import PageTemplateParts from '../page-template-parts';
11
11
  import PageTemplates from '../page-templates';
12
+ import DataviewsTemplates from '../page-templates/dataviews-templates';
12
13
  import PagePages from '../page-pages';
13
14
  import { unlock } from '../../lock-unlock';
14
15
 
@@ -20,7 +21,11 @@ export default function PageMain() {
20
21
  } = useLocation();
21
22
 
22
23
  if ( path === '/wp_template/all' ) {
23
- return <PageTemplates />;
24
+ return window?.__experimentalAdminViews ? (
25
+ <DataviewsTemplates />
26
+ ) : (
27
+ <PageTemplates />
28
+ );
24
29
  } else if ( path === '/wp_template_part/all' ) {
25
30
  return <PageTemplateParts />;
26
31
  } else if ( path === '/patterns' ) {
@@ -6,25 +6,29 @@ import {
6
6
  __experimentalVStack as VStack,
7
7
  } from '@wordpress/components';
8
8
  import { __ } from '@wordpress/i18n';
9
- import { useEntityRecords } from '@wordpress/core-data';
9
+ import { useEntityRecords, store as coreStore } from '@wordpress/core-data';
10
10
  import { decodeEntities } from '@wordpress/html-entities';
11
11
  import { useState, useMemo, useCallback, useEffect } from '@wordpress/element';
12
12
  import { dateI18n, getDate, getSettings } from '@wordpress/date';
13
13
  import { privateApis as routerPrivateApis } from '@wordpress/router';
14
+ import { useSelect, useDispatch } from '@wordpress/data';
14
15
 
15
16
  /**
16
17
  * Internal dependencies
17
18
  */
18
19
  import Page from '../page';
19
20
  import Link from '../routes/link';
20
- import { DataViews } from '../dataviews';
21
- import { DEFAULT_STATUSES, default as DEFAULT_VIEWS } from './default-views';
21
+ import { DataViews, viewTypeSupportsMap } from '../dataviews';
22
+ import { default as DEFAULT_VIEWS } from '../sidebar-dataviews/default-views';
22
23
  import {
23
24
  useTrashPostAction,
25
+ usePermanentlyDeletePostAction,
26
+ useRestorePostAction,
24
27
  postRevisionsAction,
25
28
  viewPostAction,
26
29
  useEditPostAction,
27
30
  } from '../actions';
31
+ import SideEditor from './side-editor';
28
32
  import Media from '../media';
29
33
  import { unlock } from '../../lock-unlock';
30
34
  const { useLocation } = unlock( routerPrivateApis );
@@ -37,73 +41,117 @@ const defaultConfigPerViewType = {
37
41
  },
38
42
  };
39
43
 
40
- export default function PagePages() {
44
+ function useView( type ) {
41
45
  const {
42
- params: { path, activeView = 'all' },
46
+ params: { activeView = 'all', isCustom = 'false' },
43
47
  } = useLocation();
44
- const initialView = DEFAULT_VIEWS.find(
45
- ( { slug } ) => slug === activeView
46
- ).view;
47
- const [ view, setView ] = useState( initialView );
48
+ const selectedDefaultView =
49
+ isCustom === 'false' &&
50
+ DEFAULT_VIEWS[ type ].find( ( { slug } ) => slug === activeView )?.view;
51
+ const [ view, setView ] = useState( selectedDefaultView );
52
+
48
53
  useEffect( () => {
49
- setView(
50
- DEFAULT_VIEWS.find( ( { slug } ) => slug === activeView ).view
54
+ if ( selectedDefaultView ) {
55
+ setView( selectedDefaultView );
56
+ }
57
+ }, [ selectedDefaultView ] );
58
+ const editedViewRecord = useSelect(
59
+ ( select ) => {
60
+ if ( isCustom !== 'true' ) {
61
+ return;
62
+ }
63
+ const { getEditedEntityRecord } = select( coreStore );
64
+ const dataviewRecord = getEditedEntityRecord(
65
+ 'postType',
66
+ 'wp_dataviews',
67
+ Number( activeView )
68
+ );
69
+ return dataviewRecord;
70
+ },
71
+ [ activeView, isCustom ]
72
+ );
73
+ const { editEntityRecord } = useDispatch( coreStore );
74
+
75
+ const customView = useMemo( () => {
76
+ return (
77
+ editedViewRecord?.content && JSON.parse( editedViewRecord?.content )
51
78
  );
52
- }, [ path, activeView ] );
53
- // Request post statuses to get the proper labels.
54
- const { records: statuses } = useEntityRecords( 'root', 'status' );
55
- const defaultStatuses = useMemo( () => {
56
- return statuses === null
57
- ? DEFAULT_STATUSES
58
- : statuses
59
- .filter( ( { slug } ) => slug !== 'trash' )
60
- .map( ( { slug } ) => slug )
61
- .sort()
62
- .join();
63
- }, [ statuses ] );
79
+ }, [ editedViewRecord?.content ] );
80
+ const setCustomView = useCallback(
81
+ ( viewToSet ) => {
82
+ editEntityRecord(
83
+ 'postType',
84
+ 'wp_dataviews',
85
+ editedViewRecord?.id,
86
+ {
87
+ content: JSON.stringify( viewToSet ),
88
+ }
89
+ );
90
+ },
91
+ [ editEntityRecord, editedViewRecord?.id ]
92
+ );
64
93
 
65
- useEffect( () => {
66
- // Only update the view if the statuses received from the endpoint
67
- // are different from the DEFAULT_STATUSES provided initially.
68
- //
69
- // The pages endpoint depends on the status endpoint via the status filter.
70
- // Initially, this code filters the pages request by DEFAULT_STATUTES,
71
- // instead of using the default (publish).
72
- // https://developer.wordpress.org/rest-api/reference/pages/#list-pages
73
- //
74
- // By doing so, it avoids a second request to the pages endpoint
75
- // upon receiving the statuses when they are the same (most common scenario).
76
- if ( DEFAULT_STATUSES !== defaultStatuses ) {
77
- setView( {
78
- ...view,
79
- filters: {
80
- ...view.filters,
81
- status: defaultStatuses,
82
- },
83
- } );
94
+ if ( isCustom === 'false' ) {
95
+ return [ view, setView ];
96
+ } else if ( isCustom === 'true' && customView ) {
97
+ return [ customView, setCustomView ];
98
+ }
99
+ // Loading state where no the view was not found on custom views or default views.
100
+ return [ DEFAULT_VIEWS[ type ][ 0 ].view, setView ];
101
+ }
102
+
103
+ // See https://github.com/WordPress/gutenberg/issues/55886
104
+ // We do not support custom statutes at the moment.
105
+ const STATUSES = [
106
+ { value: 'draft', label: __( 'Draft' ) },
107
+ { value: 'future', label: __( 'Scheduled' ) },
108
+ { value: 'pending', label: __( 'Pending Review' ) },
109
+ { value: 'private', label: __( 'Private' ) },
110
+ { value: 'publish', label: __( 'Published' ) },
111
+ { value: 'trash', label: __( 'Trash' ) },
112
+ ];
113
+ const DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All but 'trash'.
114
+
115
+ export default function PagePages() {
116
+ const postType = 'page';
117
+ const [ view, setView ] = useView( postType );
118
+ const [ selection, setSelection ] = useState( [] );
119
+
120
+ const queryArgs = useMemo( () => {
121
+ const filters = {};
122
+ view.filters.forEach( ( filter ) => {
123
+ if ( filter.field === 'status' && filter.operator === 'in' ) {
124
+ filters.status = filter.value;
125
+ }
126
+ if ( filter.field === 'author' && filter.operator === 'in' ) {
127
+ filters.author = filter.value;
128
+ }
129
+ } );
130
+ // We want to provide a different default item for the status filter
131
+ // than the REST API provides.
132
+ if ( ! filters.status || filters.status === '' ) {
133
+ filters.status = DEFAULT_STATUSES;
84
134
  }
85
- }, [ defaultStatuses ] );
86
135
 
87
- const queryArgs = useMemo(
88
- () => ( {
136
+ return {
89
137
  per_page: view.perPage,
90
138
  page: view.page,
91
139
  _embed: 'author',
92
140
  order: view.sort?.direction,
93
141
  orderby: view.sort?.field,
94
142
  search: view.search,
95
- ...view.filters,
96
- } ),
97
- [ view ]
98
- );
143
+ ...filters,
144
+ };
145
+ }, [ view ] );
99
146
  const {
100
147
  records: pages,
101
148
  isResolving: isLoadingPages,
102
149
  totalItems,
103
150
  totalPages,
104
- } = useEntityRecords( 'postType', 'page', queryArgs );
151
+ } = useEntityRecords( 'postType', postType, queryArgs );
105
152
 
106
- const { records: authors } = useEntityRecords( 'root', 'user' );
153
+ const { records: authors, isResolving: isLoadingAuthors } =
154
+ useEntityRecords( 'root', 'user' );
107
155
 
108
156
  const paginationInfo = useMemo(
109
157
  () => ( {
@@ -137,7 +185,7 @@ export default function PagePages() {
137
185
  header: __( 'Title' ),
138
186
  id: 'title',
139
187
  getValue: ( { item } ) => item.title?.rendered || item.slug,
140
- render: ( { item } ) => {
188
+ render: ( { item, view: { type } } ) => {
141
189
  return (
142
190
  <VStack spacing={ 1 }>
143
191
  <Heading as="h3" level={ 5 }>
@@ -147,6 +195,14 @@ export default function PagePages() {
147
195
  postType: item.type,
148
196
  canvas: 'edit',
149
197
  } }
198
+ onClick={ ( event ) => {
199
+ if (
200
+ viewTypeSupportsMap[ type ].preview
201
+ ) {
202
+ event.preventDefault();
203
+ setSelection( [ item.id ] );
204
+ }
205
+ } }
150
206
  >
151
207
  { decodeEntities(
152
208
  item.title?.rendered || item.slug
@@ -157,7 +213,6 @@ export default function PagePages() {
157
213
  );
158
214
  },
159
215
  maxWidth: 400,
160
- sortingFn: 'alphanumeric',
161
216
  enableHiding: false,
162
217
  },
163
218
  {
@@ -172,7 +227,7 @@ export default function PagePages() {
172
227
  </a>
173
228
  );
174
229
  },
175
- filters: [ 'enumeration' ],
230
+ filters: [ 'in' ],
176
231
  elements:
177
232
  authors?.map( ( { id, name } ) => ( {
178
233
  value: id,
@@ -183,20 +238,10 @@ export default function PagePages() {
183
238
  header: __( 'Status' ),
184
239
  id: 'status',
185
240
  getValue: ( { item } ) =>
186
- statuses?.find( ( { slug } ) => slug === item.status )
187
- ?.name ?? item.status,
188
- filters: [
189
- {
190
- type: 'enumeration',
191
- id: 'status',
192
- resetValue: defaultStatuses,
193
- },
194
- ],
195
- elements:
196
- statuses?.map( ( { slug, name } ) => ( {
197
- value: slug,
198
- label: name,
199
- } ) ) || [],
241
+ STATUSES.find( ( { value } ) => value === item.status )
242
+ ?.label ?? item.status,
243
+ filters: [ 'in' ],
244
+ elements: STATUSES,
200
245
  enableSorting: false,
201
246
  },
202
247
  {
@@ -212,19 +257,28 @@ export default function PagePages() {
212
257
  },
213
258
  },
214
259
  ],
215
- [ defaultStatuses, statuses, authors ]
260
+ [ authors ]
216
261
  );
217
262
 
218
263
  const trashPostAction = useTrashPostAction();
264
+ const permanentlyDeletePostAction = usePermanentlyDeletePostAction();
265
+ const restorePostAction = useRestorePostAction();
219
266
  const editPostAction = useEditPostAction();
220
267
  const actions = useMemo(
221
268
  () => [
222
269
  viewPostAction,
223
270
  trashPostAction,
271
+ restorePostAction,
272
+ permanentlyDeletePostAction,
224
273
  editPostAction,
225
274
  postRevisionsAction,
226
275
  ],
227
- [ trashPostAction, editPostAction ]
276
+ [
277
+ trashPostAction,
278
+ permanentlyDeletePostAction,
279
+ restorePostAction,
280
+ editPostAction,
281
+ ]
228
282
  );
229
283
  const onChangeView = useCallback(
230
284
  ( viewUpdater ) => {
@@ -248,16 +302,43 @@ export default function PagePages() {
248
302
 
249
303
  // TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.
250
304
  return (
251
- <Page title={ __( 'Pages' ) }>
252
- <DataViews
253
- paginationInfo={ paginationInfo }
254
- fields={ fields }
255
- actions={ actions }
256
- data={ pages || EMPTY_ARRAY }
257
- isLoading={ isLoadingPages }
258
- view={ view }
259
- onChangeView={ onChangeView }
260
- />
261
- </Page>
305
+ <>
306
+ <Page title={ __( 'Pages' ) }>
307
+ <DataViews
308
+ paginationInfo={ paginationInfo }
309
+ fields={ fields }
310
+ actions={ actions }
311
+ data={ pages || EMPTY_ARRAY }
312
+ isLoading={ isLoadingPages || isLoadingAuthors }
313
+ view={ view }
314
+ onChangeView={ onChangeView }
315
+ />
316
+ </Page>
317
+ { viewTypeSupportsMap[ view.type ].preview && (
318
+ <Page>
319
+ <div className="edit-site-page-pages-preview">
320
+ { selection.length === 1 && (
321
+ <SideEditor
322
+ postId={ selection[ 0 ] }
323
+ postType={ postType }
324
+ />
325
+ ) }
326
+ { selection.length !== 1 && (
327
+ <div
328
+ style={ {
329
+ display: 'flex',
330
+ flexDirection: 'column',
331
+ justifyContent: 'center',
332
+ textAlign: 'center',
333
+ height: '100%',
334
+ } }
335
+ >
336
+ <p>{ __( 'Select a page to preview' ) }</p>
337
+ </div>
338
+ ) }
339
+ </div>
340
+ </Page>
341
+ ) }
342
+ </>
262
343
  );
263
344
  }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import Editor from '../editor';
5
+ import { useInitEditedEntity } from '../sync-state-with-url/use-init-edited-entity-from-url';
6
+
7
+ export default function SideEditor( { postType, postId } ) {
8
+ useInitEditedEntity( {
9
+ postId,
10
+ postType,
11
+ } );
12
+
13
+ return <Editor />;
14
+ }
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import downloadjs from 'downloadjs';
6
5
  import { paramCase as kebabCase } from 'change-case';
7
6
 
8
7
  /**
@@ -37,6 +36,7 @@ import {
37
36
  } from '@wordpress/icons';
38
37
  import { store as noticesStore } from '@wordpress/notices';
39
38
  import { store as reusableBlocksStore } from '@wordpress/reusable-blocks';
39
+ import { downloadBlob } from '@wordpress/blob';
40
40
 
41
41
  /**
42
42
  * Internal dependencies
@@ -118,9 +118,9 @@ function GridItem( { categoryId, item, ...props } ) {
118
118
  syncStatus: item.patternBlock.wp_pattern_sync_status,
119
119
  };
120
120
 
121
- return downloadjs(
122
- JSON.stringify( json, null, 2 ),
121
+ return downloadBlob(
123
122
  `${ kebabCase( item.title || item.name ) }.json`,
123
+ JSON.stringify( json, null, 2 ),
124
124
  'application/json'
125
125
  );
126
126
  };
@@ -12,7 +12,7 @@ import {
12
12
  __experimentalHeading as Heading,
13
13
  __experimentalText as Text,
14
14
  } from '@wordpress/components';
15
- import { __, isRTL } from '@wordpress/i18n';
15
+ import { __, _x, isRTL } from '@wordpress/i18n';
16
16
  import { chevronLeft, chevronRight } from '@wordpress/icons';
17
17
  import { privateApis as routerPrivateApis } from '@wordpress/router';
18
18
  import { useAsyncList, useViewportMatch } from '@wordpress/compose';
@@ -33,9 +33,15 @@ import Pagination from './pagination';
33
33
  const { useLocation, useHistory } = unlock( routerPrivateApis );
34
34
 
35
35
  const SYNC_FILTERS = {
36
- all: __( 'All' ),
37
- [ PATTERN_SYNC_TYPES.full ]: __( 'Synced' ),
38
- [ PATTERN_SYNC_TYPES.unsynced ]: __( 'Not synced' ),
36
+ all: _x( 'All', 'Option that shows all patterns' ),
37
+ [ PATTERN_SYNC_TYPES.full ]: _x(
38
+ 'Synced',
39
+ 'Option that shows all synchronized patterns'
40
+ ),
41
+ [ PATTERN_SYNC_TYPES.unsynced ]: _x(
42
+ 'Not synced',
43
+ 'Option that shows all patterns that are not synchronized'
44
+ ),
39
45
  };
40
46
 
41
47
  const SYNC_DESCRIPTIONS = {
@@ -5,6 +5,10 @@ import { MenuItem } from '@wordpress/components';
5
5
  import { useState } from '@wordpress/element';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';
8
12
 
9
13
  /**
10
14
  * Internal dependencies
@@ -16,30 +20,43 @@ const { RenamePatternCategoryModal } = unlock( patternsPrivateApis );
16
20
  export default function RenameCategoryMenuItem( { category, onClose } ) {
17
21
  const [ isModalOpen, setIsModalOpen ] = useState( false );
18
22
 
19
- // User created pattern categories have their properties updated when
20
- // retrieved via `getUserPatternCategories`. The rename modal expects an
21
- // object that will match the pattern category entity.
22
- const normalizedCategory = {
23
- id: category.id,
24
- slug: category.slug,
25
- name: category.label,
26
- };
27
-
28
23
  return (
29
24
  <>
30
25
  <MenuItem onClick={ () => setIsModalOpen( true ) }>
31
26
  { __( 'Rename' ) }
32
27
  </MenuItem>
33
28
  { isModalOpen && (
34
- <RenamePatternCategoryModal
35
- category={ normalizedCategory }
29
+ <RenameModal
30
+ category={ category }
36
31
  onClose={ () => {
37
32
  setIsModalOpen( false );
38
33
  onClose();
39
34
  } }
40
- overlayClassName="edit-site-list__rename-modal"
41
35
  />
42
36
  ) }
43
37
  </>
44
38
  );
45
39
  }
40
+
41
+ function RenameModal( { category, onClose } ) {
42
+ // User created pattern categories have their properties updated when
43
+ // retrieved via `getUserPatternCategories`. The rename modal expects an
44
+ // object that will match the pattern category entity.
45
+ const normalizedCategory = {
46
+ id: category.id,
47
+ slug: category.slug,
48
+ name: category.label,
49
+ };
50
+
51
+ // Optimization - only use pattern categories when the modal is open.
52
+ const existingCategories = usePatternCategories();
53
+
54
+ return (
55
+ <RenamePatternCategoryModal
56
+ category={ normalizedCategory }
57
+ existingCategories={ existingCategories }
58
+ onClose={ onClose }
59
+ overlayClassName="edit-site-list__rename-modal"
60
+ />
61
+ );
62
+ }
@@ -17,7 +17,7 @@ import { decodeEntities } from '@wordpress/html-entities';
17
17
  */
18
18
  import { filterOutDuplicatesByName } from './utils';
19
19
  import {
20
- PATTERN_CORE_SOURCES,
20
+ EXCLUDED_PATTERN_SOURCES,
21
21
  PATTERN_TYPES,
22
22
  PATTERN_SYNC_TYPES,
23
23
  TEMPLATE_PART_POST_TYPE,
@@ -123,7 +123,8 @@ const selectThemePatterns = createSelector(
123
123
  ...( restBlockPatterns || [] ),
124
124
  ]
125
125
  .filter(
126
- ( pattern ) => ! PATTERN_CORE_SOURCES.includes( pattern.source )
126
+ ( pattern ) =>
127
+ ! EXCLUDED_PATTERN_SOURCES.includes( pattern.source )
127
128
  )
128
129
  .filter( filterOutDuplicatesByName )
129
130
  .filter( ( pattern ) => pattern.inserter !== false )