@wordpress/edit-site 5.25.0 → 5.26.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 (433) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/block-editor/back-button.js +3 -2
  4. package/build/components/block-editor/back-button.js.map +1 -1
  5. package/build/components/block-editor/resizable-editor.js +2 -2
  6. package/build/components/block-editor/resizable-editor.js.map +1 -1
  7. package/build/components/block-editor/use-post-link-props.js +27 -0
  8. package/build/components/block-editor/use-post-link-props.js.map +1 -0
  9. package/build/components/block-editor/use-site-editor-settings.js +7 -24
  10. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  11. package/build/components/create-template-part-modal/index.js +15 -7
  12. package/build/components/create-template-part-modal/index.js.map +1 -1
  13. package/build/components/editor/index.js +15 -16
  14. package/build/components/editor/index.js.map +1 -1
  15. package/build/components/editor-canvas-container/index.js +9 -7
  16. package/build/components/editor-canvas-container/index.js.map +1 -1
  17. package/build/components/global-styles/font-library-modal/collection-font-variant.js +5 -2
  18. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  19. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  20. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  21. package/build/components/global-styles/font-library-modal/context.js +5 -5
  22. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  23. package/build/components/global-styles/font-library-modal/font-collection.js +8 -4
  24. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  25. package/build/components/global-styles/font-library-modal/index.js +38 -21
  26. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  27. package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  28. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  29. package/build/components/global-styles/font-library-modal/library-font-variant.js +5 -2
  30. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  31. package/build/components/global-styles/font-library-modal/local-fonts.js +26 -10
  32. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  33. package/build/components/global-styles/font-library-modal/resolvers.js +6 -6
  34. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  35. package/build/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +4 -4
  36. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -0
  37. package/build/components/global-styles/font-library-modal/utils/index.js +35 -38
  38. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  39. package/build/components/global-styles/preview.js +43 -1
  40. package/build/components/global-styles/preview.js.map +1 -1
  41. package/build/components/global-styles/screen-color-palette.js +16 -12
  42. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  43. package/build/components/global-styles/screen-revisions/index.js +52 -52
  44. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  45. package/build/components/global-styles/screen-revisions/revisions-buttons.js +26 -35
  46. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  47. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +40 -22
  48. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  49. package/build/components/global-styles/ui.js +13 -62
  50. package/build/components/global-styles/ui.js.map +1 -1
  51. package/build/components/header-edit-mode/document-tools/index.js +8 -106
  52. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  53. package/build/components/header-edit-mode/index.js +7 -11
  54. package/build/components/header-edit-mode/index.js.map +1 -1
  55. package/build/components/header-edit-mode/mode-switcher/index.js +0 -2
  56. package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  57. package/build/components/header-edit-mode/more-menu/index.js +10 -7
  58. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  59. package/build/components/keyboard-shortcuts/edit-mode.js +0 -23
  60. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  61. package/build/components/keyboard-shortcuts/register.js +0 -36
  62. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  63. package/build/components/layout/index.js +6 -13
  64. package/build/components/layout/index.js.map +1 -1
  65. package/build/components/page-main/index.js +4 -4
  66. package/build/components/page-main/index.js.map +1 -1
  67. package/build/components/page-pages/index.js +84 -37
  68. package/build/components/page-pages/index.js.map +1 -1
  69. package/build/components/page-patterns/dataviews-pattern-actions.js +305 -0
  70. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -0
  71. package/build/components/page-patterns/dataviews-patterns.js +307 -0
  72. package/build/components/page-patterns/dataviews-patterns.js.map +1 -0
  73. package/build/components/page-patterns/duplicate-menu-item.js +1 -1
  74. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  75. package/build/components/page-patterns/grid-item.js +4 -3
  76. package/build/components/page-patterns/grid-item.js.map +1 -1
  77. package/build/components/page-patterns/patterns-list.js +2 -1
  78. package/build/components/page-patterns/patterns-list.js.map +1 -1
  79. package/build/components/page-patterns/use-patterns.js +23 -13
  80. package/build/components/page-patterns/use-patterns.js.map +1 -1
  81. package/build/components/page-templates/index.js +312 -36
  82. package/build/components/page-templates/index.js.map +1 -1
  83. package/build/components/{page-patterns/pagination.js → pagination/index.js} +25 -12
  84. package/build/components/pagination/index.js.map +1 -0
  85. package/build/components/{page-pages/side-editor.js → post-preview/index.js} +8 -4
  86. package/build/components/post-preview/index.js.map +1 -0
  87. package/build/components/preferences-modal/enable-feature.js +3 -2
  88. package/build/components/preferences-modal/enable-feature.js.map +1 -1
  89. package/build/components/preferences-modal/enable-panel-option.js +33 -0
  90. package/build/components/preferences-modal/enable-panel-option.js.map +1 -0
  91. package/build/components/preferences-modal/index.js +57 -9
  92. package/build/components/preferences-modal/index.js.map +1 -1
  93. package/build/components/revisions/index.js +3 -7
  94. package/build/components/revisions/index.js.map +1 -1
  95. package/build/components/routes/link.js +6 -2
  96. package/build/components/routes/link.js.map +1 -1
  97. package/build/components/save-button/index.js +6 -3
  98. package/build/components/save-button/index.js.map +1 -1
  99. package/build/components/sidebar/index.js +3 -11
  100. package/build/components/sidebar/index.js.map +1 -1
  101. package/build/components/sidebar-dataviews/add-new-view.js +2 -2
  102. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  103. package/build/components/sidebar-dataviews/default-views.js +18 -5
  104. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  105. package/build/components/sidebar-dataviews/index.js +3 -3
  106. package/build/components/sidebar-dataviews/index.js.map +1 -1
  107. package/build/components/sidebar-edit-mode/default-sidebar.js +1 -5
  108. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  109. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +62 -10
  110. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  111. package/build/components/sidebar-edit-mode/page-panels/index.js +1 -1
  112. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  113. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -4
  114. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  115. package/build/components/sidebar-edit-mode/template-panel/index.js +4 -13
  116. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  117. package/build/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  118. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  119. package/build/components/sidebar-navigation-screen-global-styles/index.js +5 -2
  120. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  121. package/build/components/sidebar-navigation-screen-page/index.js +4 -1
  122. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  123. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +69 -0
  124. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -0
  125. package/build/components/style-book/index.js +38 -8
  126. package/build/components/style-book/index.js.map +1 -1
  127. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  128. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  129. package/build/hooks/commands/use-edit-mode-commands.js +11 -6
  130. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  131. package/build/index.js +12 -7
  132. package/build/index.js.map +1 -1
  133. package/build/store/actions.js +39 -44
  134. package/build/store/actions.js.map +1 -1
  135. package/build/store/private-actions.js +6 -2
  136. package/build/store/private-actions.js.map +1 -1
  137. package/build/store/reducer.js +0 -46
  138. package/build/store/reducer.js.map +1 -1
  139. package/build/store/selectors.js +32 -41
  140. package/build/store/selectors.js.map +1 -1
  141. package/build/utils/get-is-list-page.js +1 -1
  142. package/build/utils/get-is-list-page.js.map +1 -1
  143. package/build-module/components/block-editor/back-button.js +4 -3
  144. package/build-module/components/block-editor/back-button.js.map +1 -1
  145. package/build-module/components/block-editor/resizable-editor.js +2 -2
  146. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  147. package/build-module/components/block-editor/use-post-link-props.js +20 -0
  148. package/build-module/components/block-editor/use-post-link-props.js.map +1 -0
  149. package/build-module/components/block-editor/use-site-editor-settings.js +8 -25
  150. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  151. package/build-module/components/create-template-part-modal/index.js +14 -7
  152. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  153. package/build-module/components/editor/index.js +16 -17
  154. package/build-module/components/editor/index.js.map +1 -1
  155. package/build-module/components/editor-canvas-container/index.js +9 -7
  156. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  157. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +5 -2
  158. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  159. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  160. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  161. package/build-module/components/global-styles/font-library-modal/context.js +7 -7
  162. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  163. package/build-module/components/global-styles/font-library-modal/font-collection.js +8 -4
  164. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  165. package/build-module/components/global-styles/font-library-modal/index.js +39 -22
  166. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  167. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  168. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  169. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +5 -2
  170. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  171. package/build-module/components/global-styles/font-library-modal/local-fonts.js +27 -11
  172. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  173. package/build-module/components/global-styles/font-library-modal/resolvers.js +5 -5
  174. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  175. package/build-module/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +4 -4
  176. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -0
  177. package/build-module/components/global-styles/font-library-modal/utils/index.js +34 -36
  178. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  179. package/build-module/components/global-styles/preview.js +45 -3
  180. package/build-module/components/global-styles/preview.js.map +1 -1
  181. package/build-module/components/global-styles/screen-color-palette.js +17 -13
  182. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  183. package/build-module/components/global-styles/screen-revisions/index.js +53 -53
  184. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  185. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +27 -36
  186. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  187. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +40 -22
  188. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  189. package/build-module/components/global-styles/ui.js +15 -64
  190. package/build-module/components/global-styles/ui.js.map +1 -1
  191. package/build-module/components/header-edit-mode/document-tools/index.js +13 -110
  192. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  193. package/build-module/components/header-edit-mode/index.js +7 -11
  194. package/build-module/components/header-edit-mode/index.js.map +1 -1
  195. package/build-module/components/header-edit-mode/mode-switcher/index.js +0 -2
  196. package/build-module/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  197. package/build-module/components/header-edit-mode/more-menu/index.js +10 -7
  198. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  199. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -23
  200. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  201. package/build-module/components/keyboard-shortcuts/register.js +0 -36
  202. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  203. package/build-module/components/layout/index.js +6 -13
  204. package/build-module/components/layout/index.js.map +1 -1
  205. package/build-module/components/page-main/index.js +4 -4
  206. package/build-module/components/page-main/index.js.map +1 -1
  207. package/build-module/components/page-pages/index.js +83 -36
  208. package/build-module/components/page-pages/index.js.map +1 -1
  209. package/build-module/components/page-patterns/dataviews-pattern-actions.js +292 -0
  210. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -0
  211. package/build-module/components/page-patterns/dataviews-patterns.js +299 -0
  212. package/build-module/components/page-patterns/dataviews-patterns.js.map +1 -0
  213. package/build-module/components/page-patterns/duplicate-menu-item.js +1 -1
  214. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  215. package/build-module/components/page-patterns/grid-item.js +4 -3
  216. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  217. package/build-module/components/page-patterns/patterns-list.js +2 -1
  218. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  219. package/build-module/components/page-patterns/use-patterns.js +23 -13
  220. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  221. package/build-module/components/page-templates/index.js +314 -38
  222. package/build-module/components/page-templates/index.js.map +1 -1
  223. package/build-module/components/{page-patterns/pagination.js → pagination/index.js} +24 -12
  224. package/build-module/components/pagination/index.js.map +1 -0
  225. package/build-module/components/{page-pages/side-editor.js → post-preview/index.js} +7 -3
  226. package/build-module/components/post-preview/index.js.map +1 -0
  227. package/build-module/components/preferences-modal/enable-feature.js +3 -2
  228. package/build-module/components/preferences-modal/enable-feature.js.map +1 -1
  229. package/build-module/components/preferences-modal/enable-panel-option.js +26 -0
  230. package/build-module/components/preferences-modal/enable-panel-option.js.map +1 -0
  231. package/build-module/components/preferences-modal/index.js +57 -9
  232. package/build-module/components/preferences-modal/index.js.map +1 -1
  233. package/build-module/components/revisions/index.js +4 -8
  234. package/build-module/components/revisions/index.js.map +1 -1
  235. package/build-module/components/routes/link.js +5 -2
  236. package/build-module/components/routes/link.js.map +1 -1
  237. package/build-module/components/save-button/index.js +6 -3
  238. package/build-module/components/save-button/index.js.map +1 -1
  239. package/build-module/components/sidebar/index.js +3 -11
  240. package/build-module/components/sidebar/index.js.map +1 -1
  241. package/build-module/components/sidebar-dataviews/add-new-view.js +1 -1
  242. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  243. package/build-module/components/sidebar-dataviews/default-views.js +17 -5
  244. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  245. package/build-module/components/sidebar-dataviews/index.js +2 -2
  246. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  247. package/build-module/components/sidebar-edit-mode/default-sidebar.js +1 -5
  248. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  249. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +64 -12
  250. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  251. package/build-module/components/sidebar-edit-mode/page-panels/index.js +2 -2
  252. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  253. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -4
  254. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  255. package/build-module/components/sidebar-edit-mode/template-panel/index.js +6 -15
  256. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  257. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  258. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  259. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +5 -2
  260. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  261. package/build-module/components/sidebar-navigation-screen-page/index.js +4 -1
  262. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  263. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +61 -0
  264. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -0
  265. package/build-module/components/style-book/index.js +40 -10
  266. package/build-module/components/style-book/index.js.map +1 -1
  267. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  268. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  269. package/build-module/hooks/commands/use-edit-mode-commands.js +11 -6
  270. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  271. package/build-module/index.js +12 -7
  272. package/build-module/index.js.map +1 -1
  273. package/build-module/store/actions.js +36 -41
  274. package/build-module/store/actions.js.map +1 -1
  275. package/build-module/store/private-actions.js +6 -2
  276. package/build-module/store/private-actions.js.map +1 -1
  277. package/build-module/store/reducer.js +0 -44
  278. package/build-module/store/reducer.js.map +1 -1
  279. package/build-module/store/selectors.js +30 -38
  280. package/build-module/store/selectors.js.map +1 -1
  281. package/build-module/utils/get-is-list-page.js +1 -1
  282. package/build-module/utils/get-is-list-page.js.map +1 -1
  283. package/build-style/style-rtl.css +357 -268
  284. package/build-style/style.css +357 -268
  285. package/package.json +42 -42
  286. package/src/components/add-new-template/style.scss +2 -1
  287. package/src/components/block-editor/back-button.js +4 -2
  288. package/src/components/block-editor/resizable-editor.js +1 -1
  289. package/src/components/block-editor/style.scss +1 -2
  290. package/src/components/block-editor/use-post-link-props.js +20 -0
  291. package/src/components/block-editor/use-site-editor-settings.js +10 -41
  292. package/src/components/code-editor/style.scss +0 -4
  293. package/src/components/create-template-part-modal/index.js +83 -82
  294. package/src/components/editor/index.js +24 -31
  295. package/src/components/editor-canvas-container/index.js +8 -6
  296. package/src/components/global-styles/font-library-modal/collection-font-variant.js +7 -2
  297. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  298. package/src/components/global-styles/font-library-modal/context.js +7 -7
  299. package/src/components/global-styles/font-library-modal/font-collection.js +10 -5
  300. package/src/components/global-styles/font-library-modal/index.js +44 -24
  301. package/src/components/global-styles/font-library-modal/installed-fonts.js +3 -3
  302. package/src/components/global-styles/font-library-modal/library-font-variant.js +7 -2
  303. package/src/components/global-styles/font-library-modal/local-fonts.js +53 -26
  304. package/src/components/global-styles/font-library-modal/resolvers.js +5 -5
  305. package/src/components/global-styles/font-library-modal/style.scss +5 -2
  306. package/src/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +9 -3
  307. package/src/components/global-styles/font-library-modal/utils/index.js +21 -23
  308. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +58 -0
  309. package/src/components/global-styles/preview.js +55 -3
  310. package/src/components/global-styles/screen-color-palette.js +16 -26
  311. package/src/components/global-styles/screen-revisions/index.js +91 -92
  312. package/src/components/global-styles/screen-revisions/revisions-buttons.js +37 -38
  313. package/src/components/global-styles/screen-revisions/style.scss +77 -20
  314. package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +67 -0
  315. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +73 -46
  316. package/src/components/global-styles/ui.js +13 -74
  317. package/src/components/header-edit-mode/document-tools/index.js +33 -165
  318. package/src/components/header-edit-mode/index.js +6 -17
  319. package/src/components/header-edit-mode/mode-switcher/index.js +0 -4
  320. package/src/components/header-edit-mode/more-menu/index.js +9 -7
  321. package/src/components/header-edit-mode/style.scss +0 -47
  322. package/src/components/keyboard-shortcuts/edit-mode.js +1 -26
  323. package/src/components/keyboard-shortcuts/register.js +0 -43
  324. package/src/components/layout/index.js +8 -27
  325. package/src/components/layout/style.scss +10 -3
  326. package/src/components/list/style.scss +0 -5
  327. package/src/components/page/style.scss +1 -1
  328. package/src/components/page-main/index.js +8 -8
  329. package/src/components/page-pages/index.js +112 -41
  330. package/src/components/page-pages/style.scss +3 -2
  331. package/src/components/page-patterns/dataviews-pattern-actions.js +329 -0
  332. package/src/components/page-patterns/dataviews-patterns.js +380 -0
  333. package/src/components/page-patterns/duplicate-menu-item.js +1 -1
  334. package/src/components/page-patterns/grid-item.js +3 -2
  335. package/src/components/page-patterns/patterns-list.js +2 -1
  336. package/src/components/page-patterns/style.scss +89 -26
  337. package/src/components/page-patterns/use-patterns.js +24 -15
  338. package/src/components/page-templates/index.js +399 -64
  339. package/src/components/{page-patterns/pagination.js → pagination/index.js} +21 -10
  340. package/src/components/pagination/style.scss +5 -0
  341. package/src/components/post-preview/index.js +16 -0
  342. package/src/components/preferences-modal/enable-feature.js +9 -5
  343. package/src/components/preferences-modal/enable-panel-option.js +23 -0
  344. package/src/components/preferences-modal/index.js +107 -22
  345. package/src/components/revisions/index.js +8 -15
  346. package/src/components/routes/link.js +11 -3
  347. package/src/components/save-button/index.js +16 -3
  348. package/src/components/sidebar/index.js +6 -13
  349. package/src/components/sidebar-dataviews/add-new-view.js +1 -1
  350. package/src/components/sidebar-dataviews/default-views.js +23 -6
  351. package/src/components/sidebar-dataviews/index.js +2 -2
  352. package/src/components/sidebar-edit-mode/default-sidebar.js +0 -12
  353. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +85 -14
  354. package/src/components/sidebar-edit-mode/page-panels/index.js +15 -1
  355. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -12
  356. package/src/components/sidebar-edit-mode/style.scss +0 -10
  357. package/src/components/sidebar-edit-mode/template-panel/index.js +44 -40
  358. package/src/components/sidebar-edit-mode/template-panel/style.scss +0 -4
  359. package/src/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  360. package/src/components/sidebar-navigation-screen-global-styles/index.js +3 -2
  361. package/src/components/sidebar-navigation-screen-page/index.js +2 -1
  362. package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +77 -0
  363. package/src/components/site-hub/style.scss +5 -2
  364. package/src/components/style-book/index.js +65 -21
  365. package/src/components/style-book/style.scss +3 -3
  366. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +4 -1
  367. package/src/hooks/commands/use-edit-mode-commands.js +8 -12
  368. package/src/index.js +11 -5
  369. package/src/store/actions.js +35 -45
  370. package/src/store/private-actions.js +7 -3
  371. package/src/store/reducer.js +0 -44
  372. package/src/store/selectors.js +32 -38
  373. package/src/store/test/actions.js +11 -39
  374. package/src/store/test/reducer.js +1 -82
  375. package/src/store/test/selectors.js +0 -24
  376. package/src/style.scss +1 -1
  377. package/src/utils/get-is-list-page.js +2 -3
  378. package/build/components/global-styles/font-library-modal/tab-layout.js.map +0 -1
  379. package/build/components/global-styles/screen-revisions/get-revision-changes.js +0 -146
  380. package/build/components/global-styles/screen-revisions/get-revision-changes.js.map +0 -1
  381. package/build/components/header-edit-mode/undo-redo/redo.js +0 -41
  382. package/build/components/header-edit-mode/undo-redo/redo.js.map +0 -1
  383. package/build/components/header-edit-mode/undo-redo/undo.js +0 -40
  384. package/build/components/header-edit-mode/undo-redo/undo.js.map +0 -1
  385. package/build/components/page-pages/side-editor.js.map +0 -1
  386. package/build/components/page-patterns/pagination.js.map +0 -1
  387. package/build/components/page-templates/dataviews-templates.js +0 -317
  388. package/build/components/page-templates/dataviews-templates.js.map +0 -1
  389. package/build/components/secondary-sidebar/inserter-sidebar.js +0 -60
  390. package/build/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  391. package/build/components/secondary-sidebar/list-view-sidebar.js +0 -109
  392. package/build/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  393. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -35
  394. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +0 -1
  395. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +0 -73
  396. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +0 -1
  397. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -219
  398. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +0 -1
  399. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +0 -1
  400. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js +0 -139
  401. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js.map +0 -1
  402. package/build-module/components/header-edit-mode/undo-redo/redo.js +0 -33
  403. package/build-module/components/header-edit-mode/undo-redo/redo.js.map +0 -1
  404. package/build-module/components/header-edit-mode/undo-redo/undo.js +0 -32
  405. package/build-module/components/header-edit-mode/undo-redo/undo.js.map +0 -1
  406. package/build-module/components/page-pages/side-editor.js.map +0 -1
  407. package/build-module/components/page-patterns/pagination.js.map +0 -1
  408. package/build-module/components/page-templates/dataviews-templates.js +0 -309
  409. package/build-module/components/page-templates/dataviews-templates.js.map +0 -1
  410. package/build-module/components/secondary-sidebar/inserter-sidebar.js +0 -53
  411. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  412. package/build-module/components/secondary-sidebar/list-view-sidebar.js +0 -102
  413. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  414. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -27
  415. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +0 -1
  416. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +0 -65
  417. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +0 -1
  418. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -209
  419. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +0 -1
  420. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +0 -62
  421. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +0 -28
  422. package/src/components/global-styles/screen-revisions/get-revision-changes.js +0 -171
  423. package/src/components/global-styles/screen-revisions/test/get-revision-changes.js +0 -191
  424. package/src/components/header-edit-mode/undo-redo/redo.js +0 -38
  425. package/src/components/header-edit-mode/undo-redo/undo.js +0 -34
  426. package/src/components/page-pages/side-editor.js +0 -14
  427. package/src/components/page-templates/dataviews-templates.js +0 -360
  428. package/src/components/secondary-sidebar/inserter-sidebar.js +0 -66
  429. package/src/components/secondary-sidebar/list-view-sidebar.js +0 -123
  430. package/src/components/secondary-sidebar/style.scss +0 -65
  431. package/src/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -26
  432. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +0 -82
  433. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -279
@@ -1,191 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import getRevisionChanges from '../get-revision-changes';
5
-
6
- describe( 'getRevisionChanges', () => {
7
- const revision = {
8
- id: 10,
9
- styles: {
10
- typography: {
11
- fontSize: 'var(--wp--preset--font-size--potato)',
12
- fontStyle: 'normal',
13
- fontWeight: '600',
14
- lineHeight: '1.85',
15
- fontFamily: 'var(--wp--preset--font-family--asparagus)',
16
- },
17
- spacing: {
18
- padding: {
19
- top: '36px',
20
- right: '89px',
21
- bottom: '133px',
22
- left: 'var(--wp--preset--spacing--20)',
23
- },
24
- blockGap: '114px',
25
- },
26
- elements: {
27
- heading: {
28
- typography: {
29
- letterSpacing: '37px',
30
- },
31
- },
32
- caption: {
33
- color: {
34
- text: 'var(--wp--preset--color--pineapple)',
35
- },
36
- },
37
- },
38
- color: {
39
- text: 'var(--wp--preset--color--tomato)',
40
- },
41
- blocks: {
42
- 'core/paragraph': {
43
- color: {
44
- text: '#000000',
45
- },
46
- },
47
- },
48
- },
49
- settings: {
50
- color: {
51
- palette: {
52
- theme: [
53
- {
54
- slug: 'one',
55
- color: 'pink',
56
- },
57
- ],
58
- },
59
- },
60
- },
61
- };
62
- const previousRevision = {
63
- id: 9,
64
- styles: {
65
- typography: {
66
- fontSize: 'var(--wp--preset--font-size--fungus)',
67
- fontStyle: 'normal',
68
- fontWeight: '600',
69
- lineHeight: '1.85',
70
- fontFamily: 'var(--wp--preset--font-family--grapes)',
71
- },
72
- spacing: {
73
- padding: {
74
- top: '36px',
75
- right: '89px',
76
- bottom: '133px',
77
- left: 'var(--wp--preset--spacing--20)',
78
- },
79
- blockGap: '114px',
80
- },
81
- elements: {
82
- heading: {
83
- typography: {
84
- letterSpacing: '37px',
85
- },
86
- },
87
- caption: {
88
- typography: {
89
- fontSize: '1.11rem',
90
- fontStyle: 'normal',
91
- fontWeight: '600',
92
- },
93
- },
94
- link: {
95
- typography: {
96
- lineHeight: 2,
97
- textDecoration: 'line-through',
98
- },
99
- color: {
100
- text: 'var(--wp--preset--color--egg)',
101
- },
102
- },
103
- },
104
- color: {
105
- text: 'var(--wp--preset--color--tomato)',
106
- background: 'var(--wp--preset--color--pumpkin)',
107
- },
108
- blocks: {
109
- 'core/paragraph': {
110
- color: {
111
- text: '#fff',
112
- },
113
- },
114
- },
115
- },
116
- settings: {
117
- color: {
118
- palette: {
119
- theme: [
120
- {
121
- slug: 'one',
122
- color: 'blue',
123
- },
124
- ],
125
- },
126
- },
127
- },
128
- };
129
- const blockNames = {
130
- 'core/paragraph': 'Paragraph',
131
- };
132
- it( 'returns a list of changes and caches them', () => {
133
- const resultA = getRevisionChanges(
134
- revision,
135
- previousRevision,
136
- blockNames
137
- );
138
- expect( resultA ).toEqual( [
139
- 'Colors',
140
- 'Typography',
141
- 'Paragraph block',
142
- 'Caption element',
143
- 'Link element',
144
- 'Color settings',
145
- ] );
146
-
147
- const resultB = getRevisionChanges(
148
- revision,
149
- previousRevision,
150
- blockNames
151
- );
152
-
153
- expect( resultA ).toBe( resultB );
154
- } );
155
-
156
- it( 'skips unknown and unchanged keys', () => {
157
- const result = getRevisionChanges(
158
- {
159
- styles: {
160
- frogs: {
161
- legs: 'green',
162
- },
163
- typography: {
164
- fontSize: '1rem',
165
- },
166
- settings: {
167
- '': {
168
- '': 'foo',
169
- },
170
- },
171
- },
172
- },
173
- {
174
- styles: {
175
- frogs: {
176
- legs: 'yellow',
177
- },
178
- typography: {
179
- fontSize: '1rem',
180
- },
181
- settings: {
182
- '': {
183
- '': 'bar',
184
- },
185
- },
186
- },
187
- }
188
- );
189
- expect( result ).toEqual( [] );
190
- } );
191
- } );
@@ -1,38 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __, isRTL } from '@wordpress/i18n';
5
- import { Button } from '@wordpress/components';
6
- import { useSelect, useDispatch } from '@wordpress/data';
7
- import { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';
8
- import { displayShortcut, isAppleOS } from '@wordpress/keycodes';
9
- import { store as coreStore } from '@wordpress/core-data';
10
- import { forwardRef } from '@wordpress/element';
11
-
12
- function RedoButton( props, ref ) {
13
- const shortcut = isAppleOS()
14
- ? displayShortcut.primaryShift( 'z' )
15
- : displayShortcut.primary( 'y' );
16
-
17
- const hasRedo = useSelect(
18
- ( select ) => select( coreStore ).hasRedo(),
19
- []
20
- );
21
- const { redo } = useDispatch( coreStore );
22
- return (
23
- <Button
24
- { ...props }
25
- ref={ ref }
26
- icon={ ! isRTL() ? redoIcon : undoIcon }
27
- label={ __( 'Redo' ) }
28
- shortcut={ shortcut }
29
- // If there are no undo levels we don't want to actually disable this
30
- // button, because it will remove focus for keyboard users.
31
- // See: https://github.com/WordPress/gutenberg/issues/3486
32
- aria-disabled={ ! hasRedo }
33
- onClick={ hasRedo ? redo : undefined }
34
- />
35
- );
36
- }
37
-
38
- export default forwardRef( RedoButton );
@@ -1,34 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __, isRTL } from '@wordpress/i18n';
5
- import { Button } from '@wordpress/components';
6
- import { useSelect, useDispatch } from '@wordpress/data';
7
- import { undo as undoIcon, redo as redoIcon } from '@wordpress/icons';
8
- import { displayShortcut } from '@wordpress/keycodes';
9
- import { store as coreStore } from '@wordpress/core-data';
10
- import { forwardRef } from '@wordpress/element';
11
-
12
- function UndoButton( props, ref ) {
13
- const hasUndo = useSelect(
14
- ( select ) => select( coreStore ).hasUndo(),
15
- []
16
- );
17
- const { undo } = useDispatch( coreStore );
18
- return (
19
- <Button
20
- { ...props }
21
- ref={ ref }
22
- icon={ ! isRTL() ? undoIcon : redoIcon }
23
- label={ __( 'Undo' ) }
24
- shortcut={ displayShortcut.primary( 'z' ) }
25
- // If there are no undo levels we don't want to actually disable this
26
- // button, because it will remove focus for keyboard users.
27
- // See: https://github.com/WordPress/gutenberg/issues/3486
28
- aria-disabled={ ! hasUndo }
29
- onClick={ hasUndo ? undo : undefined }
30
- />
31
- );
32
- }
33
-
34
- export default forwardRef( UndoButton );
@@ -1,14 +0,0 @@
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
- }
@@ -1,360 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import removeAccents from 'remove-accents';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import {
10
- Icon,
11
- __experimentalView as View,
12
- __experimentalText as Text,
13
- __experimentalHStack as HStack,
14
- __experimentalVStack as VStack,
15
- VisuallyHidden,
16
- } from '@wordpress/components';
17
- import { __, _x } from '@wordpress/i18n';
18
- import { useState, useMemo, useCallback } from '@wordpress/element';
19
- import { useEntityRecords } from '@wordpress/core-data';
20
- import { decodeEntities } from '@wordpress/html-entities';
21
- import { parse } from '@wordpress/blocks';
22
- import {
23
- BlockPreview,
24
- privateApis as blockEditorPrivateApis,
25
- } from '@wordpress/block-editor';
26
- import { DataViews } from '@wordpress/dataviews';
27
-
28
- /**
29
- * Internal dependencies
30
- */
31
- import Page from '../page';
32
- import Link from '../routes/link';
33
- import { useAddedBy, AvatarImage } from '../list/added-by';
34
- import {
35
- TEMPLATE_POST_TYPE,
36
- ENUMERATION_TYPE,
37
- OPERATOR_IN,
38
- OPERATOR_NOT_IN,
39
- LAYOUT_GRID,
40
- LAYOUT_TABLE,
41
- } from '../../utils/constants';
42
- import {
43
- useResetTemplateAction,
44
- deleteTemplateAction,
45
- renameTemplateAction,
46
- } from './template-actions';
47
- import usePatternSettings from '../page-patterns/use-pattern-settings';
48
- import { unlock } from '../../lock-unlock';
49
-
50
- const { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(
51
- blockEditorPrivateApis
52
- );
53
-
54
- const EMPTY_ARRAY = [];
55
-
56
- const defaultConfigPerViewType = {
57
- [ LAYOUT_TABLE ]: {},
58
- [ LAYOUT_GRID ]: {
59
- mediaField: 'preview',
60
- primaryField: 'title',
61
- },
62
- };
63
-
64
- const DEFAULT_VIEW = {
65
- type: LAYOUT_TABLE,
66
- search: '',
67
- page: 1,
68
- perPage: 20,
69
- // All fields are visible by default, so it's
70
- // better to keep track of the hidden ones.
71
- hiddenFields: [ 'preview' ],
72
- layout: {},
73
- filters: [],
74
- };
75
-
76
- function normalizeSearchInput( input = '' ) {
77
- return removeAccents( input.trim().toLowerCase() );
78
- }
79
-
80
- // TODO: these are going to be reused in the template part list.
81
- // That's the reason for leaving the template parts code for now.
82
- function TemplateTitle( { item } ) {
83
- const { isCustomized } = useAddedBy( item.type, item.id );
84
- return (
85
- <VStack spacing={ 1 }>
86
- <View as="span" className="edit-site-list-title__customized-info">
87
- <Link
88
- params={ {
89
- postId: item.id,
90
- postType: item.type,
91
- canvas: 'edit',
92
- } }
93
- >
94
- { decodeEntities( item.title?.rendered || item.slug ) ||
95
- __( '(no title)' ) }
96
- </Link>
97
- </View>
98
- { isCustomized && (
99
- <span className="edit-site-list-added-by__customized-info">
100
- { item.type === TEMPLATE_POST_TYPE
101
- ? _x( 'Customized', 'template' )
102
- : _x( 'Customized', 'template part' ) }
103
- </span>
104
- ) }
105
- </VStack>
106
- );
107
- }
108
-
109
- function AuthorField( { item } ) {
110
- const { text, icon, imageUrl } = useAddedBy( item.type, item.id );
111
- return (
112
- <HStack alignment="left" spacing={ 1 }>
113
- { imageUrl ? (
114
- <AvatarImage imageUrl={ imageUrl } />
115
- ) : (
116
- <div className="edit-site-list-added-by__icon">
117
- <Icon icon={ icon } />
118
- </div>
119
- ) }
120
- <span>{ text }</span>
121
- </HStack>
122
- );
123
- }
124
-
125
- function TemplatePreview( { content, viewType } ) {
126
- const settings = usePatternSettings();
127
- const [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );
128
- const blocks = useMemo( () => {
129
- return parse( content );
130
- }, [ content ] );
131
- if ( ! blocks?.length ) {
132
- return null;
133
- }
134
- // Wrap everything in a block editor provider to ensure 'styles' that are needed
135
- // for the previews are synced between the site editor store and the block editor store.
136
- // Additionally we need to have the `__experimentalBlockPatterns` setting in order to
137
- // render patterns inside the previews.
138
- // TODO: Same approach is used in the patterns list and it becomes obvious that some of
139
- // the block editor settings are needed in context where we don't have the block editor.
140
- // Explore how we can solve this in a better way.
141
- return (
142
- <ExperimentalBlockEditorProvider settings={ settings }>
143
- <div
144
- className={ `page-templates-preview-field is-viewtype-${ viewType }` }
145
- style={ { backgroundColor } }
146
- >
147
- <BlockPreview blocks={ blocks } />
148
- </div>
149
- </ExperimentalBlockEditorProvider>
150
- );
151
- }
152
-
153
- export default function DataviewsTemplates() {
154
- const [ view, setView ] = useState( DEFAULT_VIEW );
155
- const { records: allTemplates, isResolving: isLoadingData } =
156
- useEntityRecords( 'postType', TEMPLATE_POST_TYPE, {
157
- per_page: -1,
158
- } );
159
-
160
- const authors = useMemo( () => {
161
- if ( ! allTemplates ) {
162
- return EMPTY_ARRAY;
163
- }
164
- const authorsSet = new Set();
165
- allTemplates.forEach( ( template ) => {
166
- authorsSet.add( template.author_text );
167
- } );
168
- return Array.from( authorsSet ).map( ( author ) => ( {
169
- value: author,
170
- label: author,
171
- } ) );
172
- }, [ allTemplates ] );
173
-
174
- const fields = useMemo(
175
- () => [
176
- {
177
- header: __( 'Preview' ),
178
- id: 'preview',
179
- render: ( { item } ) => {
180
- return (
181
- <TemplatePreview
182
- content={ item.content.raw }
183
- viewType={ view.type }
184
- />
185
- );
186
- },
187
- minWidth: 120,
188
- maxWidth: 120,
189
- enableSorting: false,
190
- },
191
- {
192
- header: __( 'Template' ),
193
- id: 'title',
194
- getValue: ( { item } ) => item.title?.rendered || item.slug,
195
- render: ( { item } ) => <TemplateTitle item={ item } />,
196
- maxWidth: 400,
197
- enableHiding: false,
198
- },
199
- {
200
- header: __( 'Description' ),
201
- id: 'description',
202
- getValue: ( { item } ) => item.description,
203
- render: ( { item } ) => {
204
- return item.description ? (
205
- decodeEntities( item.description )
206
- ) : (
207
- <>
208
- <Text variant="muted" aria-hidden="true">
209
- &#8212;
210
- </Text>
211
- <VisuallyHidden>
212
- { __( 'No description.' ) }
213
- </VisuallyHidden>
214
- </>
215
- );
216
- },
217
- maxWidth: 200,
218
- enableSorting: false,
219
- },
220
- {
221
- header: __( 'Author' ),
222
- id: 'author',
223
- getValue: ( { item } ) => item.author_text,
224
- render: ( { item } ) => {
225
- return <AuthorField item={ item } />;
226
- },
227
- enableHiding: false,
228
- type: ENUMERATION_TYPE,
229
- elements: authors,
230
- },
231
- ],
232
- [ authors, view ]
233
- );
234
-
235
- const { shownTemplates, paginationInfo } = useMemo( () => {
236
- if ( ! allTemplates ) {
237
- return {
238
- shownTemplates: EMPTY_ARRAY,
239
- paginationInfo: { totalItems: 0, totalPages: 0 },
240
- };
241
- }
242
- let filteredTemplates = [ ...allTemplates ];
243
- // Handle global search.
244
- if ( view.search ) {
245
- const normalizedSearch = normalizeSearchInput( view.search );
246
- filteredTemplates = filteredTemplates.filter( ( item ) => {
247
- const title = item.title?.rendered || item.slug;
248
- return (
249
- normalizeSearchInput( title ).includes(
250
- normalizedSearch
251
- ) ||
252
- normalizeSearchInput( item.description ).includes(
253
- normalizedSearch
254
- )
255
- );
256
- } );
257
- }
258
-
259
- // Handle filters.
260
- if ( view.filters.length > 0 ) {
261
- view.filters.forEach( ( filter ) => {
262
- if (
263
- filter.field === 'author' &&
264
- filter.operator === OPERATOR_IN &&
265
- !! filter.value
266
- ) {
267
- filteredTemplates = filteredTemplates.filter( ( item ) => {
268
- return item.author_text === filter.value;
269
- } );
270
- } else if (
271
- filter.field === 'author' &&
272
- filter.operator === OPERATOR_NOT_IN &&
273
- !! filter.value
274
- ) {
275
- filteredTemplates = filteredTemplates.filter( ( item ) => {
276
- return item.author_text !== filter.value;
277
- } );
278
- }
279
- } );
280
- }
281
-
282
- // Handle sorting.
283
- if ( view.sort ) {
284
- const stringSortingFields = [ 'title', 'author' ];
285
- const fieldId = view.sort.field;
286
- if ( stringSortingFields.includes( fieldId ) ) {
287
- const fieldToSort = fields.find( ( field ) => {
288
- return field.id === fieldId;
289
- } );
290
- filteredTemplates.sort( ( a, b ) => {
291
- const valueA = fieldToSort.getValue( { item: a } ) ?? '';
292
- const valueB = fieldToSort.getValue( { item: b } ) ?? '';
293
- return view.sort.direction === 'asc'
294
- ? valueA.localeCompare( valueB )
295
- : valueB.localeCompare( valueA );
296
- } );
297
- }
298
- }
299
-
300
- // Handle pagination.
301
- const start = ( view.page - 1 ) * view.perPage;
302
- const totalItems = filteredTemplates?.length || 0;
303
- filteredTemplates = filteredTemplates?.slice(
304
- start,
305
- start + view.perPage
306
- );
307
- return {
308
- shownTemplates: filteredTemplates,
309
- paginationInfo: {
310
- totalItems,
311
- totalPages: Math.ceil( totalItems / view.perPage ),
312
- },
313
- };
314
- }, [ allTemplates, view, fields ] );
315
-
316
- const resetTemplateAction = useResetTemplateAction();
317
- const actions = useMemo(
318
- () => [
319
- resetTemplateAction,
320
- deleteTemplateAction,
321
- renameTemplateAction,
322
- ],
323
- [ resetTemplateAction ]
324
- );
325
- const onChangeView = useCallback(
326
- ( viewUpdater ) => {
327
- let updatedView =
328
- typeof viewUpdater === 'function'
329
- ? viewUpdater( view )
330
- : viewUpdater;
331
- if ( updatedView.type !== view.type ) {
332
- updatedView = {
333
- ...updatedView,
334
- layout: {
335
- ...defaultConfigPerViewType[ updatedView.type ],
336
- },
337
- };
338
- }
339
-
340
- setView( updatedView );
341
- },
342
- [ view, setView ]
343
- );
344
- return (
345
- <Page title={ __( 'Templates' ) }>
346
- <DataViews
347
- paginationInfo={ paginationInfo }
348
- fields={ fields }
349
- actions={ actions }
350
- data={ shownTemplates }
351
- getItemId={ ( item ) => item.id }
352
- isLoading={ isLoadingData }
353
- view={ view }
354
- onChangeView={ onChangeView }
355
- supportedLayouts={ [ LAYOUT_TABLE, LAYOUT_GRID ] }
356
- deferredRendering={ ! view.hiddenFields?.includes( 'preview' ) }
357
- />
358
- </Page>
359
- );
360
- }
@@ -1,66 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect, useDispatch } from '@wordpress/data';
5
- import { Button, VisuallyHidden } from '@wordpress/components';
6
- import { __experimentalLibrary as Library } from '@wordpress/block-editor';
7
- import { close } from '@wordpress/icons';
8
- import {
9
- useViewportMatch,
10
- __experimentalUseDialog as useDialog,
11
- } from '@wordpress/compose';
12
- import { __ } from '@wordpress/i18n';
13
- import { useEffect, useRef } from '@wordpress/element';
14
-
15
- /**
16
- * Internal dependencies
17
- */
18
- import { store as editSiteStore } from '../../store';
19
-
20
- export default function InserterSidebar() {
21
- const { setIsInserterOpened } = useDispatch( editSiteStore );
22
- const insertionPoint = useSelect(
23
- ( select ) => select( editSiteStore ).__experimentalGetInsertionPoint(),
24
- []
25
- );
26
-
27
- const isMobile = useViewportMatch( 'medium', '<' );
28
- const TagName = ! isMobile ? VisuallyHidden : 'div';
29
- const [ inserterDialogRef, inserterDialogProps ] = useDialog( {
30
- onClose: () => setIsInserterOpened( false ),
31
- focusOnMount: null,
32
- } );
33
-
34
- const libraryRef = useRef();
35
- useEffect( () => {
36
- libraryRef.current.focusSearch();
37
- }, [] );
38
-
39
- return (
40
- <div
41
- ref={ inserterDialogRef }
42
- { ...inserterDialogProps }
43
- className="edit-site-editor__inserter-panel"
44
- >
45
- <TagName className="edit-site-editor__inserter-panel-header">
46
- <Button
47
- icon={ close }
48
- label={ __( 'Close block inserter' ) }
49
- onClick={ () => setIsInserterOpened( false ) }
50
- />
51
- </TagName>
52
- <div className="edit-site-editor__inserter-panel-content">
53
- <Library
54
- showInserterHelpPanel
55
- shouldFocusBlock={ isMobile }
56
- rootClientId={ insertionPoint.rootClientId }
57
- __experimentalInsertionIndex={
58
- insertionPoint.insertionIndex
59
- }
60
- __experimentalFilterValue={ insertionPoint.filterValue }
61
- ref={ libraryRef }
62
- />
63
- </div>
64
- </div>
65
- );
66
- }