@wordpress/edit-site 5.25.0 → 5.25.1-next.79a6196f.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 (438) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/components/block-editor/back-button.js +3 -2
  3. package/build/components/block-editor/back-button.js.map +1 -1
  4. package/build/components/block-editor/resizable-editor.js +2 -2
  5. package/build/components/block-editor/resizable-editor.js.map +1 -1
  6. package/build/components/block-editor/use-post-link-props.js +27 -0
  7. package/build/components/block-editor/use-post-link-props.js.map +1 -0
  8. package/build/components/block-editor/use-site-editor-settings.js +7 -24
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/create-template-part-modal/index.js +15 -7
  11. package/build/components/create-template-part-modal/index.js.map +1 -1
  12. package/build/components/editor/index.js +15 -16
  13. package/build/components/editor/index.js.map +1 -1
  14. package/build/components/editor-canvas-container/index.js +9 -7
  15. package/build/components/editor-canvas-container/index.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/collection-font-variant.js +5 -2
  17. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  19. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/context.js +5 -5
  21. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/font-collection.js +8 -4
  23. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/index.js +38 -21
  25. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  27. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/library-font-variant.js +5 -2
  29. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/local-fonts.js +26 -10
  31. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/resolvers.js +6 -6
  33. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +4 -4
  35. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -0
  36. package/build/components/global-styles/font-library-modal/utils/index.js +35 -38
  37. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  38. package/build/components/global-styles/preview.js +43 -1
  39. package/build/components/global-styles/preview.js.map +1 -1
  40. package/build/components/global-styles/screen-color-palette.js +16 -12
  41. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  42. package/build/components/global-styles/screen-revisions/index.js +52 -52
  43. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  44. package/build/components/global-styles/screen-revisions/revisions-buttons.js +26 -35
  45. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  46. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +40 -22
  47. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  48. package/build/components/global-styles/ui.js +13 -62
  49. package/build/components/global-styles/ui.js.map +1 -1
  50. package/build/components/header-edit-mode/document-tools/index.js +8 -106
  51. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  52. package/build/components/header-edit-mode/index.js +7 -11
  53. package/build/components/header-edit-mode/index.js.map +1 -1
  54. package/build/components/header-edit-mode/mode-switcher/index.js +0 -2
  55. package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  56. package/build/components/header-edit-mode/more-menu/index.js +10 -7
  57. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  58. package/build/components/keyboard-shortcuts/edit-mode.js +0 -23
  59. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  60. package/build/components/keyboard-shortcuts/register.js +0 -36
  61. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  62. package/build/components/layout/index.js +6 -13
  63. package/build/components/layout/index.js.map +1 -1
  64. package/build/components/page-main/index.js +4 -4
  65. package/build/components/page-main/index.js.map +1 -1
  66. package/build/components/page-pages/index.js +84 -37
  67. package/build/components/page-pages/index.js.map +1 -1
  68. package/build/components/page-patterns/dataviews-pattern-actions.js +305 -0
  69. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -0
  70. package/build/components/page-patterns/dataviews-patterns.js +307 -0
  71. package/build/components/page-patterns/dataviews-patterns.js.map +1 -0
  72. package/build/components/page-patterns/duplicate-menu-item.js +1 -1
  73. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  74. package/build/components/page-patterns/grid-item.js +4 -3
  75. package/build/components/page-patterns/grid-item.js.map +1 -1
  76. package/build/components/page-patterns/patterns-list.js +2 -1
  77. package/build/components/page-patterns/patterns-list.js.map +1 -1
  78. package/build/components/page-patterns/use-patterns.js +23 -13
  79. package/build/components/page-patterns/use-patterns.js.map +1 -1
  80. package/build/components/page-templates/index.js +312 -36
  81. package/build/components/page-templates/index.js.map +1 -1
  82. package/build/components/{page-patterns/pagination.js → pagination/index.js} +25 -12
  83. package/build/components/pagination/index.js.map +1 -0
  84. package/build/components/{page-pages/side-editor.js → post-preview/index.js} +8 -4
  85. package/build/components/post-preview/index.js.map +1 -0
  86. package/build/components/preferences-modal/enable-feature.js +3 -2
  87. package/build/components/preferences-modal/enable-feature.js.map +1 -1
  88. package/build/components/preferences-modal/enable-panel-option.js +33 -0
  89. package/build/components/preferences-modal/enable-panel-option.js.map +1 -0
  90. package/build/components/preferences-modal/index.js +57 -9
  91. package/build/components/preferences-modal/index.js.map +1 -1
  92. package/build/components/revisions/index.js +3 -7
  93. package/build/components/revisions/index.js.map +1 -1
  94. package/build/components/routes/link.js +6 -2
  95. package/build/components/routes/link.js.map +1 -1
  96. package/build/components/save-button/index.js +6 -3
  97. package/build/components/save-button/index.js.map +1 -1
  98. package/build/components/sidebar/index.js +3 -11
  99. package/build/components/sidebar/index.js.map +1 -1
  100. package/build/components/sidebar-dataviews/add-new-view.js +2 -2
  101. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  102. package/build/components/sidebar-dataviews/default-views.js +18 -5
  103. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  104. package/build/components/sidebar-dataviews/index.js +3 -3
  105. package/build/components/sidebar-dataviews/index.js.map +1 -1
  106. package/build/components/sidebar-edit-mode/default-sidebar.js +1 -5
  107. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  108. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +62 -10
  109. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  110. package/build/components/sidebar-edit-mode/page-panels/index.js +1 -1
  111. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  112. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -4
  113. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  114. package/build/components/sidebar-edit-mode/template-panel/index.js +4 -13
  115. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  116. package/build/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  117. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  118. package/build/components/sidebar-navigation-screen-global-styles/index.js +5 -2
  119. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  120. package/build/components/sidebar-navigation-screen-page/index.js +4 -1
  121. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  122. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +69 -0
  123. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -0
  124. package/build/components/sidebar-navigation-screen-templates/index.js +63 -8
  125. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  126. package/build/components/style-book/index.js +38 -8
  127. package/build/components/style-book/index.js.map +1 -1
  128. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  129. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  130. package/build/hooks/commands/use-edit-mode-commands.js +11 -6
  131. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  132. package/build/index.js +12 -7
  133. package/build/index.js.map +1 -1
  134. package/build/store/actions.js +39 -44
  135. package/build/store/actions.js.map +1 -1
  136. package/build/store/private-actions.js +6 -2
  137. package/build/store/private-actions.js.map +1 -1
  138. package/build/store/reducer.js +0 -46
  139. package/build/store/reducer.js.map +1 -1
  140. package/build/store/selectors.js +32 -41
  141. package/build/store/selectors.js.map +1 -1
  142. package/build/utils/get-is-list-page.js +1 -1
  143. package/build/utils/get-is-list-page.js.map +1 -1
  144. package/build-module/components/block-editor/back-button.js +4 -3
  145. package/build-module/components/block-editor/back-button.js.map +1 -1
  146. package/build-module/components/block-editor/resizable-editor.js +2 -2
  147. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  148. package/build-module/components/block-editor/use-post-link-props.js +20 -0
  149. package/build-module/components/block-editor/use-post-link-props.js.map +1 -0
  150. package/build-module/components/block-editor/use-site-editor-settings.js +8 -25
  151. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  152. package/build-module/components/create-template-part-modal/index.js +14 -7
  153. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  154. package/build-module/components/editor/index.js +16 -17
  155. package/build-module/components/editor/index.js.map +1 -1
  156. package/build-module/components/editor-canvas-container/index.js +9 -7
  157. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  158. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +5 -2
  159. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  160. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  161. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  162. package/build-module/components/global-styles/font-library-modal/context.js +7 -7
  163. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  164. package/build-module/components/global-styles/font-library-modal/font-collection.js +8 -4
  165. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  166. package/build-module/components/global-styles/font-library-modal/index.js +39 -22
  167. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  168. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  169. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  170. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +5 -2
  171. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  172. package/build-module/components/global-styles/font-library-modal/local-fonts.js +27 -11
  173. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  174. package/build-module/components/global-styles/font-library-modal/resolvers.js +5 -5
  175. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  176. package/build-module/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +4 -4
  177. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -0
  178. package/build-module/components/global-styles/font-library-modal/utils/index.js +34 -36
  179. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  180. package/build-module/components/global-styles/preview.js +45 -3
  181. package/build-module/components/global-styles/preview.js.map +1 -1
  182. package/build-module/components/global-styles/screen-color-palette.js +17 -13
  183. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  184. package/build-module/components/global-styles/screen-revisions/index.js +53 -53
  185. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  186. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +27 -36
  187. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  188. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +40 -22
  189. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  190. package/build-module/components/global-styles/ui.js +15 -64
  191. package/build-module/components/global-styles/ui.js.map +1 -1
  192. package/build-module/components/header-edit-mode/document-tools/index.js +13 -110
  193. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  194. package/build-module/components/header-edit-mode/index.js +7 -11
  195. package/build-module/components/header-edit-mode/index.js.map +1 -1
  196. package/build-module/components/header-edit-mode/mode-switcher/index.js +0 -2
  197. package/build-module/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  198. package/build-module/components/header-edit-mode/more-menu/index.js +10 -7
  199. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  200. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -23
  201. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  202. package/build-module/components/keyboard-shortcuts/register.js +0 -36
  203. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  204. package/build-module/components/layout/index.js +6 -13
  205. package/build-module/components/layout/index.js.map +1 -1
  206. package/build-module/components/page-main/index.js +4 -4
  207. package/build-module/components/page-main/index.js.map +1 -1
  208. package/build-module/components/page-pages/index.js +83 -36
  209. package/build-module/components/page-pages/index.js.map +1 -1
  210. package/build-module/components/page-patterns/dataviews-pattern-actions.js +292 -0
  211. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -0
  212. package/build-module/components/page-patterns/dataviews-patterns.js +299 -0
  213. package/build-module/components/page-patterns/dataviews-patterns.js.map +1 -0
  214. package/build-module/components/page-patterns/duplicate-menu-item.js +1 -1
  215. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  216. package/build-module/components/page-patterns/grid-item.js +4 -3
  217. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  218. package/build-module/components/page-patterns/patterns-list.js +2 -1
  219. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  220. package/build-module/components/page-patterns/use-patterns.js +23 -13
  221. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  222. package/build-module/components/page-templates/index.js +314 -38
  223. package/build-module/components/page-templates/index.js.map +1 -1
  224. package/build-module/components/{page-patterns/pagination.js → pagination/index.js} +24 -12
  225. package/build-module/components/pagination/index.js.map +1 -0
  226. package/build-module/components/{page-pages/side-editor.js → post-preview/index.js} +7 -3
  227. package/build-module/components/post-preview/index.js.map +1 -0
  228. package/build-module/components/preferences-modal/enable-feature.js +3 -2
  229. package/build-module/components/preferences-modal/enable-feature.js.map +1 -1
  230. package/build-module/components/preferences-modal/enable-panel-option.js +26 -0
  231. package/build-module/components/preferences-modal/enable-panel-option.js.map +1 -0
  232. package/build-module/components/preferences-modal/index.js +57 -9
  233. package/build-module/components/preferences-modal/index.js.map +1 -1
  234. package/build-module/components/revisions/index.js +4 -8
  235. package/build-module/components/revisions/index.js.map +1 -1
  236. package/build-module/components/routes/link.js +5 -2
  237. package/build-module/components/routes/link.js.map +1 -1
  238. package/build-module/components/save-button/index.js +6 -3
  239. package/build-module/components/save-button/index.js.map +1 -1
  240. package/build-module/components/sidebar/index.js +3 -11
  241. package/build-module/components/sidebar/index.js.map +1 -1
  242. package/build-module/components/sidebar-dataviews/add-new-view.js +1 -1
  243. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  244. package/build-module/components/sidebar-dataviews/default-views.js +17 -5
  245. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  246. package/build-module/components/sidebar-dataviews/index.js +2 -2
  247. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  248. package/build-module/components/sidebar-edit-mode/default-sidebar.js +1 -5
  249. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  250. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +64 -12
  251. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  252. package/build-module/components/sidebar-edit-mode/page-panels/index.js +2 -2
  253. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  254. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -4
  255. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  256. package/build-module/components/sidebar-edit-mode/template-panel/index.js +6 -15
  257. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  258. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  259. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  260. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +5 -2
  261. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  262. package/build-module/components/sidebar-navigation-screen-page/index.js +4 -1
  263. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  264. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +61 -0
  265. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -0
  266. package/build-module/components/sidebar-navigation-screen-templates/index.js +64 -9
  267. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  268. package/build-module/components/style-book/index.js +40 -10
  269. package/build-module/components/style-book/index.js.map +1 -1
  270. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  271. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  272. package/build-module/hooks/commands/use-edit-mode-commands.js +11 -6
  273. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  274. package/build-module/index.js +12 -7
  275. package/build-module/index.js.map +1 -1
  276. package/build-module/store/actions.js +36 -41
  277. package/build-module/store/actions.js.map +1 -1
  278. package/build-module/store/private-actions.js +6 -2
  279. package/build-module/store/private-actions.js.map +1 -1
  280. package/build-module/store/reducer.js +0 -44
  281. package/build-module/store/reducer.js.map +1 -1
  282. package/build-module/store/selectors.js +30 -38
  283. package/build-module/store/selectors.js.map +1 -1
  284. package/build-module/utils/get-is-list-page.js +1 -1
  285. package/build-module/utils/get-is-list-page.js.map +1 -1
  286. package/build-style/style-rtl.css +366 -268
  287. package/build-style/style.css +366 -268
  288. package/package.json +42 -42
  289. package/src/components/add-new-template/style.scss +2 -1
  290. package/src/components/block-editor/back-button.js +4 -2
  291. package/src/components/block-editor/resizable-editor.js +1 -1
  292. package/src/components/block-editor/style.scss +1 -2
  293. package/src/components/block-editor/use-post-link-props.js +20 -0
  294. package/src/components/block-editor/use-site-editor-settings.js +10 -41
  295. package/src/components/code-editor/style.scss +0 -4
  296. package/src/components/create-template-part-modal/index.js +83 -82
  297. package/src/components/editor/index.js +24 -31
  298. package/src/components/editor-canvas-container/index.js +8 -6
  299. package/src/components/global-styles/font-library-modal/collection-font-variant.js +7 -2
  300. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  301. package/src/components/global-styles/font-library-modal/context.js +7 -7
  302. package/src/components/global-styles/font-library-modal/font-collection.js +10 -5
  303. package/src/components/global-styles/font-library-modal/index.js +44 -24
  304. package/src/components/global-styles/font-library-modal/installed-fonts.js +3 -3
  305. package/src/components/global-styles/font-library-modal/library-font-variant.js +7 -2
  306. package/src/components/global-styles/font-library-modal/local-fonts.js +53 -26
  307. package/src/components/global-styles/font-library-modal/resolvers.js +5 -5
  308. package/src/components/global-styles/font-library-modal/style.scss +5 -2
  309. package/src/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +9 -3
  310. package/src/components/global-styles/font-library-modal/utils/index.js +21 -23
  311. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +58 -0
  312. package/src/components/global-styles/preview.js +55 -3
  313. package/src/components/global-styles/screen-color-palette.js +16 -26
  314. package/src/components/global-styles/screen-revisions/index.js +91 -92
  315. package/src/components/global-styles/screen-revisions/revisions-buttons.js +37 -38
  316. package/src/components/global-styles/screen-revisions/style.scss +77 -20
  317. package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +67 -0
  318. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +73 -46
  319. package/src/components/global-styles/ui.js +13 -74
  320. package/src/components/header-edit-mode/document-tools/index.js +33 -165
  321. package/src/components/header-edit-mode/index.js +6 -17
  322. package/src/components/header-edit-mode/mode-switcher/index.js +0 -4
  323. package/src/components/header-edit-mode/more-menu/index.js +9 -7
  324. package/src/components/header-edit-mode/style.scss +0 -47
  325. package/src/components/keyboard-shortcuts/edit-mode.js +1 -26
  326. package/src/components/keyboard-shortcuts/register.js +0 -43
  327. package/src/components/layout/index.js +8 -27
  328. package/src/components/layout/style.scss +10 -3
  329. package/src/components/list/style.scss +0 -5
  330. package/src/components/page/style.scss +1 -1
  331. package/src/components/page-main/index.js +8 -8
  332. package/src/components/page-pages/index.js +112 -41
  333. package/src/components/page-pages/style.scss +3 -2
  334. package/src/components/page-patterns/dataviews-pattern-actions.js +329 -0
  335. package/src/components/page-patterns/dataviews-patterns.js +380 -0
  336. package/src/components/page-patterns/duplicate-menu-item.js +1 -1
  337. package/src/components/page-patterns/grid-item.js +3 -2
  338. package/src/components/page-patterns/patterns-list.js +2 -1
  339. package/src/components/page-patterns/style.scss +89 -26
  340. package/src/components/page-patterns/use-patterns.js +24 -15
  341. package/src/components/page-templates/index.js +399 -64
  342. package/src/components/{page-patterns/pagination.js → pagination/index.js} +21 -10
  343. package/src/components/pagination/style.scss +5 -0
  344. package/src/components/post-preview/index.js +16 -0
  345. package/src/components/preferences-modal/enable-feature.js +9 -5
  346. package/src/components/preferences-modal/enable-panel-option.js +23 -0
  347. package/src/components/preferences-modal/index.js +107 -22
  348. package/src/components/revisions/index.js +8 -15
  349. package/src/components/routes/link.js +11 -3
  350. package/src/components/save-button/index.js +16 -3
  351. package/src/components/sidebar/index.js +6 -13
  352. package/src/components/sidebar-dataviews/add-new-view.js +1 -1
  353. package/src/components/sidebar-dataviews/default-views.js +23 -6
  354. package/src/components/sidebar-dataviews/index.js +2 -2
  355. package/src/components/sidebar-edit-mode/default-sidebar.js +0 -12
  356. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +85 -14
  357. package/src/components/sidebar-edit-mode/page-panels/index.js +15 -1
  358. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -12
  359. package/src/components/sidebar-edit-mode/style.scss +0 -10
  360. package/src/components/sidebar-edit-mode/template-panel/index.js +44 -40
  361. package/src/components/sidebar-edit-mode/template-panel/style.scss +0 -4
  362. package/src/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  363. package/src/components/sidebar-navigation-screen-global-styles/index.js +3 -2
  364. package/src/components/sidebar-navigation-screen-page/index.js +2 -1
  365. package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +77 -0
  366. package/src/components/sidebar-navigation-screen-templates/index.js +85 -28
  367. package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
  368. package/src/components/site-hub/style.scss +5 -2
  369. package/src/components/style-book/index.js +65 -21
  370. package/src/components/style-book/style.scss +3 -3
  371. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +4 -1
  372. package/src/hooks/commands/use-edit-mode-commands.js +8 -12
  373. package/src/index.js +11 -5
  374. package/src/store/actions.js +35 -45
  375. package/src/store/private-actions.js +7 -3
  376. package/src/store/reducer.js +0 -44
  377. package/src/store/selectors.js +32 -38
  378. package/src/store/test/actions.js +11 -39
  379. package/src/store/test/reducer.js +1 -82
  380. package/src/store/test/selectors.js +0 -24
  381. package/src/style.scss +2 -1
  382. package/src/utils/get-is-list-page.js +2 -3
  383. package/build/components/global-styles/font-library-modal/tab-layout.js.map +0 -1
  384. package/build/components/global-styles/screen-revisions/get-revision-changes.js +0 -146
  385. package/build/components/global-styles/screen-revisions/get-revision-changes.js.map +0 -1
  386. package/build/components/header-edit-mode/undo-redo/redo.js +0 -41
  387. package/build/components/header-edit-mode/undo-redo/redo.js.map +0 -1
  388. package/build/components/header-edit-mode/undo-redo/undo.js +0 -40
  389. package/build/components/header-edit-mode/undo-redo/undo.js.map +0 -1
  390. package/build/components/page-pages/side-editor.js.map +0 -1
  391. package/build/components/page-patterns/pagination.js.map +0 -1
  392. package/build/components/page-templates/dataviews-templates.js +0 -317
  393. package/build/components/page-templates/dataviews-templates.js.map +0 -1
  394. package/build/components/secondary-sidebar/inserter-sidebar.js +0 -60
  395. package/build/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  396. package/build/components/secondary-sidebar/list-view-sidebar.js +0 -109
  397. package/build/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  398. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -35
  399. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +0 -1
  400. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +0 -73
  401. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +0 -1
  402. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -219
  403. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +0 -1
  404. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +0 -1
  405. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js +0 -139
  406. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js.map +0 -1
  407. package/build-module/components/header-edit-mode/undo-redo/redo.js +0 -33
  408. package/build-module/components/header-edit-mode/undo-redo/redo.js.map +0 -1
  409. package/build-module/components/header-edit-mode/undo-redo/undo.js +0 -32
  410. package/build-module/components/header-edit-mode/undo-redo/undo.js.map +0 -1
  411. package/build-module/components/page-pages/side-editor.js.map +0 -1
  412. package/build-module/components/page-patterns/pagination.js.map +0 -1
  413. package/build-module/components/page-templates/dataviews-templates.js +0 -309
  414. package/build-module/components/page-templates/dataviews-templates.js.map +0 -1
  415. package/build-module/components/secondary-sidebar/inserter-sidebar.js +0 -53
  416. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  417. package/build-module/components/secondary-sidebar/list-view-sidebar.js +0 -102
  418. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  419. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -27
  420. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +0 -1
  421. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +0 -65
  422. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +0 -1
  423. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -209
  424. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +0 -1
  425. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +0 -62
  426. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +0 -28
  427. package/src/components/global-styles/screen-revisions/get-revision-changes.js +0 -171
  428. package/src/components/global-styles/screen-revisions/test/get-revision-changes.js +0 -191
  429. package/src/components/header-edit-mode/undo-redo/redo.js +0 -38
  430. package/src/components/header-edit-mode/undo-redo/undo.js +0 -34
  431. package/src/components/page-pages/side-editor.js +0 -14
  432. package/src/components/page-templates/dataviews-templates.js +0 -360
  433. package/src/components/secondary-sidebar/inserter-sidebar.js +0 -66
  434. package/src/components/secondary-sidebar/list-view-sidebar.js +0 -123
  435. package/src/components/secondary-sidebar/style.scss +0 -65
  436. package/src/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -26
  437. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +0 -82
  438. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -279
@@ -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
- }
@@ -1,123 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
5
- import { Button } from '@wordpress/components';
6
- import { useFocusOnMount, useMergeRefs } from '@wordpress/compose';
7
- import { useDispatch } from '@wordpress/data';
8
- import { useCallback, useRef, useState } from '@wordpress/element';
9
- import { __ } from '@wordpress/i18n';
10
- import { closeSmall } from '@wordpress/icons';
11
- import { ESCAPE } from '@wordpress/keycodes';
12
- import { focus } from '@wordpress/dom';
13
- import { useShortcut } from '@wordpress/keyboard-shortcuts';
14
-
15
- /**
16
- * Internal dependencies
17
- */
18
- import { store as editSiteStore } from '../../store';
19
- import { unlock } from '../../lock-unlock';
20
-
21
- const { PrivateListView } = unlock( blockEditorPrivateApis );
22
-
23
- export default function ListViewSidebar( { listViewToggleElement } ) {
24
- const { setIsListViewOpened } = useDispatch( editSiteStore );
25
-
26
- // This hook handles focus when the sidebar first renders.
27
- const focusOnMountRef = useFocusOnMount( 'firstElement' );
28
-
29
- // When closing the list view, focus should return to the toggle button.
30
- const closeListView = useCallback( () => {
31
- setIsListViewOpened( false );
32
- listViewToggleElement?.focus();
33
- }, [ listViewToggleElement, setIsListViewOpened ] );
34
-
35
- const closeOnEscape = useCallback(
36
- ( event ) => {
37
- if ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {
38
- event.preventDefault();
39
- closeListView();
40
- }
41
- },
42
- [ closeListView ]
43
- );
44
-
45
- // Use internal state instead of a ref to make sure that the component
46
- // re-renders when the dropZoneElement updates.
47
- const [ dropZoneElement, setDropZoneElement ] = useState( null );
48
-
49
- // This ref refers to the sidebar as a whole.
50
- const sidebarRef = useRef();
51
- // This ref refers to the close button.
52
- const sidebarCloseButtonRef = useRef();
53
- // This ref refers to the list view application area.
54
- const listViewRef = useRef();
55
-
56
- /*
57
- * Callback function to handle list view or close button focus.
58
- *
59
- * @return void
60
- */
61
- function handleSidebarFocus() {
62
- // Either focus the list view or the sidebar close button. Must have a fallback because the list view does not render when there are no blocks.
63
- const listViewApplicationFocus = focus.tabbable.find(
64
- listViewRef.current
65
- )[ 0 ];
66
- const listViewFocusArea = sidebarRef.current.contains(
67
- listViewApplicationFocus
68
- )
69
- ? listViewApplicationFocus
70
- : sidebarCloseButtonRef.current;
71
- listViewFocusArea.focus();
72
- }
73
-
74
- const handleToggleListViewShortcut = useCallback( () => {
75
- // If the sidebar has focus, it is safe to close.
76
- if (
77
- sidebarRef.current.contains(
78
- sidebarRef.current.ownerDocument.activeElement
79
- )
80
- ) {
81
- closeListView();
82
- } else {
83
- // If the list view or close button does not have focus, focus should be moved to it.
84
- handleSidebarFocus();
85
- }
86
- }, [ closeListView ] );
87
-
88
- // This only fires when the sidebar is open because of the conditional rendering.
89
- // It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.
90
- useShortcut(
91
- 'core/edit-site/toggle-list-view',
92
- handleToggleListViewShortcut
93
- );
94
-
95
- return (
96
- // eslint-disable-next-line jsx-a11y/no-static-element-interactions
97
- <div
98
- className="edit-site-editor__list-view-panel"
99
- onKeyDown={ closeOnEscape }
100
- ref={ sidebarRef }
101
- >
102
- <div className="edit-site-editor__list-view-panel-header">
103
- <strong>{ __( 'List View' ) }</strong>
104
- <Button
105
- icon={ closeSmall }
106
- label={ __( 'Close' ) }
107
- onClick={ closeListView }
108
- ref={ sidebarCloseButtonRef }
109
- />
110
- </div>
111
- <div
112
- className="edit-site-editor__list-view-panel-content"
113
- ref={ useMergeRefs( [
114
- focusOnMountRef,
115
- setDropZoneElement,
116
- listViewRef,
117
- ] ) }
118
- >
119
- <PrivateListView dropZoneElement={ dropZoneElement } />
120
- </div>
121
- </div>
122
- );
123
- }
@@ -1,65 +0,0 @@
1
- /**
2
- * Note that this CSS file should be in sync with its counterpart in the other editor:
3
- * packages/edit-post/src/components/secondary-sidebar/style.scss
4
- */
5
-
6
- .edit-site-editor__inserter-panel,
7
- .edit-site-editor__list-view-panel {
8
- height: 100%;
9
- display: flex;
10
- flex-direction: column;
11
- }
12
-
13
- .edit-site-editor__list-view-panel {
14
- @include break-medium() {
15
- // Same width as the Inserter.
16
- // @see packages/block-editor/src/components/inserter/style.scss
17
- width: 350px;
18
- }
19
- }
20
-
21
- .edit-site-editor__inserter-panel-header {
22
- padding-top: $grid-unit-10;
23
- padding-right: $grid-unit-10;
24
- display: flex;
25
- justify-content: flex-end;
26
- }
27
-
28
- .edit-site-editor__inserter-panel-content,
29
- .edit-site-editor__list-view-panel-content {
30
- // Leave space for the close button
31
- height: calc(100% - #{$button-size} - #{$grid-unit-10});
32
- }
33
-
34
-
35
- .edit-site-editor__inserter-panel-content {
36
- @include break-medium() {
37
- height: 100%;
38
- }
39
- }
40
-
41
- .edit-site-editor__list-view-panel-header {
42
- align-items: center;
43
- border-bottom: $border-width solid $gray-300;
44
- display: flex;
45
- justify-content: space-between;
46
- height: $grid-unit-60;
47
- padding-left: $grid-unit-20;
48
- padding-right: $grid-unit-05;
49
- }
50
-
51
- .edit-site-editor__list-view-panel-content {
52
- height: 100%;
53
-
54
- // Include custom scrollbars, invisible until hovered.
55
- @include custom-scrollbars-on-hover(transparent, $gray-600);
56
- overflow: auto;
57
-
58
- // Only reserve space for scrollbars when there is content to scroll.
59
- // This allows items in the list view to have equidistant padding left and right
60
- // right up until a scrollbar is present.
61
- scrollbar-gutter: auto;
62
-
63
- // The table cells use an extra pixels of space left and right. We compensate for that here.
64
- padding: $grid-unit-10 ($grid-unit-10 - $border-width - $border-width);
65
- }
@@ -1,26 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { privateApis as componentsPrivateApis } from '@wordpress/components';
5
-
6
- /**
7
- * Internal dependencies
8
- */
9
- import { unlock } from '../../lock-unlock';
10
-
11
- const { createPrivateSlotFill } = unlock( componentsPrivateApis );
12
- const SIDEBAR_FIXED_BOTTOM_SLOT_FILL_NAME = 'SidebarFixedBottom';
13
- const { Slot: SidebarFixedBottomSlot, Fill: SidebarFixedBottomFill } =
14
- createPrivateSlotFill( SIDEBAR_FIXED_BOTTOM_SLOT_FILL_NAME );
15
-
16
- export default function SidebarFixedBottom( { children } ) {
17
- return (
18
- <SidebarFixedBottomFill>
19
- <div className="edit-site-sidebar-fixed-bottom-slot">
20
- { children }
21
- </div>
22
- </SidebarFixedBottomFill>
23
- );
24
- }
25
-
26
- export { SidebarFixedBottomSlot };