@wordpress/edit-site 5.25.0 → 5.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/block-editor/back-button.js +3 -2
  4. package/build/components/block-editor/back-button.js.map +1 -1
  5. package/build/components/block-editor/resizable-editor.js +2 -2
  6. package/build/components/block-editor/resizable-editor.js.map +1 -1
  7. package/build/components/block-editor/use-post-link-props.js +27 -0
  8. package/build/components/block-editor/use-post-link-props.js.map +1 -0
  9. package/build/components/block-editor/use-site-editor-settings.js +7 -24
  10. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  11. package/build/components/create-template-part-modal/index.js +15 -7
  12. package/build/components/create-template-part-modal/index.js.map +1 -1
  13. package/build/components/editor/index.js +15 -16
  14. package/build/components/editor/index.js.map +1 -1
  15. package/build/components/editor-canvas-container/index.js +9 -7
  16. package/build/components/editor-canvas-container/index.js.map +1 -1
  17. package/build/components/global-styles/font-library-modal/collection-font-variant.js +5 -2
  18. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  19. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  20. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  21. package/build/components/global-styles/font-library-modal/context.js +5 -5
  22. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  23. package/build/components/global-styles/font-library-modal/font-collection.js +8 -4
  24. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  25. package/build/components/global-styles/font-library-modal/index.js +38 -21
  26. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  27. package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  28. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  29. package/build/components/global-styles/font-library-modal/library-font-variant.js +5 -2
  30. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  31. package/build/components/global-styles/font-library-modal/local-fonts.js +26 -10
  32. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  33. package/build/components/global-styles/font-library-modal/resolvers.js +6 -6
  34. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  35. package/build/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +4 -4
  36. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -0
  37. package/build/components/global-styles/font-library-modal/utils/index.js +35 -38
  38. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  39. package/build/components/global-styles/preview.js +43 -1
  40. package/build/components/global-styles/preview.js.map +1 -1
  41. package/build/components/global-styles/screen-color-palette.js +16 -12
  42. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  43. package/build/components/global-styles/screen-revisions/index.js +52 -52
  44. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  45. package/build/components/global-styles/screen-revisions/revisions-buttons.js +26 -35
  46. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  47. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +40 -22
  48. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  49. package/build/components/global-styles/ui.js +13 -62
  50. package/build/components/global-styles/ui.js.map +1 -1
  51. package/build/components/header-edit-mode/document-tools/index.js +8 -106
  52. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  53. package/build/components/header-edit-mode/index.js +7 -11
  54. package/build/components/header-edit-mode/index.js.map +1 -1
  55. package/build/components/header-edit-mode/mode-switcher/index.js +0 -2
  56. package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  57. package/build/components/header-edit-mode/more-menu/index.js +10 -7
  58. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  59. package/build/components/keyboard-shortcuts/edit-mode.js +0 -23
  60. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  61. package/build/components/keyboard-shortcuts/register.js +0 -36
  62. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  63. package/build/components/layout/index.js +6 -13
  64. package/build/components/layout/index.js.map +1 -1
  65. package/build/components/page-main/index.js +4 -4
  66. package/build/components/page-main/index.js.map +1 -1
  67. package/build/components/page-pages/index.js +84 -37
  68. package/build/components/page-pages/index.js.map +1 -1
  69. package/build/components/page-patterns/dataviews-pattern-actions.js +305 -0
  70. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -0
  71. package/build/components/page-patterns/dataviews-patterns.js +307 -0
  72. package/build/components/page-patterns/dataviews-patterns.js.map +1 -0
  73. package/build/components/page-patterns/duplicate-menu-item.js +1 -1
  74. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  75. package/build/components/page-patterns/grid-item.js +4 -3
  76. package/build/components/page-patterns/grid-item.js.map +1 -1
  77. package/build/components/page-patterns/patterns-list.js +2 -1
  78. package/build/components/page-patterns/patterns-list.js.map +1 -1
  79. package/build/components/page-patterns/use-patterns.js +23 -13
  80. package/build/components/page-patterns/use-patterns.js.map +1 -1
  81. package/build/components/page-templates/index.js +312 -36
  82. package/build/components/page-templates/index.js.map +1 -1
  83. package/build/components/{page-patterns/pagination.js → pagination/index.js} +25 -12
  84. package/build/components/pagination/index.js.map +1 -0
  85. package/build/components/{page-pages/side-editor.js → post-preview/index.js} +8 -4
  86. package/build/components/post-preview/index.js.map +1 -0
  87. package/build/components/preferences-modal/enable-feature.js +3 -2
  88. package/build/components/preferences-modal/enable-feature.js.map +1 -1
  89. package/build/components/preferences-modal/enable-panel-option.js +33 -0
  90. package/build/components/preferences-modal/enable-panel-option.js.map +1 -0
  91. package/build/components/preferences-modal/index.js +57 -9
  92. package/build/components/preferences-modal/index.js.map +1 -1
  93. package/build/components/revisions/index.js +3 -7
  94. package/build/components/revisions/index.js.map +1 -1
  95. package/build/components/routes/link.js +6 -2
  96. package/build/components/routes/link.js.map +1 -1
  97. package/build/components/save-button/index.js +6 -3
  98. package/build/components/save-button/index.js.map +1 -1
  99. package/build/components/sidebar/index.js +3 -11
  100. package/build/components/sidebar/index.js.map +1 -1
  101. package/build/components/sidebar-dataviews/add-new-view.js +2 -2
  102. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  103. package/build/components/sidebar-dataviews/default-views.js +18 -5
  104. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  105. package/build/components/sidebar-dataviews/index.js +3 -3
  106. package/build/components/sidebar-dataviews/index.js.map +1 -1
  107. package/build/components/sidebar-edit-mode/default-sidebar.js +1 -5
  108. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  109. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +62 -10
  110. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  111. package/build/components/sidebar-edit-mode/page-panels/index.js +1 -1
  112. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  113. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -4
  114. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  115. package/build/components/sidebar-edit-mode/template-panel/index.js +4 -13
  116. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  117. package/build/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  118. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  119. package/build/components/sidebar-navigation-screen-global-styles/index.js +5 -2
  120. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  121. package/build/components/sidebar-navigation-screen-page/index.js +4 -1
  122. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  123. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +69 -0
  124. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -0
  125. package/build/components/style-book/index.js +38 -8
  126. package/build/components/style-book/index.js.map +1 -1
  127. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  128. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  129. package/build/hooks/commands/use-edit-mode-commands.js +11 -6
  130. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  131. package/build/index.js +12 -7
  132. package/build/index.js.map +1 -1
  133. package/build/store/actions.js +39 -44
  134. package/build/store/actions.js.map +1 -1
  135. package/build/store/private-actions.js +6 -2
  136. package/build/store/private-actions.js.map +1 -1
  137. package/build/store/reducer.js +0 -46
  138. package/build/store/reducer.js.map +1 -1
  139. package/build/store/selectors.js +32 -41
  140. package/build/store/selectors.js.map +1 -1
  141. package/build/utils/get-is-list-page.js +1 -1
  142. package/build/utils/get-is-list-page.js.map +1 -1
  143. package/build-module/components/block-editor/back-button.js +4 -3
  144. package/build-module/components/block-editor/back-button.js.map +1 -1
  145. package/build-module/components/block-editor/resizable-editor.js +2 -2
  146. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  147. package/build-module/components/block-editor/use-post-link-props.js +20 -0
  148. package/build-module/components/block-editor/use-post-link-props.js.map +1 -0
  149. package/build-module/components/block-editor/use-site-editor-settings.js +8 -25
  150. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  151. package/build-module/components/create-template-part-modal/index.js +14 -7
  152. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  153. package/build-module/components/editor/index.js +16 -17
  154. package/build-module/components/editor/index.js.map +1 -1
  155. package/build-module/components/editor-canvas-container/index.js +9 -7
  156. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  157. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +5 -2
  158. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  159. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  160. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  161. package/build-module/components/global-styles/font-library-modal/context.js +7 -7
  162. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  163. package/build-module/components/global-styles/font-library-modal/font-collection.js +8 -4
  164. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  165. package/build-module/components/global-styles/font-library-modal/index.js +39 -22
  166. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  167. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  168. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  169. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +5 -2
  170. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  171. package/build-module/components/global-styles/font-library-modal/local-fonts.js +27 -11
  172. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  173. package/build-module/components/global-styles/font-library-modal/resolvers.js +5 -5
  174. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  175. package/build-module/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +4 -4
  176. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -0
  177. package/build-module/components/global-styles/font-library-modal/utils/index.js +34 -36
  178. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  179. package/build-module/components/global-styles/preview.js +45 -3
  180. package/build-module/components/global-styles/preview.js.map +1 -1
  181. package/build-module/components/global-styles/screen-color-palette.js +17 -13
  182. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  183. package/build-module/components/global-styles/screen-revisions/index.js +53 -53
  184. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  185. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +27 -36
  186. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  187. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +40 -22
  188. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  189. package/build-module/components/global-styles/ui.js +15 -64
  190. package/build-module/components/global-styles/ui.js.map +1 -1
  191. package/build-module/components/header-edit-mode/document-tools/index.js +13 -110
  192. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  193. package/build-module/components/header-edit-mode/index.js +7 -11
  194. package/build-module/components/header-edit-mode/index.js.map +1 -1
  195. package/build-module/components/header-edit-mode/mode-switcher/index.js +0 -2
  196. package/build-module/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  197. package/build-module/components/header-edit-mode/more-menu/index.js +10 -7
  198. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  199. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -23
  200. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  201. package/build-module/components/keyboard-shortcuts/register.js +0 -36
  202. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  203. package/build-module/components/layout/index.js +6 -13
  204. package/build-module/components/layout/index.js.map +1 -1
  205. package/build-module/components/page-main/index.js +4 -4
  206. package/build-module/components/page-main/index.js.map +1 -1
  207. package/build-module/components/page-pages/index.js +83 -36
  208. package/build-module/components/page-pages/index.js.map +1 -1
  209. package/build-module/components/page-patterns/dataviews-pattern-actions.js +292 -0
  210. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -0
  211. package/build-module/components/page-patterns/dataviews-patterns.js +299 -0
  212. package/build-module/components/page-patterns/dataviews-patterns.js.map +1 -0
  213. package/build-module/components/page-patterns/duplicate-menu-item.js +1 -1
  214. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  215. package/build-module/components/page-patterns/grid-item.js +4 -3
  216. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  217. package/build-module/components/page-patterns/patterns-list.js +2 -1
  218. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  219. package/build-module/components/page-patterns/use-patterns.js +23 -13
  220. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  221. package/build-module/components/page-templates/index.js +314 -38
  222. package/build-module/components/page-templates/index.js.map +1 -1
  223. package/build-module/components/{page-patterns/pagination.js → pagination/index.js} +24 -12
  224. package/build-module/components/pagination/index.js.map +1 -0
  225. package/build-module/components/{page-pages/side-editor.js → post-preview/index.js} +7 -3
  226. package/build-module/components/post-preview/index.js.map +1 -0
  227. package/build-module/components/preferences-modal/enable-feature.js +3 -2
  228. package/build-module/components/preferences-modal/enable-feature.js.map +1 -1
  229. package/build-module/components/preferences-modal/enable-panel-option.js +26 -0
  230. package/build-module/components/preferences-modal/enable-panel-option.js.map +1 -0
  231. package/build-module/components/preferences-modal/index.js +57 -9
  232. package/build-module/components/preferences-modal/index.js.map +1 -1
  233. package/build-module/components/revisions/index.js +4 -8
  234. package/build-module/components/revisions/index.js.map +1 -1
  235. package/build-module/components/routes/link.js +5 -2
  236. package/build-module/components/routes/link.js.map +1 -1
  237. package/build-module/components/save-button/index.js +6 -3
  238. package/build-module/components/save-button/index.js.map +1 -1
  239. package/build-module/components/sidebar/index.js +3 -11
  240. package/build-module/components/sidebar/index.js.map +1 -1
  241. package/build-module/components/sidebar-dataviews/add-new-view.js +1 -1
  242. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  243. package/build-module/components/sidebar-dataviews/default-views.js +17 -5
  244. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  245. package/build-module/components/sidebar-dataviews/index.js +2 -2
  246. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  247. package/build-module/components/sidebar-edit-mode/default-sidebar.js +1 -5
  248. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  249. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +64 -12
  250. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  251. package/build-module/components/sidebar-edit-mode/page-panels/index.js +2 -2
  252. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  253. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -4
  254. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  255. package/build-module/components/sidebar-edit-mode/template-panel/index.js +6 -15
  256. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  257. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  258. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  259. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +5 -2
  260. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  261. package/build-module/components/sidebar-navigation-screen-page/index.js +4 -1
  262. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  263. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +61 -0
  264. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -0
  265. package/build-module/components/style-book/index.js +40 -10
  266. package/build-module/components/style-book/index.js.map +1 -1
  267. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  268. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  269. package/build-module/hooks/commands/use-edit-mode-commands.js +11 -6
  270. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  271. package/build-module/index.js +12 -7
  272. package/build-module/index.js.map +1 -1
  273. package/build-module/store/actions.js +36 -41
  274. package/build-module/store/actions.js.map +1 -1
  275. package/build-module/store/private-actions.js +6 -2
  276. package/build-module/store/private-actions.js.map +1 -1
  277. package/build-module/store/reducer.js +0 -44
  278. package/build-module/store/reducer.js.map +1 -1
  279. package/build-module/store/selectors.js +30 -38
  280. package/build-module/store/selectors.js.map +1 -1
  281. package/build-module/utils/get-is-list-page.js +1 -1
  282. package/build-module/utils/get-is-list-page.js.map +1 -1
  283. package/build-style/style-rtl.css +357 -268
  284. package/build-style/style.css +357 -268
  285. package/package.json +42 -42
  286. package/src/components/add-new-template/style.scss +2 -1
  287. package/src/components/block-editor/back-button.js +4 -2
  288. package/src/components/block-editor/resizable-editor.js +1 -1
  289. package/src/components/block-editor/style.scss +1 -2
  290. package/src/components/block-editor/use-post-link-props.js +20 -0
  291. package/src/components/block-editor/use-site-editor-settings.js +10 -41
  292. package/src/components/code-editor/style.scss +0 -4
  293. package/src/components/create-template-part-modal/index.js +83 -82
  294. package/src/components/editor/index.js +24 -31
  295. package/src/components/editor-canvas-container/index.js +8 -6
  296. package/src/components/global-styles/font-library-modal/collection-font-variant.js +7 -2
  297. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  298. package/src/components/global-styles/font-library-modal/context.js +7 -7
  299. package/src/components/global-styles/font-library-modal/font-collection.js +10 -5
  300. package/src/components/global-styles/font-library-modal/index.js +44 -24
  301. package/src/components/global-styles/font-library-modal/installed-fonts.js +3 -3
  302. package/src/components/global-styles/font-library-modal/library-font-variant.js +7 -2
  303. package/src/components/global-styles/font-library-modal/local-fonts.js +53 -26
  304. package/src/components/global-styles/font-library-modal/resolvers.js +5 -5
  305. package/src/components/global-styles/font-library-modal/style.scss +5 -2
  306. package/src/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +9 -3
  307. package/src/components/global-styles/font-library-modal/utils/index.js +21 -23
  308. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +58 -0
  309. package/src/components/global-styles/preview.js +55 -3
  310. package/src/components/global-styles/screen-color-palette.js +16 -26
  311. package/src/components/global-styles/screen-revisions/index.js +91 -92
  312. package/src/components/global-styles/screen-revisions/revisions-buttons.js +37 -38
  313. package/src/components/global-styles/screen-revisions/style.scss +77 -20
  314. package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +67 -0
  315. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +73 -46
  316. package/src/components/global-styles/ui.js +13 -74
  317. package/src/components/header-edit-mode/document-tools/index.js +33 -165
  318. package/src/components/header-edit-mode/index.js +6 -17
  319. package/src/components/header-edit-mode/mode-switcher/index.js +0 -4
  320. package/src/components/header-edit-mode/more-menu/index.js +9 -7
  321. package/src/components/header-edit-mode/style.scss +0 -47
  322. package/src/components/keyboard-shortcuts/edit-mode.js +1 -26
  323. package/src/components/keyboard-shortcuts/register.js +0 -43
  324. package/src/components/layout/index.js +8 -27
  325. package/src/components/layout/style.scss +10 -3
  326. package/src/components/list/style.scss +0 -5
  327. package/src/components/page/style.scss +1 -1
  328. package/src/components/page-main/index.js +8 -8
  329. package/src/components/page-pages/index.js +112 -41
  330. package/src/components/page-pages/style.scss +3 -2
  331. package/src/components/page-patterns/dataviews-pattern-actions.js +329 -0
  332. package/src/components/page-patterns/dataviews-patterns.js +380 -0
  333. package/src/components/page-patterns/duplicate-menu-item.js +1 -1
  334. package/src/components/page-patterns/grid-item.js +3 -2
  335. package/src/components/page-patterns/patterns-list.js +2 -1
  336. package/src/components/page-patterns/style.scss +89 -26
  337. package/src/components/page-patterns/use-patterns.js +24 -15
  338. package/src/components/page-templates/index.js +399 -64
  339. package/src/components/{page-patterns/pagination.js → pagination/index.js} +21 -10
  340. package/src/components/pagination/style.scss +5 -0
  341. package/src/components/post-preview/index.js +16 -0
  342. package/src/components/preferences-modal/enable-feature.js +9 -5
  343. package/src/components/preferences-modal/enable-panel-option.js +23 -0
  344. package/src/components/preferences-modal/index.js +107 -22
  345. package/src/components/revisions/index.js +8 -15
  346. package/src/components/routes/link.js +11 -3
  347. package/src/components/save-button/index.js +16 -3
  348. package/src/components/sidebar/index.js +6 -13
  349. package/src/components/sidebar-dataviews/add-new-view.js +1 -1
  350. package/src/components/sidebar-dataviews/default-views.js +23 -6
  351. package/src/components/sidebar-dataviews/index.js +2 -2
  352. package/src/components/sidebar-edit-mode/default-sidebar.js +0 -12
  353. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +85 -14
  354. package/src/components/sidebar-edit-mode/page-panels/index.js +15 -1
  355. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -12
  356. package/src/components/sidebar-edit-mode/style.scss +0 -10
  357. package/src/components/sidebar-edit-mode/template-panel/index.js +44 -40
  358. package/src/components/sidebar-edit-mode/template-panel/style.scss +0 -4
  359. package/src/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  360. package/src/components/sidebar-navigation-screen-global-styles/index.js +3 -2
  361. package/src/components/sidebar-navigation-screen-page/index.js +2 -1
  362. package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +77 -0
  363. package/src/components/site-hub/style.scss +5 -2
  364. package/src/components/style-book/index.js +65 -21
  365. package/src/components/style-book/style.scss +3 -3
  366. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +4 -1
  367. package/src/hooks/commands/use-edit-mode-commands.js +8 -12
  368. package/src/index.js +11 -5
  369. package/src/store/actions.js +35 -45
  370. package/src/store/private-actions.js +7 -3
  371. package/src/store/reducer.js +0 -44
  372. package/src/store/selectors.js +32 -38
  373. package/src/store/test/actions.js +11 -39
  374. package/src/store/test/reducer.js +1 -82
  375. package/src/store/test/selectors.js +0 -24
  376. package/src/style.scss +1 -1
  377. package/src/utils/get-is-list-page.js +2 -3
  378. package/build/components/global-styles/font-library-modal/tab-layout.js.map +0 -1
  379. package/build/components/global-styles/screen-revisions/get-revision-changes.js +0 -146
  380. package/build/components/global-styles/screen-revisions/get-revision-changes.js.map +0 -1
  381. package/build/components/header-edit-mode/undo-redo/redo.js +0 -41
  382. package/build/components/header-edit-mode/undo-redo/redo.js.map +0 -1
  383. package/build/components/header-edit-mode/undo-redo/undo.js +0 -40
  384. package/build/components/header-edit-mode/undo-redo/undo.js.map +0 -1
  385. package/build/components/page-pages/side-editor.js.map +0 -1
  386. package/build/components/page-patterns/pagination.js.map +0 -1
  387. package/build/components/page-templates/dataviews-templates.js +0 -317
  388. package/build/components/page-templates/dataviews-templates.js.map +0 -1
  389. package/build/components/secondary-sidebar/inserter-sidebar.js +0 -60
  390. package/build/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  391. package/build/components/secondary-sidebar/list-view-sidebar.js +0 -109
  392. package/build/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  393. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -35
  394. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +0 -1
  395. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +0 -73
  396. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +0 -1
  397. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -219
  398. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +0 -1
  399. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +0 -1
  400. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js +0 -139
  401. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js.map +0 -1
  402. package/build-module/components/header-edit-mode/undo-redo/redo.js +0 -33
  403. package/build-module/components/header-edit-mode/undo-redo/redo.js.map +0 -1
  404. package/build-module/components/header-edit-mode/undo-redo/undo.js +0 -32
  405. package/build-module/components/header-edit-mode/undo-redo/undo.js.map +0 -1
  406. package/build-module/components/page-pages/side-editor.js.map +0 -1
  407. package/build-module/components/page-patterns/pagination.js.map +0 -1
  408. package/build-module/components/page-templates/dataviews-templates.js +0 -309
  409. package/build-module/components/page-templates/dataviews-templates.js.map +0 -1
  410. package/build-module/components/secondary-sidebar/inserter-sidebar.js +0 -53
  411. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  412. package/build-module/components/secondary-sidebar/list-view-sidebar.js +0 -102
  413. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  414. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -27
  415. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +0 -1
  416. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +0 -65
  417. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +0 -1
  418. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -209
  419. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +0 -1
  420. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +0 -62
  421. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +0 -28
  422. package/src/components/global-styles/screen-revisions/get-revision-changes.js +0 -171
  423. package/src/components/global-styles/screen-revisions/test/get-revision-changes.js +0 -191
  424. package/src/components/header-edit-mode/undo-redo/redo.js +0 -38
  425. package/src/components/header-edit-mode/undo-redo/undo.js +0 -34
  426. package/src/components/page-pages/side-editor.js +0 -14
  427. package/src/components/page-templates/dataviews-templates.js +0 -360
  428. package/src/components/secondary-sidebar/inserter-sidebar.js +0 -66
  429. package/src/components/secondary-sidebar/list-view-sidebar.js +0 -123
  430. package/src/components/secondary-sidebar/style.scss +0 -65
  431. package/src/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -26
  432. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +0 -82
  433. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -279
@@ -7,39 +7,32 @@ import classnames from 'classnames';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { __, _n, sprintf } from '@wordpress/i18n';
10
+ import { __, sprintf } from '@wordpress/i18n';
11
11
  import { Button } from '@wordpress/components';
12
12
  import { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';
13
13
  import { store as coreStore } from '@wordpress/core-data';
14
14
  import { useSelect } from '@wordpress/data';
15
- import { useMemo } from '@wordpress/element';
16
- import { getBlockTypes } from '@wordpress/blocks';
15
+ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
17
16
 
18
17
  /**
19
18
  * Internal dependencies
20
19
  */
21
- import getRevisionChanges from './get-revision-changes';
20
+ import { unlock } from '../../../lock-unlock';
22
21
  const DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;
23
- const MAX_CHANGES = 7;
22
+ const {
23
+ getGlobalStylesChanges
24
+ } = unlock(blockEditorPrivateApis);
24
25
  function ChangesSummary({
25
26
  revision,
26
- previousRevision,
27
- blockNames
27
+ previousRevision
28
28
  }) {
29
- const changes = getRevisionChanges(revision, previousRevision, blockNames);
29
+ const changes = getGlobalStylesChanges(revision, previousRevision, {
30
+ maxResults: 7
31
+ });
30
32
  const changesLength = changes.length;
31
33
  if (!changesLength) {
32
34
  return null;
33
35
  }
34
-
35
- // Truncate to `n` results if necessary.
36
- if (changesLength > MAX_CHANGES) {
37
- const deleteCount = changesLength - MAX_CHANGES;
38
- const andMoreText = sprintf(
39
- // translators: %d: number of global styles changes that are not displayed in the UI.
40
- _n('…and %d more change.', '…and %d more changes.', deleteCount), deleteCount);
41
- changes.splice(MAX_CHANGES, deleteCount, andMoreText);
42
- }
43
36
  return createElement("span", {
44
37
  "data-testid": "global-styles-revision-changes",
45
38
  className: "edit-site-global-styles-screen-revisions__changes"
@@ -85,7 +78,8 @@ function RevisionsButtons({
85
78
  userRevisions,
86
79
  selectedRevisionId,
87
80
  onChange,
88
- canApplyRevision
81
+ canApplyRevision,
82
+ onApplyRevision
89
83
  }) {
90
84
  const {
91
85
  currentThemeName,
@@ -101,23 +95,13 @@ function RevisionsButtons({
101
95
  currentUser: getCurrentUser()
102
96
  };
103
97
  }, []);
104
- const blockNames = useMemo(() => {
105
- const blockTypes = getBlockTypes();
106
- return blockTypes.reduce((accumulator, {
107
- name,
108
- title
109
- }) => {
110
- accumulator[name] = title;
111
- return accumulator;
112
- }, {});
113
- }, []);
114
98
  const dateNowInMs = getDate().getTime();
115
99
  const {
116
100
  datetimeAbbreviated
117
101
  } = getSettings().formats;
118
102
  return createElement("ol", {
119
103
  className: "edit-site-global-styles-screen-revisions__revisions-list",
120
- "aria-label": __('Global styles revisions'),
104
+ "aria-label": __('Global styles revisions list'),
121
105
  role: "group"
122
106
  }, userRevisions.map((revision, index) => {
123
107
  const {
@@ -143,7 +127,8 @@ function RevisionsButtons({
143
127
  'is-active': areStylesEqual,
144
128
  'is-reset': isReset
145
129
  }),
146
- key: id
130
+ key: id,
131
+ "aria-current": isSelected
147
132
  }, createElement(Button, {
148
133
  className: "edit-site-global-styles-screen-revisions__revision-button",
149
134
  disabled: isSelected,
@@ -162,16 +147,22 @@ function RevisionsButtons({
162
147
  }, __('(Unsaved)')) : createElement("time", {
163
148
  className: "edit-site-global-styles-screen-revisions__date",
164
149
  dateTime: modified
165
- }, displayDate), isSelected && createElement(ChangesSummary, {
166
- blockNames: blockNames,
167
- revision: revision,
168
- previousRevision: index < userRevisions.length ? userRevisions[index + 1] : {}
169
- }), createElement("span", {
150
+ }, displayDate), createElement("span", {
170
151
  className: "edit-site-global-styles-screen-revisions__meta"
171
152
  }, createElement("img", {
172
153
  alt: authorDisplayName,
173
154
  src: authorAvatar
174
- }), authorDisplayName))));
155
+ }), authorDisplayName), isSelected && createElement(ChangesSummary, {
156
+ revision: revision,
157
+ previousRevision: index < userRevisions.length ? userRevisions[index + 1] : {}
158
+ }))), isSelected && (areStylesEqual ? createElement("p", {
159
+ className: "edit-site-global-styles-screen-revisions__applied-text"
160
+ }, __('These styles are already applied to your site.')) : createElement(Button, {
161
+ disabled: areStylesEqual,
162
+ variant: "primary",
163
+ className: "edit-site-global-styles-screen-revisions__apply-button",
164
+ onClick: onApplyRevision
165
+ }, isReset ? __('Reset to defaults') : __('Apply'))));
175
166
  }));
176
167
  }
177
168
  export default RevisionsButtons;
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","_n","sprintf","Button","dateI18n","getDate","humanTimeDiff","getSettings","store","coreStore","useSelect","useMemo","getBlockTypes","getRevisionChanges","DAY_IN_MILLISECONDS","MAX_CHANGES","ChangesSummary","revision","previousRevision","blockNames","changes","changesLength","length","deleteCount","andMoreText","splice","createElement","className","join","getRevisionLabel","id","authorDisplayName","formattedModifiedDate","areStylesEqual","RevisionsButtons","userRevisions","selectedRevisionId","onChange","canApplyRevision","currentThemeName","currentUser","select","getCurrentTheme","getCurrentUser","currentTheme","name","rendered","stylesheet","blockTypes","reduce","accumulator","title","dateNowInMs","getTime","datetimeAbbreviated","formats","role","map","index","author","modified","isUnsaved","revisionAuthor","authorAvatar","avatar_urls","isFirstItem","isSelected","isReset","modifiedDate","displayDate","revisionLabel","key","disabled","onClick","dateTime","alt","src"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/revisions-buttons.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { getBlockTypes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport getRevisionChanges from './get-revision-changes';\n\nconst DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;\nconst MAX_CHANGES = 7;\n\nfunction ChangesSummary( { revision, previousRevision, blockNames } ) {\n\tconst changes = getRevisionChanges(\n\t\trevision,\n\t\tpreviousRevision,\n\t\tblockNames\n\t);\n\tconst changesLength = changes.length;\n\n\tif ( ! changesLength ) {\n\t\treturn null;\n\t}\n\n\t// Truncate to `n` results if necessary.\n\tif ( changesLength > MAX_CHANGES ) {\n\t\tconst deleteCount = changesLength - MAX_CHANGES;\n\t\tconst andMoreText = sprintf(\n\t\t\t// translators: %d: number of global styles changes that are not displayed in the UI.\n\t\t\t_n( '…and %d more change.', '…and %d more changes.', deleteCount ),\n\t\t\tdeleteCount\n\t\t);\n\t\tchanges.splice( MAX_CHANGES, deleteCount, andMoreText );\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tdata-testid=\"global-styles-revision-changes\"\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__changes\"\n\t\t>\n\t\t\t{ changes.join( ', ' ) }\n\t\t</span>\n\t);\n}\n\n/**\n * Returns a button label for the revision.\n *\n * @param {string|number} id A revision object.\n * @param {string} authorDisplayName Author name.\n * @param {string} formattedModifiedDate Revision modified date formatted.\n * @param {boolean} areStylesEqual Whether the revision matches the current editor styles.\n * @return {string} Translated label.\n */\nfunction getRevisionLabel(\n\tid,\n\tauthorDisplayName,\n\tformattedModifiedDate,\n\tareStylesEqual\n) {\n\tif ( 'parent' === id ) {\n\t\treturn __( 'Reset the styles to the theme defaults' );\n\t}\n\n\tif ( 'unsaved' === id ) {\n\t\treturn sprintf(\n\t\t\t/* translators: %s: author display name */\n\t\t\t__( 'Unsaved changes by %s' ),\n\t\t\tauthorDisplayName\n\t\t);\n\t}\n\n\treturn areStylesEqual\n\t\t? sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__(\n\t\t\t\t\t'Changes saved by %1$s on %2$s. This revision matches current editor styles.'\n\t\t\t\t),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__( 'Changes saved by %1$s on %2$s' ),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t );\n}\n\n/**\n * Returns a rendered list of revisions buttons.\n *\n * @typedef {Object} props\n * @property {Array<Object>} userRevisions A collection of user revisions.\n * @property {number} selectedRevisionId The id of the currently-selected revision.\n * @property {Function} onChange Callback fired when a revision is selected.\n *\n * @param {props} Component props.\n * @return {JSX.Element} The modal component.\n */\nfunction RevisionsButtons( {\n\tuserRevisions,\n\tselectedRevisionId,\n\tonChange,\n\tcanApplyRevision,\n} ) {\n\tconst { currentThemeName, currentUser } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getCurrentUser } = select( coreStore );\n\t\tconst currentTheme = getCurrentTheme();\n\t\treturn {\n\t\t\tcurrentThemeName:\n\t\t\t\tcurrentTheme?.name?.rendered || currentTheme?.stylesheet,\n\t\t\tcurrentUser: getCurrentUser(),\n\t\t};\n\t}, [] );\n\tconst blockNames = useMemo( () => {\n\t\tconst blockTypes = getBlockTypes();\n\t\treturn blockTypes.reduce( ( accumulator, { name, title } ) => {\n\t\t\taccumulator[ name ] = title;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [] );\n\tconst dateNowInMs = getDate().getTime();\n\tconst { datetimeAbbreviated } = getSettings().formats;\n\n\treturn (\n\t\t<ol\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revisions-list\"\n\t\t\taria-label={ __( 'Global styles revisions' ) }\n\t\t\trole=\"group\"\n\t\t>\n\t\t\t{ userRevisions.map( ( revision, index ) => {\n\t\t\t\tconst { id, author, modified } = revision;\n\t\t\t\tconst isUnsaved = 'unsaved' === id;\n\t\t\t\t// Unsaved changes are created by the current user.\n\t\t\t\tconst revisionAuthor = isUnsaved ? currentUser : author;\n\t\t\t\tconst authorDisplayName = revisionAuthor?.name || __( 'User' );\n\t\t\t\tconst authorAvatar = revisionAuthor?.avatar_urls?.[ '48' ];\n\t\t\t\tconst isFirstItem = index === 0;\n\t\t\t\tconst isSelected = selectedRevisionId\n\t\t\t\t\t? selectedRevisionId === id\n\t\t\t\t\t: isFirstItem;\n\t\t\t\tconst areStylesEqual = ! canApplyRevision && isSelected;\n\t\t\t\tconst isReset = 'parent' === id;\n\t\t\t\tconst modifiedDate = getDate( modified );\n\t\t\t\tconst displayDate =\n\t\t\t\t\tmodified &&\n\t\t\t\t\tdateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS\n\t\t\t\t\t\t? dateI18n( datetimeAbbreviated, modifiedDate )\n\t\t\t\t\t\t: humanTimeDiff( modified );\n\t\t\t\tconst revisionLabel = getRevisionLabel(\n\t\t\t\t\tid,\n\t\t\t\t\tauthorDisplayName,\n\t\t\t\t\tdateI18n( datetimeAbbreviated, modifiedDate ),\n\t\t\t\t\tareStylesEqual\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-global-styles-screen-revisions__revision-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t\t\t'is-active': areStylesEqual,\n\t\t\t\t\t\t\t\t'is-reset': isReset,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revision-button\"\n\t\t\t\t\t\t\tdisabled={ isSelected }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonChange( revision );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ revisionLabel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isReset ? (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Default styles' ) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t{ currentThemeName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ isUnsaved ? (\n\t\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__date\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( '(Unsaved)' ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__date\"\n\t\t\t\t\t\t\t\t\t\t\tdateTime={ modified }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ displayDate }\n\t\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t\t\t<ChangesSummary\n\t\t\t\t\t\t\t\t\t\t\tblockNames={ blockNames }\n\t\t\t\t\t\t\t\t\t\t\trevision={ revision }\n\t\t\t\t\t\t\t\t\t\t\tpreviousRevision={\n\t\t\t\t\t\t\t\t\t\t\t\tindex < userRevisions.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t? userRevisions[ index + 1 ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\talt={ authorDisplayName }\n\t\t\t\t\t\t\t\t\t\t\tsrc={ authorAvatar }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ authorDisplayName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ol>\n\t);\n}\n\nexport default RevisionsButtons;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,EAAE,EAAEC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AACjD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,QAAQ,EAAEC,OAAO,EAAEC,aAAa,EAAEC,WAAW,QAAQ,iBAAiB;AAC/E,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,aAAa,QAAQ,mBAAmB;;AAEjD;AACA;AACA;AACA,OAAOC,kBAAkB,MAAM,wBAAwB;AAEvD,MAAMC,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE;AAC/C,MAAMC,WAAW,GAAG,CAAC;AAErB,SAASC,cAAcA,CAAE;EAAEC,QAAQ;EAAEC,gBAAgB;EAAEC;AAAW,CAAC,EAAG;EACrE,MAAMC,OAAO,GAAGP,kBAAkB,CACjCI,QAAQ,EACRC,gBAAgB,EAChBC,UACD,CAAC;EACD,MAAME,aAAa,GAAGD,OAAO,CAACE,MAAM;EAEpC,IAAK,CAAED,aAAa,EAAG;IACtB,OAAO,IAAI;EACZ;;EAEA;EACA,IAAKA,aAAa,GAAGN,WAAW,EAAG;IAClC,MAAMQ,WAAW,GAAGF,aAAa,GAAGN,WAAW;IAC/C,MAAMS,WAAW,GAAGtB,OAAO;IAC1B;IACAD,EAAE,CAAE,sBAAsB,EAAE,uBAAuB,EAAEsB,WAAY,CAAC,EAClEA,WACD,CAAC;IACDH,OAAO,CAACK,MAAM,CAAEV,WAAW,EAAEQ,WAAW,EAAEC,WAAY,CAAC;EACxD;EAEA,OACCE,aAAA;IACC,eAAY,gCAAgC;IAC5CC,SAAS,EAAC;EAAmD,GAE3DP,OAAO,CAACQ,IAAI,CAAE,IAAK,CAChB,CAAC;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CACxBC,EAAE,EACFC,iBAAiB,EACjBC,qBAAqB,EACrBC,cAAc,EACb;EACD,IAAK,QAAQ,KAAKH,EAAE,EAAG;IACtB,OAAO9B,EAAE,CAAE,wCAAyC,CAAC;EACtD;EAEA,IAAK,SAAS,KAAK8B,EAAE,EAAG;IACvB,OAAO5B,OAAO,EACb;IACAF,EAAE,CAAE,uBAAwB,CAAC,EAC7B+B,iBACD,CAAC;EACF;EAEA,OAAOE,cAAc,GAClB/B,OAAO;EACP;EACAF,EAAE,CACD,6EACD,CAAC,EACD+B,iBAAiB,EACjBC,qBACA,CAAC,GACD9B,OAAO;EACP;EACAF,EAAE,CAAE,+BAAgC,CAAC,EACrC+B,iBAAiB,EACjBC,qBACA,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,gBAAgBA,CAAE;EAC1BC,aAAa;EACbC,kBAAkB;EAClBC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,gBAAgB;IAAEC;EAAY,CAAC,GAAG9B,SAAS,CAAI+B,MAAM,IAAM;IAClE,MAAM;MAAEC,eAAe;MAAEC;IAAe,CAAC,GAAGF,MAAM,CAAEhC,SAAU,CAAC;IAC/D,MAAMmC,YAAY,GAAGF,eAAe,CAAC,CAAC;IACtC,OAAO;MACNH,gBAAgB,EACfK,YAAY,EAAEC,IAAI,EAAEC,QAAQ,IAAIF,YAAY,EAAEG,UAAU;MACzDP,WAAW,EAAEG,cAAc,CAAC;IAC7B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMxB,UAAU,GAAGR,OAAO,CAAE,MAAM;IACjC,MAAMqC,UAAU,GAAGpC,aAAa,CAAC,CAAC;IAClC,OAAOoC,UAAU,CAACC,MAAM,CAAE,CAAEC,WAAW,EAAE;MAAEL,IAAI;MAAEM;IAAM,CAAC,KAAM;MAC7DD,WAAW,CAAEL,IAAI,CAAE,GAAGM,KAAK;MAC3B,OAAOD,WAAW;IACnB,CAAC,EAAE,CAAC,CAAE,CAAC;EACR,CAAC,EAAE,EAAG,CAAC;EACP,MAAME,WAAW,GAAG/C,OAAO,CAAC,CAAC,CAACgD,OAAO,CAAC,CAAC;EACvC,MAAM;IAAEC;EAAoB,CAAC,GAAG/C,WAAW,CAAC,CAAC,CAACgD,OAAO;EAErD,OACC7B,aAAA;IACCC,SAAS,EAAC,0DAA0D;IACpE,cAAa3B,EAAE,CAAE,yBAA0B,CAAG;IAC9CwD,IAAI,EAAC;EAAO,GAEVrB,aAAa,CAACsB,GAAG,CAAE,CAAExC,QAAQ,EAAEyC,KAAK,KAAM;IAC3C,MAAM;MAAE5B,EAAE;MAAE6B,MAAM;MAAEC;IAAS,CAAC,GAAG3C,QAAQ;IACzC,MAAM4C,SAAS,GAAG,SAAS,KAAK/B,EAAE;IAClC;IACA,MAAMgC,cAAc,GAAGD,SAAS,GAAGrB,WAAW,GAAGmB,MAAM;IACvD,MAAM5B,iBAAiB,GAAG+B,cAAc,EAAEjB,IAAI,IAAI7C,EAAE,CAAE,MAAO,CAAC;IAC9D,MAAM+D,YAAY,GAAGD,cAAc,EAAEE,WAAW,GAAI,IAAI,CAAE;IAC1D,MAAMC,WAAW,GAAGP,KAAK,KAAK,CAAC;IAC/B,MAAMQ,UAAU,GAAG9B,kBAAkB,GAClCA,kBAAkB,KAAKN,EAAE,GACzBmC,WAAW;IACd,MAAMhC,cAAc,GAAG,CAAEK,gBAAgB,IAAI4B,UAAU;IACvD,MAAMC,OAAO,GAAG,QAAQ,KAAKrC,EAAE;IAC/B,MAAMsC,YAAY,GAAG/D,OAAO,CAAEuD,QAAS,CAAC;IACxC,MAAMS,WAAW,GAChBT,QAAQ,IACRR,WAAW,GAAGgB,YAAY,CAACf,OAAO,CAAC,CAAC,GAAGvC,mBAAmB,GACvDV,QAAQ,CAAEkD,mBAAmB,EAAEc,YAAa,CAAC,GAC7C9D,aAAa,CAAEsD,QAAS,CAAC;IAC7B,MAAMU,aAAa,GAAGzC,gBAAgB,CACrCC,EAAE,EACFC,iBAAiB,EACjB3B,QAAQ,CAAEkD,mBAAmB,EAAEc,YAAa,CAAC,EAC7CnC,cACD,CAAC;IAED,OACCP,aAAA;MACCC,SAAS,EAAG5B,UAAU,CACrB,yDAAyD,EACzD;QACC,aAAa,EAAEmE,UAAU;QACzB,WAAW,EAAEjC,cAAc;QAC3B,UAAU,EAAEkC;MACb,CACD,CAAG;MACHI,GAAG,EAAGzC;IAAI,GAEVJ,aAAA,CAACvB,MAAM;MACNwB,SAAS,EAAC,2DAA2D;MACrE6C,QAAQ,EAAGN,UAAY;MACvBO,OAAO,EAAGA,CAAA,KAAM;QACfpC,QAAQ,CAAEpB,QAAS,CAAC;MACrB,CAAG;MACH,cAAaqD;IAAe,GAE1BH,OAAO,GACRzC,aAAA;MAAMC,SAAS,EAAC;IAAuD,GACpE3B,EAAE,CAAE,gBAAiB,CAAC,EACxB0B,aAAA;MAAMC,SAAS,EAAC;IAAgD,GAC7DY,gBACG,CACD,CAAC,GAEPb,aAAA;MAAMC,SAAS,EAAC;IAAuD,GACpEkC,SAAS,GACVnC,aAAA;MAAMC,SAAS,EAAC;IAAgD,GAC7D3B,EAAE,CAAE,WAAY,CACb,CAAC,GAEP0B,aAAA;MACCC,SAAS,EAAC,gDAAgD;MAC1D+C,QAAQ,EAAGd;IAAU,GAEnBS,WACG,CACN,EACCH,UAAU,IACXxC,aAAA,CAACV,cAAc;MACdG,UAAU,EAAGA,UAAY;MACzBF,QAAQ,EAAGA,QAAU;MACrBC,gBAAgB,EACfwC,KAAK,GAAGvB,aAAa,CAACb,MAAM,GACzBa,aAAa,CAAEuB,KAAK,GAAG,CAAC,CAAE,GAC1B,CAAC;IACJ,CACD,CACD,EACDhC,aAAA;MAAMC,SAAS,EAAC;IAAgD,GAC/DD,aAAA;MACCiD,GAAG,EAAG5C,iBAAmB;MACzB6C,GAAG,EAAGb;IAAc,CACpB,CAAC,EACAhC,iBACG,CACD,CAEA,CACL,CAAC;EAEP,CAAE,CACC,CAAC;AAEP;AAEA,eAAeG,gBAAgB"}
1
+ {"version":3,"names":["classnames","__","sprintf","Button","dateI18n","getDate","humanTimeDiff","getSettings","store","coreStore","useSelect","privateApis","blockEditorPrivateApis","unlock","DAY_IN_MILLISECONDS","getGlobalStylesChanges","ChangesSummary","revision","previousRevision","changes","maxResults","changesLength","length","createElement","className","join","getRevisionLabel","id","authorDisplayName","formattedModifiedDate","areStylesEqual","RevisionsButtons","userRevisions","selectedRevisionId","onChange","canApplyRevision","onApplyRevision","currentThemeName","currentUser","select","getCurrentTheme","getCurrentUser","currentTheme","name","rendered","stylesheet","dateNowInMs","getTime","datetimeAbbreviated","formats","role","map","index","author","modified","isUnsaved","revisionAuthor","authorAvatar","avatar_urls","isFirstItem","isSelected","isReset","modifiedDate","displayDate","revisionLabel","key","disabled","onClick","dateTime","alt","src","variant"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/revisions-buttons.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;\nconst { getGlobalStylesChanges } = unlock( blockEditorPrivateApis );\n\nfunction ChangesSummary( { revision, previousRevision } ) {\n\tconst changes = getGlobalStylesChanges( revision, previousRevision, {\n\t\tmaxResults: 7,\n\t} );\n\tconst changesLength = changes.length;\n\n\tif ( ! changesLength ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tdata-testid=\"global-styles-revision-changes\"\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__changes\"\n\t\t>\n\t\t\t{ changes.join( ', ' ) }\n\t\t</span>\n\t);\n}\n\n/**\n * Returns a button label for the revision.\n *\n * @param {string|number} id A revision object.\n * @param {string} authorDisplayName Author name.\n * @param {string} formattedModifiedDate Revision modified date formatted.\n * @param {boolean} areStylesEqual Whether the revision matches the current editor styles.\n * @return {string} Translated label.\n */\nfunction getRevisionLabel(\n\tid,\n\tauthorDisplayName,\n\tformattedModifiedDate,\n\tareStylesEqual\n) {\n\tif ( 'parent' === id ) {\n\t\treturn __( 'Reset the styles to the theme defaults' );\n\t}\n\n\tif ( 'unsaved' === id ) {\n\t\treturn sprintf(\n\t\t\t/* translators: %s: author display name */\n\t\t\t__( 'Unsaved changes by %s' ),\n\t\t\tauthorDisplayName\n\t\t);\n\t}\n\n\treturn areStylesEqual\n\t\t? sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__(\n\t\t\t\t\t'Changes saved by %1$s on %2$s. This revision matches current editor styles.'\n\t\t\t\t),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__( 'Changes saved by %1$s on %2$s' ),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t );\n}\n\n/**\n * Returns a rendered list of revisions buttons.\n *\n * @typedef {Object} props\n * @property {Array<Object>} userRevisions A collection of user revisions.\n * @property {number} selectedRevisionId The id of the currently-selected revision.\n * @property {Function} onChange Callback fired when a revision is selected.\n *\n * @param {props} Component props.\n * @return {JSX.Element} The modal component.\n */\nfunction RevisionsButtons( {\n\tuserRevisions,\n\tselectedRevisionId,\n\tonChange,\n\tcanApplyRevision,\n\tonApplyRevision,\n} ) {\n\tconst { currentThemeName, currentUser } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getCurrentUser } = select( coreStore );\n\t\tconst currentTheme = getCurrentTheme();\n\t\treturn {\n\t\t\tcurrentThemeName:\n\t\t\t\tcurrentTheme?.name?.rendered || currentTheme?.stylesheet,\n\t\t\tcurrentUser: getCurrentUser(),\n\t\t};\n\t}, [] );\n\tconst dateNowInMs = getDate().getTime();\n\tconst { datetimeAbbreviated } = getSettings().formats;\n\n\treturn (\n\t\t<ol\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revisions-list\"\n\t\t\taria-label={ __( 'Global styles revisions list' ) }\n\t\t\trole=\"group\"\n\t\t>\n\t\t\t{ userRevisions.map( ( revision, index ) => {\n\t\t\t\tconst { id, author, modified } = revision;\n\t\t\t\tconst isUnsaved = 'unsaved' === id;\n\t\t\t\t// Unsaved changes are created by the current user.\n\t\t\t\tconst revisionAuthor = isUnsaved ? currentUser : author;\n\t\t\t\tconst authorDisplayName = revisionAuthor?.name || __( 'User' );\n\t\t\t\tconst authorAvatar = revisionAuthor?.avatar_urls?.[ '48' ];\n\t\t\t\tconst isFirstItem = index === 0;\n\t\t\t\tconst isSelected = selectedRevisionId\n\t\t\t\t\t? selectedRevisionId === id\n\t\t\t\t\t: isFirstItem;\n\t\t\t\tconst areStylesEqual = ! canApplyRevision && isSelected;\n\t\t\t\tconst isReset = 'parent' === id;\n\t\t\t\tconst modifiedDate = getDate( modified );\n\t\t\t\tconst displayDate =\n\t\t\t\t\tmodified &&\n\t\t\t\t\tdateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS\n\t\t\t\t\t\t? dateI18n( datetimeAbbreviated, modifiedDate )\n\t\t\t\t\t\t: humanTimeDiff( modified );\n\t\t\t\tconst revisionLabel = getRevisionLabel(\n\t\t\t\t\tid,\n\t\t\t\t\tauthorDisplayName,\n\t\t\t\t\tdateI18n( datetimeAbbreviated, modifiedDate ),\n\t\t\t\t\tareStylesEqual\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-global-styles-screen-revisions__revision-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t\t\t'is-active': areStylesEqual,\n\t\t\t\t\t\t\t\t'is-reset': isReset,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\taria-current={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revision-button\"\n\t\t\t\t\t\t\tdisabled={ isSelected }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonChange( revision );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ revisionLabel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isReset ? (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Default styles' ) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t{ currentThemeName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ isUnsaved ? (\n\t\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__date\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( '(Unsaved)' ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__date\"\n\t\t\t\t\t\t\t\t\t\t\tdateTime={ modified }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ displayDate }\n\t\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\talt={ authorDisplayName }\n\t\t\t\t\t\t\t\t\t\t\tsrc={ authorAvatar }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ authorDisplayName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t\t\t<ChangesSummary\n\t\t\t\t\t\t\t\t\t\t\trevision={ revision }\n\t\t\t\t\t\t\t\t\t\t\tpreviousRevision={\n\t\t\t\t\t\t\t\t\t\t\t\tindex < userRevisions.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t? userRevisions[ index + 1 ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t( areStylesEqual ? (\n\t\t\t\t\t\t\t\t<p className=\"edit-site-global-styles-screen-revisions__applied-text\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'These styles are already applied to your site.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tdisabled={ areStylesEqual }\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__apply-button\"\n\t\t\t\t\t\t\t\t\tonClick={ onApplyRevision }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isReset\n\t\t\t\t\t\t\t\t\t\t? __( 'Reset to defaults' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Apply' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ol>\n\t);\n}\n\nexport default RevisionsButtons;\n"],"mappings":"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"}
@@ -16,72 +16,86 @@ const SITE_EDITOR_AUTHORS_QUERY = {
16
16
  context: 'view',
17
17
  capabilities: ['edit_theme_options']
18
18
  };
19
+ const DEFAULT_QUERY = {
20
+ per_page: 100,
21
+ page: 1
22
+ };
19
23
  const EMPTY_ARRAY = [];
20
24
  const {
21
25
  GlobalStylesContext
22
26
  } = unlock(blockEditorPrivateApis);
23
- export default function useGlobalStylesRevisions() {
27
+ export default function useGlobalStylesRevisions({
28
+ query
29
+ } = {}) {
24
30
  const {
25
31
  user: userConfig
26
32
  } = useContext(GlobalStylesContext);
33
+ const _query = {
34
+ ...DEFAULT_QUERY,
35
+ ...query
36
+ };
27
37
  const {
28
38
  authors,
29
39
  currentUser,
30
40
  isDirty,
31
41
  revisions,
32
- isLoadingGlobalStylesRevisions
42
+ isLoadingGlobalStylesRevisions,
43
+ revisionsCount
33
44
  } = useSelect(select => {
45
+ var _globalStyles$_links$;
34
46
  const {
35
47
  __experimentalGetDirtyEntityRecords,
36
48
  getCurrentUser,
37
49
  getUsers,
38
50
  getRevisions,
39
51
  __experimentalGetCurrentGlobalStylesId,
52
+ getEntityRecord,
40
53
  isResolving
41
54
  } = select(coreStore);
42
55
  const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
43
56
  const _currentUser = getCurrentUser();
44
57
  const _isDirty = dirtyEntityRecords.length > 0;
45
- const query = {
46
- per_page: 100
47
- };
48
58
  const globalStylesId = __experimentalGetCurrentGlobalStylesId();
49
- const globalStylesRevisions = getRevisions('root', 'globalStyles', globalStylesId, query) || EMPTY_ARRAY;
59
+ const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
60
+ const _revisionsCount = (_globalStyles$_links$ = globalStyles?._links?.['version-history']?.[0]?.count) !== null && _globalStyles$_links$ !== void 0 ? _globalStyles$_links$ : 0;
61
+ const globalStylesRevisions = getRevisions('root', 'globalStyles', globalStylesId, _query) || EMPTY_ARRAY;
50
62
  const _authors = getUsers(SITE_EDITOR_AUTHORS_QUERY) || EMPTY_ARRAY;
51
- const _isResolving = isResolving('getRevisions', ['root', 'globalStyles', globalStylesId, query]);
63
+ const _isResolving = isResolving('getRevisions', ['root', 'globalStyles', globalStylesId, _query]);
52
64
  return {
53
65
  authors: _authors,
54
66
  currentUser: _currentUser,
55
67
  isDirty: _isDirty,
56
68
  revisions: globalStylesRevisions,
57
- isLoadingGlobalStylesRevisions: _isResolving
69
+ isLoadingGlobalStylesRevisions: _isResolving,
70
+ revisionsCount: _revisionsCount
58
71
  };
59
- }, []);
72
+ }, [query]);
60
73
  return useMemo(() => {
61
- let _modifiedRevisions = [];
62
74
  if (!authors.length || isLoadingGlobalStylesRevisions) {
63
75
  return {
64
- revisions: _modifiedRevisions,
76
+ revisions: EMPTY_ARRAY,
65
77
  hasUnsavedChanges: isDirty,
66
- isLoading: true
78
+ isLoading: true,
79
+ revisionsCount
67
80
  };
68
81
  }
69
82
 
70
83
  // Adds author details to each revision.
71
- _modifiedRevisions = revisions.map(revision => {
84
+ const _modifiedRevisions = revisions.map(revision => {
72
85
  return {
73
86
  ...revision,
74
87
  author: authors.find(author => author.id === revision.author)
75
88
  };
76
89
  });
77
- if (_modifiedRevisions.length) {
90
+ const fetchedRevisionsCount = revisions.length;
91
+ if (fetchedRevisionsCount) {
78
92
  // Flags the most current saved revision.
79
- if (_modifiedRevisions[0].id !== 'unsaved') {
93
+ if (_modifiedRevisions[0].id !== 'unsaved' && _query.page === 1) {
80
94
  _modifiedRevisions[0].isLatest = true;
81
95
  }
82
96
 
83
97
  // Adds an item for unsaved changes.
84
- if (isDirty && userConfig && Object.keys(userConfig).length > 0 && currentUser) {
98
+ if (isDirty && userConfig && Object.keys(userConfig).length > 0 && currentUser && _query.page === 1) {
85
99
  const unsavedRevision = {
86
100
  id: 'unsaved',
87
101
  styles: userConfig?.styles,
@@ -94,16 +108,20 @@ export default function useGlobalStylesRevisions() {
94
108
  };
95
109
  _modifiedRevisions.unshift(unsavedRevision);
96
110
  }
97
- _modifiedRevisions.push({
98
- id: 'parent',
99
- styles: {},
100
- settings: {}
101
- });
111
+ if (_query.page === Math.ceil(revisionsCount / _query.per_page)) {
112
+ // Adds an item for the default theme styles.
113
+ _modifiedRevisions.push({
114
+ id: 'parent',
115
+ styles: {},
116
+ settings: {}
117
+ });
118
+ }
102
119
  }
103
120
  return {
104
121
  revisions: _modifiedRevisions,
105
122
  hasUnsavedChanges: isDirty,
106
- isLoading: false
123
+ isLoading: false,
124
+ revisionsCount
107
125
  };
108
126
  }, [isDirty, revisions, currentUser, authors, userConfig, isLoadingGlobalStylesRevisions]);
109
127
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","store","coreStore","useContext","useMemo","privateApis","blockEditorPrivateApis","unlock","SITE_EDITOR_AUTHORS_QUERY","per_page","_fields","context","capabilities","EMPTY_ARRAY","GlobalStylesContext","useGlobalStylesRevisions","user","userConfig","authors","currentUser","isDirty","revisions","isLoadingGlobalStylesRevisions","select","__experimentalGetDirtyEntityRecords","getCurrentUser","getUsers","getRevisions","__experimentalGetCurrentGlobalStylesId","isResolving","dirtyEntityRecords","_currentUser","_isDirty","length","query","globalStylesId","globalStylesRevisions","_authors","_isResolving","_modifiedRevisions","hasUnsavedChanges","isLoading","map","revision","author","find","id","isLatest","Object","keys","unsavedRevision","styles","settings","name","avatar_urls","modified","Date","unshift","push"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/use-global-styles-revisions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useContext, useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst SITE_EDITOR_AUTHORS_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name,avatar_urls',\n\tcontext: 'view',\n\tcapabilities: [ 'edit_theme_options' ],\n};\nconst EMPTY_ARRAY = [];\nconst { GlobalStylesContext } = unlock( blockEditorPrivateApis );\nexport default function useGlobalStylesRevisions() {\n\tconst { user: userConfig } = useContext( GlobalStylesContext );\n\tconst {\n\t\tauthors,\n\t\tcurrentUser,\n\t\tisDirty,\n\t\trevisions,\n\t\tisLoadingGlobalStylesRevisions,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\tgetCurrentUser,\n\t\t\tgetUsers,\n\t\t\tgetRevisions,\n\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\tisResolving,\n\t\t} = select( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst _currentUser = getCurrentUser();\n\t\tconst _isDirty = dirtyEntityRecords.length > 0;\n\t\tconst query = {\n\t\t\tper_page: 100,\n\t\t};\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStylesRevisions =\n\t\t\tgetRevisions( 'root', 'globalStyles', globalStylesId, query ) ||\n\t\t\tEMPTY_ARRAY;\n\t\tconst _authors = getUsers( SITE_EDITOR_AUTHORS_QUERY ) || EMPTY_ARRAY;\n\t\tconst _isResolving = isResolving( 'getRevisions', [\n\t\t\t'root',\n\t\t\t'globalStyles',\n\t\t\tglobalStylesId,\n\t\t\tquery,\n\t\t] );\n\t\treturn {\n\t\t\tauthors: _authors,\n\t\t\tcurrentUser: _currentUser,\n\t\t\tisDirty: _isDirty,\n\t\t\trevisions: globalStylesRevisions,\n\t\t\tisLoadingGlobalStylesRevisions: _isResolving,\n\t\t};\n\t}, [] );\n\treturn useMemo( () => {\n\t\tlet _modifiedRevisions = [];\n\t\tif ( ! authors.length || isLoadingGlobalStylesRevisions ) {\n\t\t\treturn {\n\t\t\t\trevisions: _modifiedRevisions,\n\t\t\t\thasUnsavedChanges: isDirty,\n\t\t\t\tisLoading: true,\n\t\t\t};\n\t\t}\n\n\t\t// Adds author details to each revision.\n\t\t_modifiedRevisions = revisions.map( ( revision ) => {\n\t\t\treturn {\n\t\t\t\t...revision,\n\t\t\t\tauthor: authors.find(\n\t\t\t\t\t( author ) => author.id === revision.author\n\t\t\t\t),\n\t\t\t};\n\t\t} );\n\n\t\tif ( _modifiedRevisions.length ) {\n\t\t\t// Flags the most current saved revision.\n\t\t\tif ( _modifiedRevisions[ 0 ].id !== 'unsaved' ) {\n\t\t\t\t_modifiedRevisions[ 0 ].isLatest = true;\n\t\t\t}\n\n\t\t\t// Adds an item for unsaved changes.\n\t\t\tif (\n\t\t\t\tisDirty &&\n\t\t\t\tuserConfig &&\n\t\t\t\tObject.keys( userConfig ).length > 0 &&\n\t\t\t\tcurrentUser\n\t\t\t) {\n\t\t\t\tconst unsavedRevision = {\n\t\t\t\t\tid: 'unsaved',\n\t\t\t\t\tstyles: userConfig?.styles,\n\t\t\t\t\tsettings: userConfig?.settings,\n\t\t\t\t\tauthor: {\n\t\t\t\t\t\tname: currentUser?.name,\n\t\t\t\t\t\tavatar_urls: currentUser?.avatar_urls,\n\t\t\t\t\t},\n\t\t\t\t\tmodified: new Date(),\n\t\t\t\t};\n\n\t\t\t\t_modifiedRevisions.unshift( unsavedRevision );\n\t\t\t}\n\n\t\t\t_modifiedRevisions.push( {\n\t\t\t\tid: 'parent',\n\t\t\t\tstyles: {},\n\t\t\t\tsettings: {},\n\t\t\t} );\n\t\t}\n\n\t\treturn {\n\t\t\trevisions: _modifiedRevisions,\n\t\t\thasUnsavedChanges: isDirty,\n\t\t\tisLoading: false,\n\t\t};\n\t}, [\n\t\tisDirty,\n\t\trevisions,\n\t\tcurrentUser,\n\t\tauthors,\n\t\tuserConfig,\n\t\tisLoadingGlobalStylesRevisions,\n\t] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,UAAU,EAAEC,OAAO,QAAQ,oBAAoB;AACxD,SAASC,WAAW,IAAIC,sBAAsB,QAAQ,yBAAyB;;AAE/E;AACA;AACA;AACA,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,MAAMC,yBAAyB,GAAG;EACjCC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAE,qBAAqB;EAC9BC,OAAO,EAAE,MAAM;EACfC,YAAY,EAAE,CAAE,oBAAoB;AACrC,CAAC;AACD,MAAMC,WAAW,GAAG,EAAE;AACtB,MAAM;EAAEC;AAAoB,CAAC,GAAGP,MAAM,CAAED,sBAAuB,CAAC;AAChE,eAAe,SAASS,wBAAwBA,CAAA,EAAG;EAClD,MAAM;IAAEC,IAAI,EAAEC;EAAW,CAAC,GAAGd,UAAU,CAAEW,mBAAoB,CAAC;EAC9D,MAAM;IACLI,OAAO;IACPC,WAAW;IACXC,OAAO;IACPC,SAAS;IACTC;EACD,CAAC,GAAGtB,SAAS,CAAIuB,MAAM,IAAM;IAC5B,MAAM;MACLC,mCAAmC;MACnCC,cAAc;MACdC,QAAQ;MACRC,YAAY;MACZC,sCAAsC;MACtCC;IACD,CAAC,GAAGN,MAAM,CAAErB,SAAU,CAAC;IACvB,MAAM4B,kBAAkB,GAAGN,mCAAmC,CAAC,CAAC;IAChE,MAAMO,YAAY,GAAGN,cAAc,CAAC,CAAC;IACrC,MAAMO,QAAQ,GAAGF,kBAAkB,CAACG,MAAM,GAAG,CAAC;IAC9C,MAAMC,KAAK,GAAG;MACbzB,QAAQ,EAAE;IACX,CAAC;IACD,MAAM0B,cAAc,GAAGP,sCAAsC,CAAC,CAAC;IAC/D,MAAMQ,qBAAqB,GAC1BT,YAAY,CAAE,MAAM,EAAE,cAAc,EAAEQ,cAAc,EAAED,KAAM,CAAC,IAC7DrB,WAAW;IACZ,MAAMwB,QAAQ,GAAGX,QAAQ,CAAElB,yBAA0B,CAAC,IAAIK,WAAW;IACrE,MAAMyB,YAAY,GAAGT,WAAW,CAAE,cAAc,EAAE,CACjD,MAAM,EACN,cAAc,EACdM,cAAc,EACdD,KAAK,CACJ,CAAC;IACH,OAAO;MACNhB,OAAO,EAAEmB,QAAQ;MACjBlB,WAAW,EAAEY,YAAY;MACzBX,OAAO,EAAEY,QAAQ;MACjBX,SAAS,EAAEe,qBAAqB;MAChCd,8BAA8B,EAAEgB;IACjC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,OAAOlC,OAAO,CAAE,MAAM;IACrB,IAAImC,kBAAkB,GAAG,EAAE;IAC3B,IAAK,CAAErB,OAAO,CAACe,MAAM,IAAIX,8BAA8B,EAAG;MACzD,OAAO;QACND,SAAS,EAAEkB,kBAAkB;QAC7BC,iBAAiB,EAAEpB,OAAO;QAC1BqB,SAAS,EAAE;MACZ,CAAC;IACF;;IAEA;IACAF,kBAAkB,GAAGlB,SAAS,CAACqB,GAAG,CAAIC,QAAQ,IAAM;MACnD,OAAO;QACN,GAAGA,QAAQ;QACXC,MAAM,EAAE1B,OAAO,CAAC2B,IAAI,CACjBD,MAAM,IAAMA,MAAM,CAACE,EAAE,KAAKH,QAAQ,CAACC,MACtC;MACD,CAAC;IACF,CAAE,CAAC;IAEH,IAAKL,kBAAkB,CAACN,MAAM,EAAG;MAChC;MACA,IAAKM,kBAAkB,CAAE,CAAC,CAAE,CAACO,EAAE,KAAK,SAAS,EAAG;QAC/CP,kBAAkB,CAAE,CAAC,CAAE,CAACQ,QAAQ,GAAG,IAAI;MACxC;;MAEA;MACA,IACC3B,OAAO,IACPH,UAAU,IACV+B,MAAM,CAACC,IAAI,CAAEhC,UAAW,CAAC,CAACgB,MAAM,GAAG,CAAC,IACpCd,WAAW,EACV;QACD,MAAM+B,eAAe,GAAG;UACvBJ,EAAE,EAAE,SAAS;UACbK,MAAM,EAAElC,UAAU,EAAEkC,MAAM;UAC1BC,QAAQ,EAAEnC,UAAU,EAAEmC,QAAQ;UAC9BR,MAAM,EAAE;YACPS,IAAI,EAAElC,WAAW,EAAEkC,IAAI;YACvBC,WAAW,EAAEnC,WAAW,EAAEmC;UAC3B,CAAC;UACDC,QAAQ,EAAE,IAAIC,IAAI,CAAC;QACpB,CAAC;QAEDjB,kBAAkB,CAACkB,OAAO,CAAEP,eAAgB,CAAC;MAC9C;MAEAX,kBAAkB,CAACmB,IAAI,CAAE;QACxBZ,EAAE,EAAE,QAAQ;QACZK,MAAM,EAAE,CAAC,CAAC;QACVC,QAAQ,EAAE,CAAC;MACZ,CAAE,CAAC;IACJ;IAEA,OAAO;MACN/B,SAAS,EAAEkB,kBAAkB;MAC7BC,iBAAiB,EAAEpB,OAAO;MAC1BqB,SAAS,EAAE;IACZ,CAAC;EACF,CAAC,EAAE,CACFrB,OAAO,EACPC,SAAS,EACTF,WAAW,EACXD,OAAO,EACPD,UAAU,EACVK,8BAA8B,CAC7B,CAAC;AACJ"}
1
+ {"version":3,"names":["useSelect","store","coreStore","useContext","useMemo","privateApis","blockEditorPrivateApis","unlock","SITE_EDITOR_AUTHORS_QUERY","per_page","_fields","context","capabilities","DEFAULT_QUERY","page","EMPTY_ARRAY","GlobalStylesContext","useGlobalStylesRevisions","query","user","userConfig","_query","authors","currentUser","isDirty","revisions","isLoadingGlobalStylesRevisions","revisionsCount","select","_globalStyles$_links$","__experimentalGetDirtyEntityRecords","getCurrentUser","getUsers","getRevisions","__experimentalGetCurrentGlobalStylesId","getEntityRecord","isResolving","dirtyEntityRecords","_currentUser","_isDirty","length","globalStylesId","globalStyles","undefined","_revisionsCount","_links","count","globalStylesRevisions","_authors","_isResolving","hasUnsavedChanges","isLoading","_modifiedRevisions","map","revision","author","find","id","fetchedRevisionsCount","isLatest","Object","keys","unsavedRevision","styles","settings","name","avatar_urls","modified","Date","unshift","Math","ceil","push"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/use-global-styles-revisions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useContext, useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst SITE_EDITOR_AUTHORS_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name,avatar_urls',\n\tcontext: 'view',\n\tcapabilities: [ 'edit_theme_options' ],\n};\nconst DEFAULT_QUERY = { per_page: 100, page: 1 };\nconst EMPTY_ARRAY = [];\nconst { GlobalStylesContext } = unlock( blockEditorPrivateApis );\nexport default function useGlobalStylesRevisions( { query } = {} ) {\n\tconst { user: userConfig } = useContext( GlobalStylesContext );\n\tconst _query = { ...DEFAULT_QUERY, ...query };\n\tconst {\n\t\tauthors,\n\t\tcurrentUser,\n\t\tisDirty,\n\t\trevisions,\n\t\tisLoadingGlobalStylesRevisions,\n\t\trevisionsCount,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\tgetCurrentUser,\n\t\t\t\tgetUsers,\n\t\t\t\tgetRevisions,\n\t\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tisResolving,\n\t\t\t} = select( coreStore );\n\t\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\t\tconst _currentUser = getCurrentUser();\n\t\t\tconst _isDirty = dirtyEntityRecords.length > 0;\n\t\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\t\tconst globalStyles = globalStylesId\n\t\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t\t: undefined;\n\t\t\tconst _revisionsCount =\n\t\t\t\tglobalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\t\tconst globalStylesRevisions =\n\t\t\t\tgetRevisions(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t_query\n\t\t\t\t) || EMPTY_ARRAY;\n\t\t\tconst _authors =\n\t\t\t\tgetUsers( SITE_EDITOR_AUTHORS_QUERY ) || EMPTY_ARRAY;\n\t\t\tconst _isResolving = isResolving( 'getRevisions', [\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t_query,\n\t\t\t] );\n\t\t\treturn {\n\t\t\t\tauthors: _authors,\n\t\t\t\tcurrentUser: _currentUser,\n\t\t\t\tisDirty: _isDirty,\n\t\t\t\trevisions: globalStylesRevisions,\n\t\t\t\tisLoadingGlobalStylesRevisions: _isResolving,\n\t\t\t\trevisionsCount: _revisionsCount,\n\t\t\t};\n\t\t},\n\t\t[ query ]\n\t);\n\treturn useMemo( () => {\n\t\tif ( ! authors.length || isLoadingGlobalStylesRevisions ) {\n\t\t\treturn {\n\t\t\t\trevisions: EMPTY_ARRAY,\n\t\t\t\thasUnsavedChanges: isDirty,\n\t\t\t\tisLoading: true,\n\t\t\t\trevisionsCount,\n\t\t\t};\n\t\t}\n\n\t\t// Adds author details to each revision.\n\t\tconst _modifiedRevisions = revisions.map( ( revision ) => {\n\t\t\treturn {\n\t\t\t\t...revision,\n\t\t\t\tauthor: authors.find(\n\t\t\t\t\t( author ) => author.id === revision.author\n\t\t\t\t),\n\t\t\t};\n\t\t} );\n\n\t\tconst fetchedRevisionsCount = revisions.length;\n\n\t\tif ( fetchedRevisionsCount ) {\n\t\t\t// Flags the most current saved revision.\n\t\t\tif (\n\t\t\t\t_modifiedRevisions[ 0 ].id !== 'unsaved' &&\n\t\t\t\t_query.page === 1\n\t\t\t) {\n\t\t\t\t_modifiedRevisions[ 0 ].isLatest = true;\n\t\t\t}\n\n\t\t\t// Adds an item for unsaved changes.\n\t\t\tif (\n\t\t\t\tisDirty &&\n\t\t\t\tuserConfig &&\n\t\t\t\tObject.keys( userConfig ).length > 0 &&\n\t\t\t\tcurrentUser &&\n\t\t\t\t_query.page === 1\n\t\t\t) {\n\t\t\t\tconst unsavedRevision = {\n\t\t\t\t\tid: 'unsaved',\n\t\t\t\t\tstyles: userConfig?.styles,\n\t\t\t\t\tsettings: userConfig?.settings,\n\t\t\t\t\tauthor: {\n\t\t\t\t\t\tname: currentUser?.name,\n\t\t\t\t\t\tavatar_urls: currentUser?.avatar_urls,\n\t\t\t\t\t},\n\t\t\t\t\tmodified: new Date(),\n\t\t\t\t};\n\n\t\t\t\t_modifiedRevisions.unshift( unsavedRevision );\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t_query.page === Math.ceil( revisionsCount / _query.per_page )\n\t\t\t) {\n\t\t\t\t// Adds an item for the default theme styles.\n\t\t\t\t_modifiedRevisions.push( {\n\t\t\t\t\tid: 'parent',\n\t\t\t\t\tstyles: {},\n\t\t\t\t\tsettings: {},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\trevisions: _modifiedRevisions,\n\t\t\thasUnsavedChanges: isDirty,\n\t\t\tisLoading: false,\n\t\t\trevisionsCount,\n\t\t};\n\t}, [\n\t\tisDirty,\n\t\trevisions,\n\t\tcurrentUser,\n\t\tauthors,\n\t\tuserConfig,\n\t\tisLoadingGlobalStylesRevisions,\n\t] );\n}\n"],"mappings":"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"}
@@ -2,13 +2,13 @@ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
- import { __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalUseNavigator as useNavigator, createSlotFill, Button, DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
5
+ import { __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalUseNavigator as useNavigator, createSlotFill, DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
6
6
  import { getBlockTypes, store as blocksStore } from '@wordpress/blocks';
7
7
  import { useSelect, useDispatch } from '@wordpress/data';
8
8
  import { privateApis as blockEditorPrivateApis, store as blockEditorStore } from '@wordpress/block-editor';
9
9
  import { __ } from '@wordpress/i18n';
10
10
  import { store as preferencesStore } from '@wordpress/preferences';
11
- import { backup, moreVertical } from '@wordpress/icons';
11
+ import { moreVertical } from '@wordpress/icons';
12
12
  import { store as coreStore } from '@wordpress/core-data';
13
13
  import { useEffect } from '@wordpress/element';
14
14
 
@@ -85,50 +85,6 @@ function GlobalStylesActionMenu() {
85
85
  disabled: !canReset
86
86
  }, __('Reset styles'))))));
87
87
  }
88
- function GlobalStylesRevisionsMenu() {
89
- const {
90
- setIsListViewOpened
91
- } = useDispatch(editSiteStore);
92
- const {
93
- revisionsCount
94
- } = useSelect(select => {
95
- var _globalStyles$_links$;
96
- const {
97
- getEntityRecord,
98
- __experimentalGetCurrentGlobalStylesId
99
- } = select(coreStore);
100
- const globalStylesId = __experimentalGetCurrentGlobalStylesId();
101
- const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
102
- return {
103
- revisionsCount: (_globalStyles$_links$ = globalStyles?._links?.['version-history']?.[0]?.count) !== null && _globalStyles$_links$ !== void 0 ? _globalStyles$_links$ : 0
104
- };
105
- }, []);
106
- const {
107
- goTo
108
- } = useNavigator();
109
- const {
110
- setEditorCanvasContainerView
111
- } = unlock(useDispatch(editSiteStore));
112
- const isRevisionsOpened = useSelect(select => 'global-styles-revisions' === unlock(select(editSiteStore)).getEditorCanvasContainerView(), []);
113
- const loadRevisions = () => {
114
- setIsListViewOpened(false);
115
- if (!isRevisionsOpened) {
116
- goTo('/revisions');
117
- setEditorCanvasContainerView('global-styles-revisions');
118
- } else {
119
- goTo('/');
120
- setEditorCanvasContainerView(undefined);
121
- }
122
- };
123
- const hasRevisions = revisionsCount > 0;
124
- return createElement(GlobalStylesMenuFill, null, createElement(Button, {
125
- label: __('Revisions'),
126
- icon: backup,
127
- onClick: loadRevisions,
128
- disabled: !hasRevisions,
129
- isPressed: isRevisionsOpened
130
- }));
131
- }
132
88
  function GlobalStylesNavigationScreen({
133
89
  className,
134
90
  ...props
@@ -226,8 +182,7 @@ function GlobalStylesBlockLink() {
226
182
  }
227
183
  function GlobalStylesEditorCanvasContainerLink() {
228
184
  const {
229
- goTo,
230
- location
185
+ goTo
231
186
  } = useNavigator();
232
187
  const editorCanvasContainerView = useSelect(select => unlock(select(editSiteStore)).getEditorCanvasContainerView(), []);
233
188
 
@@ -235,22 +190,18 @@ function GlobalStylesEditorCanvasContainerLink() {
235
190
  // to the appropriate screen. This effectively allows deep linking to the
236
191
  // desired screens from outside the global styles navigation provider.
237
192
  useEffect(() => {
238
- if (editorCanvasContainerView === 'global-styles-revisions') {
239
- // Switching to the revisions container view should
240
- // redirect to the revisions screen.
241
- goTo('/revisions');
242
- } else if (!!editorCanvasContainerView && location?.path === '/revisions') {
243
- // Switching to any container other than revisions should
244
- // redirect from the revisions screen to the root global styles screen.
245
- goTo('/');
246
- } else if (editorCanvasContainerView === 'global-styles-css') {
247
- goTo('/css');
193
+ switch (editorCanvasContainerView) {
194
+ case 'global-styles-revisions':
195
+ case 'global-styles-revisions:style-book':
196
+ goTo('/revisions');
197
+ break;
198
+ case 'global-styles-css':
199
+ goTo('/css');
200
+ break;
201
+ default:
202
+ goTo('/');
203
+ break;
248
204
  }
249
-
250
- // location?.path is not a dependency because we don't want to track it.
251
- // Doing so will cause an infinite loop. We could abstract logic to avoid
252
- // having to disable the check later.
253
- // eslint-disable-next-line react-hooks/exhaustive-deps
254
205
  }, [editorCanvasContainerView, goTo]);
255
206
  }
256
207
  function GlobalStylesUI() {
@@ -304,7 +255,7 @@ function GlobalStylesUI() {
304
255
  key: 'screens-block-' + block.name,
305
256
  name: block.name,
306
257
  parentMenu: '/blocks/' + encodeURIComponent(block.name)
307
- })), 'style-book' === editorCanvasContainerView && createElement(GlobalStylesStyleBook, null), createElement(GlobalStylesRevisionsMenu, null), createElement(GlobalStylesActionMenu, null), createElement(GlobalStylesBlockLink, null), createElement(GlobalStylesEditorCanvasContainerLink, null));
258
+ })), 'style-book' === editorCanvasContainerView && createElement(GlobalStylesStyleBook, null), createElement(GlobalStylesActionMenu, null), createElement(GlobalStylesBlockLink, null), createElement(GlobalStylesEditorCanvasContainerLink, null));
308
259
  }
309
260
  export { GlobalStylesMenuSlot };
310
261
  export default GlobalStylesUI;
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalUseNavigator","useNavigator","createSlotFill","Button","DropdownMenu","MenuGroup","MenuItem","getBlockTypes","store","blocksStore","useSelect","useDispatch","privateApis","blockEditorPrivateApis","blockEditorStore","__","preferencesStore","backup","moreVertical","coreStore","useEffect","ScreenRoot","useBlockHasGlobalStyles","default","ScreenBlockList","ScreenBlock","ScreenTypography","ScreenTypographyElement","ScreenColors","ScreenColorPalette","ScreenLayout","ScreenStyleVariations","StyleBook","ScreenCSS","ScreenRevisions","unlock","editSiteStore","SLOT_FILL_NAME","useGlobalStylesReset","Slot","GlobalStylesMenuSlot","Fill","GlobalStylesMenuFill","GlobalStylesActionMenu","canReset","onReset","toggle","canEditCSS","select","getEntityRecord","__experimentalGetCurrentGlobalStylesId","globalStylesId","globalStyles","undefined","_links","setEditorCanvasContainerView","goTo","loadCustomCSS","createElement","icon","label","onClose","Fragment","onClick","disabled","GlobalStylesRevisionsMenu","setIsListViewOpened","revisionsCount","_globalStyles$_links$","count","isRevisionsOpened","getEditorCanvasContainerView","loadRevisions","hasRevisions","isPressed","GlobalStylesNavigationScreen","className","props","filter","Boolean","join","BlockStylesNavigationScreens","parentMenu","blockStyles","blockName","map","style","index","key","path","name","variation","ContextScreens","blockStyleVariations","getBlockStyles","length","GlobalStylesStyleBook","navigator","location","isSelected","encodeURIComponent","startsWith","onSelect","GlobalStylesBlockLink","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getBlockName","clientId","blockHasGlobalStyles","currentPath","newPath","skipFocus","GlobalStylesEditorCanvasContainerLink","editorCanvasContainerView","GlobalStylesUI","blocks","initialPath","element","block"],"sources":["@wordpress/edit-site/src/components/global-styles/ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalUseNavigator as useNavigator,\n\tcreateSlotFill,\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { backup, moreVertical } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ScreenRoot from './screen-root';\nimport {\n\tuseBlockHasGlobalStyles,\n\tdefault as ScreenBlockList,\n} from './screen-block-list';\nimport ScreenBlock from './screen-block';\nimport ScreenTypography from './screen-typography';\nimport ScreenTypographyElement from './screen-typography-element';\nimport ScreenColors from './screen-colors';\nimport ScreenColorPalette from './screen-color-palette';\nimport ScreenLayout from './screen-layout';\nimport ScreenStyleVariations from './screen-style-variations';\nimport StyleBook from '../style-book';\nimport ScreenCSS from './screen-css';\nimport ScreenRevisions from './screen-revisions';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\n\nconst SLOT_FILL_NAME = 'GlobalStylesMenu';\nconst { useGlobalStylesReset } = unlock( blockEditorPrivateApis );\nconst { Slot: GlobalStylesMenuSlot, Fill: GlobalStylesMenuFill } =\n\tcreateSlotFill( SLOT_FILL_NAME );\n\nfunction GlobalStylesActionMenu() {\n\tconst [ canReset, onReset ] = useGlobalStylesReset();\n\tconst { toggle } = useDispatch( preferencesStore );\n\tconst { canEditCSS } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tcanEditCSS: !! globalStyles?._links?.[ 'wp:action-edit-css' ],\n\t\t};\n\t}, [] );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst { goTo } = useNavigator();\n\tconst loadCustomCSS = () => {\n\t\tsetEditorCanvasContainerView( 'global-styles-css' );\n\t\tgoTo( '/css' );\n\t};\n\n\treturn (\n\t\t<GlobalStylesMenuFill>\n\t\t\t<DropdownMenu icon={ moreVertical } label={ __( 'More' ) }>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ canEditCSS && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ loadCustomCSS }>\n\t\t\t\t\t\t\t\t\t{ __( 'Additional CSS' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\ttoggle(\n\t\t\t\t\t\t\t\t\t\t'core/edit-site',\n\t\t\t\t\t\t\t\t\t\t'welcomeGuideStyles'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Welcome Guide' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonReset();\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={ ! canReset }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Reset styles' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\t\t</GlobalStylesMenuFill>\n\t);\n}\n\nfunction GlobalStylesRevisionsMenu() {\n\tconst { setIsListViewOpened } = useDispatch( editSiteStore );\n\tconst { revisionsCount } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\trevisionsCount:\n\t\t\t\tglobalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0,\n\t\t};\n\t}, [] );\n\tconst { goTo } = useNavigator();\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst isRevisionsOpened = useSelect(\n\t\t( select ) =>\n\t\t\t'global-styles-revisions' ===\n\t\t\tunlock( select( editSiteStore ) ).getEditorCanvasContainerView(),\n\t\t[]\n\t);\n\tconst loadRevisions = () => {\n\t\tsetIsListViewOpened( false );\n\n\t\tif ( ! isRevisionsOpened ) {\n\t\t\tgoTo( '/revisions' );\n\t\t\tsetEditorCanvasContainerView( 'global-styles-revisions' );\n\t\t} else {\n\t\t\tgoTo( '/' );\n\t\t\tsetEditorCanvasContainerView( undefined );\n\t\t}\n\t};\n\tconst hasRevisions = revisionsCount > 0;\n\n\treturn (\n\t\t<GlobalStylesMenuFill>\n\t\t\t<Button\n\t\t\t\tlabel={ __( 'Revisions' ) }\n\t\t\t\ticon={ backup }\n\t\t\t\tonClick={ loadRevisions }\n\t\t\t\tdisabled={ ! hasRevisions }\n\t\t\t\tisPressed={ isRevisionsOpened }\n\t\t\t/>\n\t\t</GlobalStylesMenuFill>\n\t);\n}\n\nfunction GlobalStylesNavigationScreen( { className, ...props } ) {\n\treturn (\n\t\t<NavigatorScreen\n\t\t\tclassName={ [\n\t\t\t\t'edit-site-global-styles-sidebar__navigator-screen',\n\t\t\t\tclassName,\n\t\t\t]\n\t\t\t\t.filter( Boolean )\n\t\t\t\t.join( ' ' ) }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction BlockStylesNavigationScreens( {\n\tparentMenu,\n\tblockStyles,\n\tblockName,\n} ) {\n\treturn blockStyles.map( ( style, index ) => (\n\t\t<GlobalStylesNavigationScreen\n\t\t\tkey={ index }\n\t\t\tpath={ parentMenu + '/variations/' + style.name }\n\t\t>\n\t\t\t<ScreenBlock name={ blockName } variation={ style.name } />\n\t\t</GlobalStylesNavigationScreen>\n\t) );\n}\n\nfunction ContextScreens( { name, parentMenu = '' } ) {\n\tconst blockStyleVariations = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\treturn getBlockStyles( name );\n\t\t},\n\t\t[ name ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<GlobalStylesNavigationScreen\n\t\t\t\tpath={ parentMenu + '/colors/palette' }\n\t\t\t>\n\t\t\t\t<ScreenColorPalette name={ name } />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t{ !! blockStyleVariations?.length && (\n\t\t\t\t<BlockStylesNavigationScreens\n\t\t\t\t\tparentMenu={ parentMenu }\n\t\t\t\t\tblockStyles={ blockStyleVariations }\n\t\t\t\t\tblockName={ name }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction GlobalStylesStyleBook() {\n\tconst navigator = useNavigator();\n\tconst { path } = navigator.location;\n\treturn (\n\t\t<StyleBook\n\t\t\tisSelected={ ( blockName ) =>\n\t\t\t\t// Match '/blocks/core%2Fbutton' and\n\t\t\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t\t\t// '/blocks/core%2Fbuttons'.\n\t\t\t\tpath === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\t\tpath.startsWith(\n\t\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t\t)\n\t\t\t}\n\t\t\tonSelect={ ( blockName ) => {\n\t\t\t\t// Now go to the selected block.\n\t\t\t\tnavigator.goTo( '/blocks/' + encodeURIComponent( blockName ) );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction GlobalStylesBlockLink() {\n\tconst navigator = useNavigator();\n\tconst { selectedBlockName, selectedBlockClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSelectedBlockClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\treturn {\n\t\t\t\tselectedBlockName: getBlockName( clientId ),\n\t\t\t\tselectedBlockClientId: clientId,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst blockHasGlobalStyles = useBlockHasGlobalStyles( selectedBlockName );\n\t// When we're in the `Blocks` screen enable deep linking to the selected block.\n\tuseEffect( () => {\n\t\tif ( ! selectedBlockClientId || ! blockHasGlobalStyles ) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentPath = navigator.location.path;\n\t\tif (\n\t\t\tcurrentPath !== '/blocks' &&\n\t\t\t! currentPath.startsWith( '/blocks/' )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst newPath = '/blocks/' + encodeURIComponent( selectedBlockName );\n\t\t// Avoid navigating to the same path. This can happen when selecting\n\t\t// a new block of the same type.\n\t\tif ( newPath !== currentPath ) {\n\t\t\tnavigator.goTo( newPath, { skipFocus: true } );\n\t\t}\n\t}, [ selectedBlockClientId, selectedBlockName, blockHasGlobalStyles ] );\n}\n\nfunction GlobalStylesEditorCanvasContainerLink() {\n\tconst { goTo, location } = useNavigator();\n\tconst editorCanvasContainerView = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( editSiteStore ) ).getEditorCanvasContainerView(),\n\t\t[]\n\t);\n\n\t// If the user switches the editor canvas container view, redirect\n\t// to the appropriate screen. This effectively allows deep linking to the\n\t// desired screens from outside the global styles navigation provider.\n\tuseEffect( () => {\n\t\tif ( editorCanvasContainerView === 'global-styles-revisions' ) {\n\t\t\t// Switching to the revisions container view should\n\t\t\t// redirect to the revisions screen.\n\t\t\tgoTo( '/revisions' );\n\t\t} else if (\n\t\t\t!! editorCanvasContainerView &&\n\t\t\tlocation?.path === '/revisions'\n\t\t) {\n\t\t\t// Switching to any container other than revisions should\n\t\t\t// redirect from the revisions screen to the root global styles screen.\n\t\t\tgoTo( '/' );\n\t\t} else if ( editorCanvasContainerView === 'global-styles-css' ) {\n\t\t\tgoTo( '/css' );\n\t\t}\n\n\t\t// location?.path is not a dependency because we don't want to track it.\n\t\t// Doing so will cause an infinite loop. We could abstract logic to avoid\n\t\t// having to disable the check later.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ editorCanvasContainerView, goTo ] );\n}\n\nfunction GlobalStylesUI() {\n\tconst blocks = getBlockTypes();\n\tconst editorCanvasContainerView = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( editSiteStore ) ).getEditorCanvasContainerView(),\n\t\t[]\n\t);\n\treturn (\n\t\t<NavigatorProvider\n\t\t\tclassName=\"edit-site-global-styles-sidebar__navigator-provider\"\n\t\t\tinitialPath=\"/\"\n\t\t>\n\t\t\t<GlobalStylesNavigationScreen path=\"/\">\n\t\t\t\t<ScreenRoot />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/variations\">\n\t\t\t\t<ScreenStyleVariations />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/blocks\">\n\t\t\t\t<ScreenBlockList />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography\">\n\t\t\t\t<ScreenTypography />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/text\">\n\t\t\t\t<ScreenTypographyElement element=\"text\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/link\">\n\t\t\t\t<ScreenTypographyElement element=\"link\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/heading\">\n\t\t\t\t<ScreenTypographyElement element=\"heading\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/caption\">\n\t\t\t\t<ScreenTypographyElement element=\"caption\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/button\">\n\t\t\t\t<ScreenTypographyElement element=\"button\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/colors\">\n\t\t\t\t<ScreenColors />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/layout\">\n\t\t\t\t<ScreenLayout />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/css\">\n\t\t\t\t<ScreenCSS />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path={ '/revisions' }>\n\t\t\t\t<ScreenRevisions />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t{ blocks.map( ( block ) => (\n\t\t\t\t<GlobalStylesNavigationScreen\n\t\t\t\t\tkey={ 'menu-block-' + block.name }\n\t\t\t\t\tpath={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\t\t>\n\t\t\t\t\t<ScreenBlock name={ block.name } />\n\t\t\t\t</GlobalStylesNavigationScreen>\n\t\t\t) ) }\n\n\t\t\t<ContextScreens />\n\n\t\t\t{ blocks.map( ( block ) => (\n\t\t\t\t<ContextScreens\n\t\t\t\t\tkey={ 'screens-block-' + block.name }\n\t\t\t\t\tname={ block.name }\n\t\t\t\t\tparentMenu={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\t\t/>\n\t\t\t) ) }\n\n\t\t\t{ 'style-book' === editorCanvasContainerView && (\n\t\t\t\t<GlobalStylesStyleBook />\n\t\t\t) }\n\n\t\t\t<GlobalStylesRevisionsMenu />\n\t\t\t<GlobalStylesActionMenu />\n\t\t\t<GlobalStylesBlockLink />\n\t\t\t<GlobalStylesEditorCanvasContainerLink />\n\t\t</NavigatorProvider>\n\t);\n}\nexport { GlobalStylesMenuSlot };\nexport default GlobalStylesUI;\n"],"mappings":"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"}
1
+ {"version":3,"names":["__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalUseNavigator","useNavigator","createSlotFill","DropdownMenu","MenuGroup","MenuItem","getBlockTypes","store","blocksStore","useSelect","useDispatch","privateApis","blockEditorPrivateApis","blockEditorStore","__","preferencesStore","moreVertical","coreStore","useEffect","ScreenRoot","useBlockHasGlobalStyles","default","ScreenBlockList","ScreenBlock","ScreenTypography","ScreenTypographyElement","ScreenColors","ScreenColorPalette","ScreenLayout","ScreenStyleVariations","StyleBook","ScreenCSS","ScreenRevisions","unlock","editSiteStore","SLOT_FILL_NAME","useGlobalStylesReset","Slot","GlobalStylesMenuSlot","Fill","GlobalStylesMenuFill","GlobalStylesActionMenu","canReset","onReset","toggle","canEditCSS","select","getEntityRecord","__experimentalGetCurrentGlobalStylesId","globalStylesId","globalStyles","undefined","_links","setEditorCanvasContainerView","goTo","loadCustomCSS","createElement","icon","label","onClose","Fragment","onClick","disabled","GlobalStylesNavigationScreen","className","props","filter","Boolean","join","BlockStylesNavigationScreens","parentMenu","blockStyles","blockName","map","style","index","key","path","name","variation","ContextScreens","blockStyleVariations","getBlockStyles","length","GlobalStylesStyleBook","navigator","location","isSelected","encodeURIComponent","startsWith","onSelect","GlobalStylesBlockLink","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getBlockName","clientId","blockHasGlobalStyles","currentPath","newPath","skipFocus","GlobalStylesEditorCanvasContainerLink","editorCanvasContainerView","getEditorCanvasContainerView","GlobalStylesUI","blocks","initialPath","element","block"],"sources":["@wordpress/edit-site/src/components/global-styles/ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalUseNavigator as useNavigator,\n\tcreateSlotFill,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { moreVertical } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ScreenRoot from './screen-root';\nimport {\n\tuseBlockHasGlobalStyles,\n\tdefault as ScreenBlockList,\n} from './screen-block-list';\nimport ScreenBlock from './screen-block';\nimport ScreenTypography from './screen-typography';\nimport ScreenTypographyElement from './screen-typography-element';\nimport ScreenColors from './screen-colors';\nimport ScreenColorPalette from './screen-color-palette';\nimport ScreenLayout from './screen-layout';\nimport ScreenStyleVariations from './screen-style-variations';\nimport StyleBook from '../style-book';\nimport ScreenCSS from './screen-css';\nimport ScreenRevisions from './screen-revisions';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\n\nconst SLOT_FILL_NAME = 'GlobalStylesMenu';\nconst { useGlobalStylesReset } = unlock( blockEditorPrivateApis );\nconst { Slot: GlobalStylesMenuSlot, Fill: GlobalStylesMenuFill } =\n\tcreateSlotFill( SLOT_FILL_NAME );\n\nfunction GlobalStylesActionMenu() {\n\tconst [ canReset, onReset ] = useGlobalStylesReset();\n\tconst { toggle } = useDispatch( preferencesStore );\n\tconst { canEditCSS } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tcanEditCSS: !! globalStyles?._links?.[ 'wp:action-edit-css' ],\n\t\t};\n\t}, [] );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst { goTo } = useNavigator();\n\tconst loadCustomCSS = () => {\n\t\tsetEditorCanvasContainerView( 'global-styles-css' );\n\t\tgoTo( '/css' );\n\t};\n\n\treturn (\n\t\t<GlobalStylesMenuFill>\n\t\t\t<DropdownMenu icon={ moreVertical } label={ __( 'More' ) }>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ canEditCSS && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ loadCustomCSS }>\n\t\t\t\t\t\t\t\t\t{ __( 'Additional CSS' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\ttoggle(\n\t\t\t\t\t\t\t\t\t\t'core/edit-site',\n\t\t\t\t\t\t\t\t\t\t'welcomeGuideStyles'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Welcome Guide' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonReset();\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={ ! canReset }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Reset styles' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\t\t</GlobalStylesMenuFill>\n\t);\n}\n\nfunction GlobalStylesNavigationScreen( { className, ...props } ) {\n\treturn (\n\t\t<NavigatorScreen\n\t\t\tclassName={ [\n\t\t\t\t'edit-site-global-styles-sidebar__navigator-screen',\n\t\t\t\tclassName,\n\t\t\t]\n\t\t\t\t.filter( Boolean )\n\t\t\t\t.join( ' ' ) }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction BlockStylesNavigationScreens( {\n\tparentMenu,\n\tblockStyles,\n\tblockName,\n} ) {\n\treturn blockStyles.map( ( style, index ) => (\n\t\t<GlobalStylesNavigationScreen\n\t\t\tkey={ index }\n\t\t\tpath={ parentMenu + '/variations/' + style.name }\n\t\t>\n\t\t\t<ScreenBlock name={ blockName } variation={ style.name } />\n\t\t</GlobalStylesNavigationScreen>\n\t) );\n}\n\nfunction ContextScreens( { name, parentMenu = '' } ) {\n\tconst blockStyleVariations = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\treturn getBlockStyles( name );\n\t\t},\n\t\t[ name ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<GlobalStylesNavigationScreen\n\t\t\t\tpath={ parentMenu + '/colors/palette' }\n\t\t\t>\n\t\t\t\t<ScreenColorPalette name={ name } />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t{ !! blockStyleVariations?.length && (\n\t\t\t\t<BlockStylesNavigationScreens\n\t\t\t\t\tparentMenu={ parentMenu }\n\t\t\t\t\tblockStyles={ blockStyleVariations }\n\t\t\t\t\tblockName={ name }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction GlobalStylesStyleBook() {\n\tconst navigator = useNavigator();\n\tconst { path } = navigator.location;\n\treturn (\n\t\t<StyleBook\n\t\t\tisSelected={ ( blockName ) =>\n\t\t\t\t// Match '/blocks/core%2Fbutton' and\n\t\t\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t\t\t// '/blocks/core%2Fbuttons'.\n\t\t\t\tpath === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\t\tpath.startsWith(\n\t\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t\t)\n\t\t\t}\n\t\t\tonSelect={ ( blockName ) => {\n\t\t\t\t// Now go to the selected block.\n\t\t\t\tnavigator.goTo( '/blocks/' + encodeURIComponent( blockName ) );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction GlobalStylesBlockLink() {\n\tconst navigator = useNavigator();\n\tconst { selectedBlockName, selectedBlockClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSelectedBlockClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\treturn {\n\t\t\t\tselectedBlockName: getBlockName( clientId ),\n\t\t\t\tselectedBlockClientId: clientId,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst blockHasGlobalStyles = useBlockHasGlobalStyles( selectedBlockName );\n\t// When we're in the `Blocks` screen enable deep linking to the selected block.\n\tuseEffect( () => {\n\t\tif ( ! selectedBlockClientId || ! blockHasGlobalStyles ) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentPath = navigator.location.path;\n\t\tif (\n\t\t\tcurrentPath !== '/blocks' &&\n\t\t\t! currentPath.startsWith( '/blocks/' )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst newPath = '/blocks/' + encodeURIComponent( selectedBlockName );\n\t\t// Avoid navigating to the same path. This can happen when selecting\n\t\t// a new block of the same type.\n\t\tif ( newPath !== currentPath ) {\n\t\t\tnavigator.goTo( newPath, { skipFocus: true } );\n\t\t}\n\t}, [ selectedBlockClientId, selectedBlockName, blockHasGlobalStyles ] );\n}\n\nfunction GlobalStylesEditorCanvasContainerLink() {\n\tconst { goTo } = useNavigator();\n\tconst editorCanvasContainerView = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( editSiteStore ) ).getEditorCanvasContainerView(),\n\t\t[]\n\t);\n\n\t// If the user switches the editor canvas container view, redirect\n\t// to the appropriate screen. This effectively allows deep linking to the\n\t// desired screens from outside the global styles navigation provider.\n\tuseEffect( () => {\n\t\tswitch ( editorCanvasContainerView ) {\n\t\t\tcase 'global-styles-revisions':\n\t\t\tcase 'global-styles-revisions:style-book':\n\t\t\t\tgoTo( '/revisions' );\n\t\t\t\tbreak;\n\t\t\tcase 'global-styles-css':\n\t\t\t\tgoTo( '/css' );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tgoTo( '/' );\n\t\t\t\tbreak;\n\t\t}\n\t}, [ editorCanvasContainerView, goTo ] );\n}\n\nfunction GlobalStylesUI() {\n\tconst blocks = getBlockTypes();\n\tconst editorCanvasContainerView = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( editSiteStore ) ).getEditorCanvasContainerView(),\n\t\t[]\n\t);\n\treturn (\n\t\t<NavigatorProvider\n\t\t\tclassName=\"edit-site-global-styles-sidebar__navigator-provider\"\n\t\t\tinitialPath=\"/\"\n\t\t>\n\t\t\t<GlobalStylesNavigationScreen path=\"/\">\n\t\t\t\t<ScreenRoot />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/variations\">\n\t\t\t\t<ScreenStyleVariations />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/blocks\">\n\t\t\t\t<ScreenBlockList />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography\">\n\t\t\t\t<ScreenTypography />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/text\">\n\t\t\t\t<ScreenTypographyElement element=\"text\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/link\">\n\t\t\t\t<ScreenTypographyElement element=\"link\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/heading\">\n\t\t\t\t<ScreenTypographyElement element=\"heading\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/caption\">\n\t\t\t\t<ScreenTypographyElement element=\"caption\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/button\">\n\t\t\t\t<ScreenTypographyElement element=\"button\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/colors\">\n\t\t\t\t<ScreenColors />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/layout\">\n\t\t\t\t<ScreenLayout />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/css\">\n\t\t\t\t<ScreenCSS />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path={ '/revisions' }>\n\t\t\t\t<ScreenRevisions />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t{ blocks.map( ( block ) => (\n\t\t\t\t<GlobalStylesNavigationScreen\n\t\t\t\t\tkey={ 'menu-block-' + block.name }\n\t\t\t\t\tpath={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\t\t>\n\t\t\t\t\t<ScreenBlock name={ block.name } />\n\t\t\t\t</GlobalStylesNavigationScreen>\n\t\t\t) ) }\n\n\t\t\t<ContextScreens />\n\n\t\t\t{ blocks.map( ( block ) => (\n\t\t\t\t<ContextScreens\n\t\t\t\t\tkey={ 'screens-block-' + block.name }\n\t\t\t\t\tname={ block.name }\n\t\t\t\t\tparentMenu={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\t\t/>\n\t\t\t) ) }\n\n\t\t\t{ 'style-book' === editorCanvasContainerView && (\n\t\t\t\t<GlobalStylesStyleBook />\n\t\t\t) }\n\n\t\t\t<GlobalStylesActionMenu />\n\t\t\t<GlobalStylesBlockLink />\n\t\t\t<GlobalStylesEditorCanvasContainerLink />\n\t\t</NavigatorProvider>\n\t);\n}\nexport { GlobalStylesMenuSlot };\nexport default GlobalStylesUI;\n"],"mappings":"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"}