@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
@@ -99,13 +99,3 @@
99
99
  }
100
100
  }
101
101
  }
102
-
103
- .edit-site-sidebar-fixed-bottom-slot {
104
- position: sticky;
105
- bottom: 0;
106
- background: $white;
107
- display: flex;
108
- padding: $grid-unit-20;
109
- border-top: $border-width solid $gray-300;
110
- box-sizing: content-box;
111
- }
@@ -3,7 +3,15 @@
3
3
  */
4
4
  import { useSelect } from '@wordpress/data';
5
5
  import { PanelBody } from '@wordpress/components';
6
- import { store as editorStore } from '@wordpress/editor';
6
+ import {
7
+ PageAttributesPanel,
8
+ PostDiscussionPanel,
9
+ PostExcerptPanel,
10
+ PostFeaturedImagePanel,
11
+ PostLastRevisionPanel,
12
+ PostTaxonomiesPanel,
13
+ store as editorStore,
14
+ } from '@wordpress/editor';
7
15
  import { store as coreStore } from '@wordpress/core-data';
8
16
  import { decodeEntities } from '@wordpress/html-entities';
9
17
  import { navigation, symbol } from '@wordpress/icons';
@@ -14,10 +22,7 @@ import { navigation, symbol } from '@wordpress/icons';
14
22
  import { store as editSiteStore } from '../../../store';
15
23
  import TemplateActions from './template-actions';
16
24
  import TemplateAreas from './template-areas';
17
- import LastRevision from './last-revision';
18
25
  import SidebarCard from '../sidebar-card';
19
- import PatternCategories from './pattern-categories';
20
- import { PATTERN_TYPES } from '../../../utils/constants';
21
26
 
22
27
  const CARD_ICONS = {
23
28
  wp_block: symbol,
@@ -25,49 +30,48 @@ const CARD_ICONS = {
25
30
  };
26
31
 
27
32
  export default function TemplatePanel() {
28
- const { title, description, icon, record, postType } = useSelect(
29
- ( select ) => {
30
- const { getEditedPostType, getEditedPostId } =
31
- select( editSiteStore );
32
- const { getEditedEntityRecord } = select( coreStore );
33
- const { __experimentalGetTemplateInfo: getTemplateInfo } =
34
- select( editorStore );
33
+ const { title, description, icon, record } = useSelect( ( select ) => {
34
+ const { getEditedPostType, getEditedPostId } = select( editSiteStore );
35
+ const { getEditedEntityRecord } = select( coreStore );
36
+ const { __experimentalGetTemplateInfo: getTemplateInfo } =
37
+ select( editorStore );
35
38
 
36
- const type = getEditedPostType();
37
- const postId = getEditedPostId();
38
- const _record = getEditedEntityRecord( 'postType', type, postId );
39
- const info = getTemplateInfo( _record );
39
+ const type = getEditedPostType();
40
+ const postId = getEditedPostId();
41
+ const _record = getEditedEntityRecord( 'postType', type, postId );
42
+ const info = getTemplateInfo( _record );
40
43
 
41
- return {
42
- title: info.title,
43
- description: info.description,
44
- icon: info.icon,
45
- record: _record,
46
- postType: type,
47
- };
48
- },
49
- []
50
- );
44
+ return {
45
+ title: info.title,
46
+ description: info.description,
47
+ icon: info.icon,
48
+ record: _record,
49
+ };
50
+ }, [] );
51
51
 
52
52
  if ( ! title && ! description ) {
53
53
  return null;
54
54
  }
55
55
 
56
56
  return (
57
- <PanelBody className="edit-site-template-panel">
58
- <SidebarCard
59
- className="edit-site-template-card"
60
- title={ decodeEntities( title ) }
61
- icon={ CARD_ICONS[ record?.type ] ?? icon }
62
- description={ decodeEntities( description ) }
63
- actions={ <TemplateActions template={ record } /> }
64
- >
65
- <TemplateAreas />
66
- </SidebarCard>
67
- <LastRevision />
68
- { postType === PATTERN_TYPES.user && (
69
- <PatternCategories post={ record } />
70
- ) }
71
- </PanelBody>
57
+ <>
58
+ <PanelBody>
59
+ <SidebarCard
60
+ className="edit-site-template-card"
61
+ title={ decodeEntities( title ) }
62
+ icon={ CARD_ICONS[ record?.type ] ?? icon }
63
+ description={ decodeEntities( description ) }
64
+ actions={ <TemplateActions template={ record } /> }
65
+ >
66
+ <TemplateAreas />
67
+ </SidebarCard>
68
+ </PanelBody>
69
+ <PostLastRevisionPanel />
70
+ <PostTaxonomiesPanel />
71
+ <PostFeaturedImagePanel />
72
+ <PostExcerptPanel />
73
+ <PostDiscussionPanel />
74
+ <PageAttributesPanel />
75
+ </>
72
76
  );
73
77
  }
@@ -29,10 +29,6 @@
29
29
  }
30
30
  }
31
31
 
32
- .edit-site-template-revisions {
33
- margin-left: math.div(-$grid-unit-10, 2);
34
- }
35
-
36
32
  h3.edit-site-template-card__template-areas-title {
37
33
  font-weight: 500;
38
34
  margin: 0 0 $grid-unit-10;
@@ -42,7 +42,7 @@ export default function SidebarNavigationScreenDetailsFooter( {
42
42
  return (
43
43
  <ItemGroup className="edit-site-sidebar-navigation-screen-details-footer">
44
44
  <SidebarNavigationItem
45
- label={ __( 'Revisions' ) }
45
+ aria-label={ __( 'Revisions' ) }
46
46
  { ...hrefProps }
47
47
  { ...otherProps }
48
48
  >
@@ -9,6 +9,7 @@ import { __experimentalNavigatorButton as NavigatorButton } from '@wordpress/com
9
9
  import { useViewportMatch } from '@wordpress/compose';
10
10
  import { BlockEditorProvider } from '@wordpress/block-editor';
11
11
  import { useCallback } from '@wordpress/element';
12
+ import { store as editorStore } from '@wordpress/editor';
12
13
 
13
14
  /**
14
15
  * Internal dependencies
@@ -86,8 +87,8 @@ function SidebarNavigationScreenGlobalStylesContent() {
86
87
  export default function SidebarNavigationScreenGlobalStyles() {
87
88
  const { revisions, isLoading: isLoadingRevisions } =
88
89
  useGlobalStylesRevisions();
89
- const { openGeneralSidebar, setIsListViewOpened } =
90
- useDispatch( editSiteStore );
90
+ const { openGeneralSidebar } = useDispatch( editSiteStore );
91
+ const { setIsListViewOpened } = useDispatch( editorStore );
91
92
  const isMobileViewport = useViewportMatch( 'medium', '<' );
92
93
  const { setCanvasMode, setEditorCanvasContainerView } = unlock(
93
94
  useDispatch( editSiteStore )
@@ -31,7 +31,7 @@ import SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-d
31
31
 
32
32
  const { useHistory } = unlock( routerPrivateApis );
33
33
 
34
- export default function SidebarNavigationScreenPage() {
34
+ export default function SidebarNavigationScreenPage( { backPath } ) {
35
35
  const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
36
36
  const history = useHistory();
37
37
  const {
@@ -88,6 +88,7 @@ export default function SidebarNavigationScreenPage() {
88
88
 
89
89
  return record ? (
90
90
  <SidebarNavigationScreen
91
+ backPath={ backPath }
91
92
  title={ decodeEntities(
92
93
  record?.title?.rendered || __( '(no title)' )
93
94
  ) }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import {
5
+ __experimentalTruncate as Truncate,
6
+ __experimentalVStack as VStack,
7
+ } from '@wordpress/components';
8
+ import { layout } from '@wordpress/icons';
9
+ import { useMemo } from '@wordpress/element';
10
+ import { useEntityRecords } from '@wordpress/core-data';
11
+ import { decodeEntities } from '@wordpress/html-entities';
12
+ import { __ } from '@wordpress/i18n';
13
+
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+ import { useLink } from '../routes/link';
18
+ import { TEMPLATE_POST_TYPE } from '../../utils/constants';
19
+ import SidebarNavigationItem from '../sidebar-navigation-item';
20
+ import SidebarNavigationScreen from '../sidebar-navigation-screen';
21
+ import DataViewsSidebarContent from '../sidebar-dataviews';
22
+
23
+ const PageItem = ( { postType = 'page', postId, ...props } ) => {
24
+ const linkInfo = useLink(
25
+ {
26
+ postType,
27
+ postId,
28
+ },
29
+ {
30
+ backPath: '/page',
31
+ }
32
+ );
33
+ return <SidebarNavigationItem { ...linkInfo } { ...props } />;
34
+ };
35
+
36
+ export default function SidebarNavigationScreenPagesDataViews() {
37
+ const { records: templateRecords } = useEntityRecords(
38
+ 'postType',
39
+ TEMPLATE_POST_TYPE,
40
+ {
41
+ per_page: -1,
42
+ }
43
+ );
44
+ const templates = useMemo(
45
+ () =>
46
+ templateRecords?.filter( ( { slug } ) =>
47
+ [ '404', 'search' ].includes( slug )
48
+ ),
49
+ [ templateRecords ]
50
+ );
51
+
52
+ return (
53
+ <SidebarNavigationScreen
54
+ title={ __( 'Pages' ) }
55
+ content={ <DataViewsSidebarContent /> }
56
+ footer={
57
+ <VStack spacing={ 0 }>
58
+ { templates?.map( ( item ) => (
59
+ <PageItem
60
+ postType={ TEMPLATE_POST_TYPE }
61
+ postId={ item.id }
62
+ key={ item.id }
63
+ icon={ layout }
64
+ withChevron
65
+ >
66
+ <Truncate numberOfLines={ 1 }>
67
+ { decodeEntities(
68
+ item.title?.rendered || __( '(no title)' )
69
+ ) }
70
+ </Truncate>
71
+ </PageItem>
72
+ ) ) }
73
+ </VStack>
74
+ }
75
+ />
76
+ );
77
+ }
@@ -4,6 +4,7 @@
4
4
  import {
5
5
  __experimentalItemGroup as ItemGroup,
6
6
  __experimentalItem as Item,
7
+ __experimentalVStack as VStack,
7
8
  } from '@wordpress/components';
8
9
  import { __ } from '@wordpress/i18n';
9
10
  import { useEntityRecords } from '@wordpress/core-data';
@@ -30,20 +31,11 @@ const TemplateItem = ( { postType, postId, ...props } ) => {
30
31
 
31
32
  export default function SidebarNavigationScreenTemplates() {
32
33
  const isMobileViewport = useViewportMatch( 'medium', '<' );
33
-
34
34
  const { records: templates, isResolving: isLoading } = useEntityRecords(
35
35
  'postType',
36
36
  TEMPLATE_POST_TYPE,
37
- {
38
- per_page: -1,
39
- }
40
- );
41
-
42
- const sortedTemplates = templates ? [ ...templates ] : [];
43
- sortedTemplates.sort( ( a, b ) =>
44
- a.title.rendered.localeCompare( b.title.rendered )
37
+ { per_page: -1 }
45
38
  );
46
-
47
39
  const browseAllLink = useLink( { path: '/wp_template/all' } );
48
40
  const canCreate = ! isMobileViewport;
49
41
  return (
@@ -66,24 +58,7 @@ export default function SidebarNavigationScreenTemplates() {
66
58
  <>
67
59
  { isLoading && __( 'Loading templates…' ) }
68
60
  { ! isLoading && (
69
- <ItemGroup>
70
- { ! templates?.length && (
71
- <Item>{ __( 'No templates found' ) }</Item>
72
- ) }
73
- { sortedTemplates.map( ( template ) => (
74
- <TemplateItem
75
- postType={ TEMPLATE_POST_TYPE }
76
- postId={ template.id }
77
- key={ template.id }
78
- withChevron
79
- >
80
- { decodeEntities(
81
- template.title?.rendered ||
82
- template.slug
83
- ) }
84
- </TemplateItem>
85
- ) ) }
86
- </ItemGroup>
61
+ <SidebarTemplatesList templates={ templates } />
87
62
  ) }
88
63
  </>
89
64
  }
@@ -97,3 +72,85 @@ export default function SidebarNavigationScreenTemplates() {
97
72
  />
98
73
  );
99
74
  }
75
+
76
+ function TemplatesGroup( { title, templates } ) {
77
+ return (
78
+ <ItemGroup>
79
+ { !! title && (
80
+ <Item className="edit-site-sidebar-navigation-screen-templates__templates-group-title">
81
+ { title }
82
+ </Item>
83
+ ) }
84
+ { templates.map( ( template ) => (
85
+ <TemplateItem
86
+ postType={ TEMPLATE_POST_TYPE }
87
+ postId={ template.id }
88
+ key={ template.id }
89
+ withChevron
90
+ >
91
+ { decodeEntities(
92
+ template.title?.rendered || template.slug
93
+ ) }
94
+ </TemplateItem>
95
+ ) ) }
96
+ </ItemGroup>
97
+ );
98
+ }
99
+ function SidebarTemplatesList( { templates } ) {
100
+ if ( ! templates?.length ) {
101
+ return (
102
+ <ItemGroup>
103
+ <Item>{ __( 'No templates found' ) }</Item>
104
+ </ItemGroup>
105
+ );
106
+ }
107
+ const sortedTemplates = templates ? [ ...templates ] : [];
108
+ sortedTemplates.sort( ( a, b ) =>
109
+ a.title.rendered.localeCompare( b.title.rendered )
110
+ );
111
+ const { hierarchyTemplates, customTemplates, ...plugins } =
112
+ sortedTemplates.reduce(
113
+ ( accumulator, template ) => {
114
+ const {
115
+ original_source: originalSource,
116
+ author_text: authorText,
117
+ } = template;
118
+ if ( originalSource === 'plugin' ) {
119
+ if ( ! accumulator[ authorText ] ) {
120
+ accumulator[ authorText ] = [];
121
+ }
122
+ accumulator[ authorText ].push( template );
123
+ } else if ( template.is_custom ) {
124
+ accumulator.customTemplates.push( template );
125
+ } else {
126
+ accumulator.hierarchyTemplates.push( template );
127
+ }
128
+ return accumulator;
129
+ },
130
+ { hierarchyTemplates: [], customTemplates: [] }
131
+ );
132
+ return (
133
+ <VStack spacing={ 3 }>
134
+ { !! hierarchyTemplates.length && (
135
+ <TemplatesGroup templates={ hierarchyTemplates } />
136
+ ) }
137
+ { !! customTemplates.length && (
138
+ <TemplatesGroup
139
+ title={ __( 'Custom' ) }
140
+ templates={ customTemplates }
141
+ />
142
+ ) }
143
+ { Object.entries( plugins ).map(
144
+ ( [ plugin, pluginTemplates ] ) => {
145
+ return (
146
+ <TemplatesGroup
147
+ key={ plugin }
148
+ title={ plugin }
149
+ templates={ pluginTemplates }
150
+ />
151
+ );
152
+ }
153
+ ) }
154
+ </VStack>
155
+ );
156
+ }
@@ -0,0 +1,9 @@
1
+ .edit-site-sidebar-navigation-screen-templates__templates-group-title.components-item {
2
+ text-transform: uppercase;
3
+ color: $gray-200;
4
+ // 6px right padding to align with + button
5
+ padding: $grid-unit-30 6px $grid-unit-20 $grid-unit-20;
6
+ border-top: 1px solid $gray-800;
7
+ font-size: 11px;
8
+ font-weight: 500;
9
+ }
@@ -73,7 +73,10 @@
73
73
  .edit-site-site-hub_toggle-command-center {
74
74
  color: $gray-200;
75
75
 
76
- &:hover {
77
- color: $gray-100;
76
+ &:hover,
77
+ &:active {
78
+ svg {
79
+ fill: $gray-100;
80
+ }
78
81
  }
79
82
  }
@@ -8,7 +8,6 @@ import classnames from 'classnames';
8
8
  */
9
9
  import {
10
10
  Disabled,
11
- TabPanel,
12
11
  privateApis as componentsPrivateApis,
13
12
  } from '@wordpress/components';
14
13
  import { __, sprintf } from '@wordpress/i18n';
@@ -27,7 +26,7 @@ import {
27
26
  } from '@wordpress/block-editor';
28
27
  import { useSelect } from '@wordpress/data';
29
28
  import { useResizeObserver } from '@wordpress/compose';
30
- import { useMemo, useState, memo } from '@wordpress/element';
29
+ import { useMemo, useState, memo, useContext } from '@wordpress/element';
31
30
  import { ENTER, SPACE } from '@wordpress/keycodes';
32
31
 
33
32
  /**
@@ -35,15 +34,20 @@ import { ENTER, SPACE } from '@wordpress/keycodes';
35
34
  */
36
35
  import { unlock } from '../../lock-unlock';
37
36
  import EditorCanvasContainer from '../editor-canvas-container';
37
+ import { mergeBaseAndUserConfigs } from '../global-styles/global-styles-provider';
38
38
 
39
- const { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(
40
- blockEditorPrivateApis
41
- );
39
+ const {
40
+ ExperimentalBlockEditorProvider,
41
+ useGlobalStyle,
42
+ GlobalStylesContext,
43
+ useGlobalStylesOutputWithConfig,
44
+ } = unlock( blockEditorPrivateApis );
42
45
 
43
46
  const {
44
47
  CompositeV2: Composite,
45
48
  CompositeItemV2: CompositeItem,
46
49
  useCompositeStoreV2: useCompositeStore,
50
+ Tabs,
47
51
  } = unlock( componentsPrivateApis );
48
52
 
49
53
  // The content area of the Style Book is rendered within an iframe so that global styles
@@ -118,6 +122,10 @@ const STYLE_BOOK_IFRAME_STYLES = `
118
122
  }
119
123
  `;
120
124
 
125
+ function isObjectEmpty( object ) {
126
+ return ! object || Object.keys( object ).length === 0;
127
+ }
128
+
121
129
  function getExamples() {
122
130
  // Use our own example for the Heading block so that we can show multiple
123
131
  // heading levels.
@@ -174,7 +182,9 @@ function StyleBook( {
174
182
  onClick,
175
183
  onSelect,
176
184
  showCloseButton = true,
185
+ onClose,
177
186
  showTabs = true,
187
+ userConfig = {},
178
188
  } ) {
179
189
  const [ resizeObserver, sizes ] = useResizeObserver();
180
190
  const [ textColor ] = useGlobalStyle( 'color.text' );
@@ -195,18 +205,37 @@ function StyleBook( {
195
205
  } ) ),
196
206
  [ examples ]
197
207
  );
208
+ const { base: baseConfig } = useContext( GlobalStylesContext );
209
+
210
+ const mergedConfig = useMemo( () => {
211
+ if ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {
212
+ return mergeBaseAndUserConfigs( baseConfig, userConfig );
213
+ }
214
+ return {};
215
+ }, [ baseConfig, userConfig ] );
198
216
 
217
+ // Copied from packages/edit-site/src/components/revisions/index.js
218
+ // could we create a shared hook?
199
219
  const originalSettings = useSelect(
200
220
  ( select ) => select( blockEditorStore ).getSettings(),
201
221
  []
202
222
  );
223
+
203
224
  const settings = useMemo(
204
225
  () => ( { ...originalSettings, __unstableIsPreviewMode: true } ),
205
226
  [ originalSettings ]
206
227
  );
207
228
 
229
+ const [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );
230
+
231
+ settings.styles =
232
+ ! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )
233
+ ? globalStyles
234
+ : settings.styles;
235
+
208
236
  return (
209
237
  <EditorCanvasContainer
238
+ onClose={ onClose }
210
239
  enableResizing={ enableResizing }
211
240
  closeButtonLabel={
212
241
  showCloseButton ? __( 'Close Style Book' ) : null
@@ -224,22 +253,37 @@ function StyleBook( {
224
253
  >
225
254
  { resizeObserver }
226
255
  { showTabs ? (
227
- <TabPanel
228
- className="edit-site-style-book__tab-panel"
229
- tabs={ tabs }
230
- >
231
- { ( tab ) => (
232
- <StyleBookBody
233
- category={ tab.name }
234
- examples={ examples }
235
- isSelected={ isSelected }
236
- onSelect={ onSelect }
237
- settings={ settings }
238
- sizes={ sizes }
239
- title={ tab.title }
240
- />
241
- ) }
242
- </TabPanel>
256
+ <div className="edit-site-style-book__tabs">
257
+ <Tabs>
258
+ <Tabs.TabList>
259
+ { tabs.map( ( tab ) => (
260
+ <Tabs.Tab
261
+ tabId={ tab.name }
262
+ key={ tab.name }
263
+ >
264
+ { tab.title }
265
+ </Tabs.Tab>
266
+ ) ) }
267
+ </Tabs.TabList>
268
+ { tabs.map( ( tab ) => (
269
+ <Tabs.TabPanel
270
+ key={ tab.name }
271
+ tabId={ tab.name }
272
+ focusable={ false }
273
+ >
274
+ <StyleBookBody
275
+ category={ tab.name }
276
+ examples={ examples }
277
+ isSelected={ isSelected }
278
+ onSelect={ onSelect }
279
+ settings={ settings }
280
+ sizes={ sizes }
281
+ title={ tab.title }
282
+ />
283
+ </Tabs.TabPanel>
284
+ ) ) }
285
+ </Tabs>
286
+ </div>
243
287
  ) : (
244
288
  <StyleBookBody
245
289
  examples={ examples }
@@ -17,13 +17,13 @@
17
17
  }
18
18
  }
19
19
 
20
- .edit-site-style-book__tab-panel {
21
- .components-tab-panel__tabs {
20
+ .edit-site-style-book__tabs {
21
+ [role="tablist"] {
22
22
  background: $white;
23
23
  color: $gray-900;
24
24
  }
25
25
 
26
- .components-tab-panel__tab-content {
26
+ [role="tabpanel"] {
27
27
  bottom: 0;
28
28
  left: 0;
29
29
  overflow: auto;
@@ -54,7 +54,10 @@ function useResolveEditedEntityAndContext( { postId, postType } ) {
54
54
  return {
55
55
  hasLoadedAllDependencies: !! base && !! siteData,
56
56
  homepageId:
57
- siteData?.show_on_front === 'page'
57
+ siteData?.show_on_front === 'page' &&
58
+ [ 'number', 'string' ].includes(
59
+ typeof siteData.page_on_front
60
+ )
58
61
  ? siteData.page_on_front.toString()
59
62
  : null,
60
63
  url: base?.home,
@@ -217,22 +217,18 @@ function useEditUICommands() {
217
217
  isListViewOpen,
218
218
  isDistractionFree,
219
219
  } = useSelect( ( select ) => {
220
- const { isListViewOpened, getEditorMode } = select( editSiteStore );
220
+ const { get } = select( preferencesStore );
221
+ const { getEditorMode } = select( editSiteStore );
222
+ const { isListViewOpened } = select( editorStore );
221
223
  return {
222
224
  canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
223
225
  editorMode: getEditorMode(),
224
226
  activeSidebar: select( interfaceStore ).getActiveComplementaryArea(
225
227
  editSiteStore.name
226
228
  ),
227
- showBlockBreadcrumbs: select( preferencesStore ).get(
228
- 'core/edit-site',
229
- 'showBlockBreadcrumbs'
230
- ),
229
+ showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
231
230
  isListViewOpen: isListViewOpened(),
232
- isDistractionFree: select( preferencesStore ).get(
233
- editSiteStore.name,
234
- 'distractionFree'
235
- ),
231
+ isDistractionFree: get( 'core', 'distractionFree' ),
236
232
  };
237
233
  }, [] );
238
234
  const { openModal } = useDispatch( interfaceStore );
@@ -277,7 +273,7 @@ function useEditUICommands() {
277
273
  name: 'core/toggle-spotlight-mode',
278
274
  label: __( 'Toggle spotlight mode' ),
279
275
  callback: ( { close } ) => {
280
- toggle( 'core/edit-site', 'focusMode' );
276
+ toggle( 'core', 'focusMode' );
281
277
  close();
282
278
  },
283
279
  } );
@@ -295,7 +291,7 @@ function useEditUICommands() {
295
291
  name: 'core/toggle-top-toolbar',
296
292
  label: __( 'Toggle top toolbar' ),
297
293
  callback: ( { close } ) => {
298
- toggle( 'core/edit-site', 'fixedToolbar' );
294
+ toggle( 'core', 'fixedToolbar' );
299
295
  if ( isDistractionFree ) {
300
296
  toggleDistractionFree();
301
297
  }
@@ -338,7 +334,7 @@ function useEditUICommands() {
338
334
  ? __( 'Hide block breadcrumbs' )
339
335
  : __( 'Show block breadcrumbs' ),
340
336
  callback: ( { close } ) => {
341
- toggle( 'core/edit-site', 'showBlockBreadcrumbs' );
337
+ toggle( 'core', 'showBlockBreadcrumbs' );
342
338
  close();
343
339
  createInfoNotice(
344
340
  showBlockBreadcrumbs