@wordpress/edit-site 5.23.0 → 5.24.1

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 (320) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +56 -38
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +7 -2
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/dataviews/add-filter.js +21 -20
  7. package/build/components/dataviews/add-filter.js.map +1 -1
  8. package/build/components/dataviews/constants.js +14 -0
  9. package/build/components/dataviews/constants.js.map +1 -0
  10. package/build/components/dataviews/dataviews.js +9 -7
  11. package/build/components/dataviews/dataviews.js.map +1 -1
  12. package/build/components/dataviews/filter-summary.js +62 -0
  13. package/build/components/dataviews/filter-summary.js.map +1 -0
  14. package/build/components/dataviews/filters.js +15 -30
  15. package/build/components/dataviews/filters.js.map +1 -1
  16. package/build/components/dataviews/item-actions.js +84 -30
  17. package/build/components/dataviews/item-actions.js.map +1 -1
  18. package/build/components/dataviews/pagination.js +4 -0
  19. package/build/components/dataviews/pagination.js.map +1 -1
  20. package/build/components/dataviews/view-actions.js +24 -24
  21. package/build/components/dataviews/view-actions.js.map +1 -1
  22. package/build/components/dataviews/view-grid.js +48 -25
  23. package/build/components/dataviews/view-grid.js.map +1 -1
  24. package/build/components/dataviews/view-list.js +28 -33
  25. package/build/components/dataviews/view-list.js.map +1 -1
  26. package/build/components/editor/index.js +23 -27
  27. package/build/components/editor/index.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  29. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
  31. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  32. package/build/components/global-styles/header.js +4 -2
  33. package/build/components/global-styles/header.js.map +1 -1
  34. package/build/components/global-styles/screen-block-list.js +22 -16
  35. package/build/components/global-styles/screen-block-list.js.map +1 -1
  36. package/build/components/global-styles/screen-revisions/index.js +26 -5
  37. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  38. package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
  39. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  40. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  41. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  42. package/build/components/global-styles/ui.js +28 -36
  43. package/build/components/global-styles/ui.js.map +1 -1
  44. package/build/components/header-edit-mode/document-actions/index.js +21 -16
  45. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  46. package/build/components/header-edit-mode/index.js +2 -1
  47. package/build/components/header-edit-mode/index.js.map +1 -1
  48. package/build/components/header-edit-mode/more-menu/index.js +1 -1
  49. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  50. package/build/components/list/added-by.js +43 -54
  51. package/build/components/list/added-by.js.map +1 -1
  52. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  53. package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  54. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  55. package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  56. package/build/components/page-content-focus-notifications/index.js +22 -0
  57. package/build/components/page-content-focus-notifications/index.js.map +1 -0
  58. package/build/components/page-pages/index.js +9 -15
  59. package/build/components/page-pages/index.js.map +1 -1
  60. package/build/components/page-patterns/use-patterns.js +1 -1
  61. package/build/components/page-patterns/use-patterns.js.map +1 -1
  62. package/build/components/page-templates/dataviews-templates.js +166 -51
  63. package/build/components/page-templates/dataviews-templates.js.map +1 -1
  64. package/build/components/preferences-modal/index.js +1 -1
  65. package/build/components/preferences-modal/index.js.map +1 -1
  66. package/build/components/save-button/index.js +9 -6
  67. package/build/components/save-button/index.js.map +1 -1
  68. package/build/components/save-hub/index.js +14 -0
  69. package/build/components/save-hub/index.js.map +1 -1
  70. package/build/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  71. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  72. package/build/components/sidebar-dataviews/default-views.js +7 -2
  73. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  74. package/build/components/sidebar-edit-mode/index.js +6 -5
  75. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  76. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +15 -26
  77. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  78. package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
  79. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  80. package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
  81. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  82. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +4 -8
  83. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  84. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +2 -2
  85. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  86. package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
  87. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  88. package/build/components/sidebar-navigation-screen-page/index.js +23 -4
  89. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  90. package/build/components/style-book/index.js +22 -12
  91. package/build/components/style-book/index.js.map +1 -1
  92. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  93. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  94. package/build/components/welcome-guide/page.js +2 -2
  95. package/build/components/welcome-guide/page.js.map +1 -1
  96. package/build/components/welcome-guide/template.js +6 -3
  97. package/build/components/welcome-guide/template.js.map +1 -1
  98. package/build/hooks/commands/use-edit-mode-commands.js +24 -14
  99. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  100. package/build/store/actions.js +4 -1
  101. package/build/store/actions.js.map +1 -1
  102. package/build/store/private-actions.js +2 -27
  103. package/build/store/private-actions.js.map +1 -1
  104. package/build/store/private-selectors.js +0 -23
  105. package/build/store/private-selectors.js.map +1 -1
  106. package/build/store/reducer.js +1 -40
  107. package/build/store/reducer.js.map +1 -1
  108. package/build/store/selectors.js +8 -4
  109. package/build/store/selectors.js.map +1 -1
  110. package/build/utils/constants.js +1 -12
  111. package/build/utils/constants.js.map +1 -1
  112. package/build-module/components/actions/index.js +55 -36
  113. package/build-module/components/actions/index.js.map +1 -1
  114. package/build-module/components/block-editor/site-editor-canvas.js +7 -2
  115. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  116. package/build-module/components/dataviews/add-filter.js +21 -20
  117. package/build-module/components/dataviews/add-filter.js.map +1 -1
  118. package/build-module/components/dataviews/constants.js +6 -0
  119. package/build-module/components/dataviews/constants.js.map +1 -0
  120. package/build-module/components/dataviews/dataviews.js +9 -7
  121. package/build-module/components/dataviews/dataviews.js.map +1 -1
  122. package/build-module/components/dataviews/filter-summary.js +55 -0
  123. package/build-module/components/dataviews/filter-summary.js.map +1 -0
  124. package/build-module/components/dataviews/filters.js +15 -28
  125. package/build-module/components/dataviews/filters.js.map +1 -1
  126. package/build-module/components/dataviews/item-actions.js +84 -30
  127. package/build-module/components/dataviews/item-actions.js.map +1 -1
  128. package/build-module/components/dataviews/pagination.js +4 -0
  129. package/build-module/components/dataviews/pagination.js.map +1 -1
  130. package/build-module/components/dataviews/view-actions.js +24 -24
  131. package/build-module/components/dataviews/view-actions.js.map +1 -1
  132. package/build-module/components/dataviews/view-grid.js +49 -26
  133. package/build-module/components/dataviews/view-grid.js.map +1 -1
  134. package/build-module/components/dataviews/view-list.js +28 -33
  135. package/build-module/components/dataviews/view-list.js.map +1 -1
  136. package/build-module/components/editor/index.js +26 -30
  137. package/build-module/components/editor/index.js.map +1 -1
  138. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  139. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  140. package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
  141. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  142. package/build-module/components/global-styles/header.js +4 -2
  143. package/build-module/components/global-styles/header.js.map +1 -1
  144. package/build-module/components/global-styles/screen-block-list.js +23 -17
  145. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  146. package/build-module/components/global-styles/screen-revisions/index.js +27 -6
  147. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  148. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
  149. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  150. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  151. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  152. package/build-module/components/global-styles/ui.js +28 -36
  153. package/build-module/components/global-styles/ui.js.map +1 -1
  154. package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
  155. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  156. package/build-module/components/header-edit-mode/index.js +2 -1
  157. package/build-module/components/header-edit-mode/index.js.map +1 -1
  158. package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
  159. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  160. package/build-module/components/list/added-by.js +44 -55
  161. package/build-module/components/list/added-by.js.map +1 -1
  162. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  163. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  164. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  165. package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  166. package/build-module/components/page-content-focus-notifications/index.js +14 -0
  167. package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
  168. package/build-module/components/page-pages/index.js +10 -16
  169. package/build-module/components/page-pages/index.js.map +1 -1
  170. package/build-module/components/page-patterns/use-patterns.js +1 -1
  171. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  172. package/build-module/components/page-templates/dataviews-templates.js +168 -53
  173. package/build-module/components/page-templates/dataviews-templates.js.map +1 -1
  174. package/build-module/components/preferences-modal/index.js +1 -1
  175. package/build-module/components/preferences-modal/index.js.map +1 -1
  176. package/build-module/components/save-button/index.js +11 -8
  177. package/build-module/components/save-button/index.js.map +1 -1
  178. package/build-module/components/save-hub/index.js +14 -0
  179. package/build-module/components/save-hub/index.js.map +1 -1
  180. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  181. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  182. package/build-module/components/sidebar-dataviews/default-views.js +7 -2
  183. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  184. package/build-module/components/sidebar-edit-mode/index.js +6 -5
  185. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  186. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +16 -27
  187. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  188. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
  189. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  190. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
  191. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  192. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +5 -9
  193. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  194. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  195. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  196. package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
  197. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  198. package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
  199. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  200. package/build-module/components/style-book/index.js +22 -12
  201. package/build-module/components/style-book/index.js.map +1 -1
  202. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  203. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  204. package/build-module/components/welcome-guide/page.js +2 -2
  205. package/build-module/components/welcome-guide/page.js.map +1 -1
  206. package/build-module/components/welcome-guide/template.js +6 -3
  207. package/build-module/components/welcome-guide/template.js.map +1 -1
  208. package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
  209. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  210. package/build-module/store/actions.js +4 -1
  211. package/build-module/store/actions.js.map +1 -1
  212. package/build-module/store/private-actions.js +1 -25
  213. package/build-module/store/private-actions.js.map +1 -1
  214. package/build-module/store/private-selectors.js +0 -22
  215. package/build-module/store/private-selectors.js.map +1 -1
  216. package/build-module/store/reducer.js +1 -38
  217. package/build-module/store/reducer.js.map +1 -1
  218. package/build-module/store/selectors.js +8 -4
  219. package/build-module/store/selectors.js.map +1 -1
  220. package/build-module/utils/constants.js +0 -10
  221. package/build-module/utils/constants.js.map +1 -1
  222. package/build-style/style-rtl.css +152 -62
  223. package/build-style/style.css +152 -62
  224. package/package.json +41 -41
  225. package/src/components/actions/index.js +76 -48
  226. package/src/components/block-editor/site-editor-canvas.js +8 -2
  227. package/src/components/dataviews/README.md +14 -11
  228. package/src/components/dataviews/add-filter.js +21 -24
  229. package/src/components/dataviews/constants.js +5 -0
  230. package/src/components/dataviews/dataviews.js +10 -10
  231. package/src/components/dataviews/filter-summary.js +79 -0
  232. package/src/components/dataviews/filters.js +18 -35
  233. package/src/components/dataviews/item-actions.js +106 -42
  234. package/src/components/dataviews/pagination.js +4 -0
  235. package/src/components/dataviews/style.scss +84 -8
  236. package/src/components/dataviews/view-actions.js +39 -41
  237. package/src/components/dataviews/view-grid.js +63 -38
  238. package/src/components/dataviews/view-list.js +50 -57
  239. package/src/components/editor/index.js +18 -34
  240. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  241. package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
  242. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
  243. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
  244. package/src/components/global-styles/header.js +2 -1
  245. package/src/components/global-styles/screen-block-list.js +37 -26
  246. package/src/components/global-styles/screen-revisions/index.js +39 -10
  247. package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
  248. package/src/components/global-styles/screen-revisions/style.scss +52 -28
  249. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
  250. package/src/components/global-styles/style.scss +0 -11
  251. package/src/components/global-styles/ui.js +59 -74
  252. package/src/components/header-edit-mode/document-actions/index.js +20 -18
  253. package/src/components/header-edit-mode/index.js +1 -0
  254. package/src/components/header-edit-mode/more-menu/index.js +1 -1
  255. package/src/components/list/added-by.js +23 -63
  256. package/src/components/list/style.scss +11 -13
  257. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +12 -13
  258. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  259. package/src/components/page-content-focus-notifications/index.js +14 -0
  260. package/src/components/page-pages/index.js +15 -20
  261. package/src/components/page-patterns/use-patterns.js +1 -1
  262. package/src/components/page-templates/dataviews-templates.js +169 -48
  263. package/src/components/page-templates/style.scss +13 -0
  264. package/src/components/preferences-modal/index.js +1 -1
  265. package/src/components/save-button/index.js +37 -24
  266. package/src/components/save-hub/index.js +15 -0
  267. package/src/components/save-hub/style.scss +7 -0
  268. package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -0
  269. package/src/components/sidebar-dataviews/default-views.js +7 -2
  270. package/src/components/sidebar-dataviews/style.scss +7 -0
  271. package/src/components/sidebar-edit-mode/index.js +13 -9
  272. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +33 -52
  273. package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
  274. package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
  275. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +8 -9
  276. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  277. package/src/components/sidebar-edit-mode/page-panels/style.scss +9 -19
  278. package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
  279. package/src/components/sidebar-navigation-screen/style.scss +1 -0
  280. package/src/components/sidebar-navigation-screen-page/index.js +24 -3
  281. package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
  282. package/src/components/style-book/index.js +48 -35
  283. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +69 -17
  284. package/src/components/welcome-guide/page.js +2 -2
  285. package/src/components/welcome-guide/template.js +4 -2
  286. package/src/hooks/commands/use-edit-mode-commands.js +22 -16
  287. package/src/store/actions.js +5 -1
  288. package/src/store/private-actions.js +1 -24
  289. package/src/store/private-selectors.js +0 -22
  290. package/src/store/reducer.js +0 -39
  291. package/src/store/selectors.js +12 -4
  292. package/src/store/test/actions.js +3 -32
  293. package/src/store/test/reducer.js +0 -62
  294. package/src/store/test/selectors.js +0 -35
  295. package/src/style.scss +1 -0
  296. package/src/utils/constants.js +0 -10
  297. package/build/components/dataviews/in-filter.js +0 -51
  298. package/build/components/dataviews/in-filter.js.map +0 -1
  299. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  300. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -63
  301. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  302. package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  303. package/build/components/page-content-focus-manager/index.js +0 -61
  304. package/build/components/page-content-focus-manager/index.js.map +0 -1
  305. package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
  306. package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  307. package/build-module/components/dataviews/in-filter.js +0 -42
  308. package/build-module/components/dataviews/in-filter.js.map +0 -1
  309. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  310. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -56
  311. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  312. package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  313. package/build-module/components/page-content-focus-manager/index.js +0 -52
  314. package/build-module/components/page-content-focus-manager/index.js.map +0 -1
  315. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
  316. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  317. package/src/components/dataviews/in-filter.js +0 -63
  318. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -57
  319. package/src/components/page-content-focus-manager/index.js +0 -51
  320. package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_components","_compose","_preferences","_blockEditor","_interface","_editor","_i18n","_coreData","_element","_sidebarEditMode","_codeEditor","_editMode","_inserterSidebar","_listViewSidebar","_welcomeGuide","_startTemplateOptions","_store","_globalStylesRenderer","_useTitle","_canvasLoader","_lockUnlock","_useEditedEntityRecord","_sidebarFixedBottom","_patternModal","_constants","_siteEditorCanvas","_templatePartConverter","_useSiteEditorSettings","BlockRemovalWarningModal","unlock","blockEditorPrivateApis","ExperimentalEditorProvider","EditorProvider","editorPrivateApis","interfaceLabels","body","__","sidebar","actions","footer","blockRemovalRules","Editor","listViewToggleElement","isLoading","record","editedPost","getTitle","isLoaded","hasLoadedPost","useEditedEntityRecord","type","editedPostType","context","contextPost","editorMode","canvasMode","blockEditorMode","isRightSidebarOpen","isInserterOpen","isListViewOpen","showIconLabels","showBlockBreadcrumbs","hasPageContentFocus","pageContentFocusType","useSelect","select","getEditedPostContext","getEditorMode","getCanvasMode","isInserterOpened","isListViewOpened","_hasPageContentFocus","getPageContentFocusType","editSiteStore","__unstableGetEditorMode","blockEditorStore","getActiveComplementaryArea","interfaceStore","getEntityRecord","coreDataStore","_context","postId","postType","undefined","name","preferencesStore","get","isViewMode","isEditMode","showVisualEditor","shouldShowBlockBreadcrumbs","shouldShowInserter","shouldShowListView","secondarySidebarLabel","postWithTemplate","title","_POST_TYPE_LABELS$edi","sprintf","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","useTitle","loadingProgressId","useInstanceId","CanvasLoader","settings","useSpecificEditorSettings","isReady","mode","useMemo","_react","createElement","Fragment","default","id","Notice","status","isDismissible","post","__unstableTemplate","useSubRegistry","SidebarComplementaryAreaFills","InterfaceSkeleton","isDistractionFree","enableRegionNavigation","className","classnames","notices","EditorSnackbars","content","GlobalStylesRenderer","EditorNotices","SidebarInspectorFill","BlockInspector","rules","secondarySidebar","ComplementaryArea","Slot","scope","SidebarFixedBottomSlot","BlockBreadcrumb","rootLabelText","labels"],"sources":["@wordpress/edit-site/src/components/editor/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { Notice } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tBlockBreadcrumb,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockInspector,\n} from '@wordpress/block-editor';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tEditorNotices,\n\tEditorSnackbars,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarComplementaryAreaFills,\n\tSidebarInspectorFill,\n} from '../sidebar-edit-mode';\nimport CodeEditor from '../code-editor';\nimport KeyboardShortcutsEditMode from '../keyboard-shortcuts/edit-mode';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport WelcomeGuide from '../welcome-guide';\nimport StartTemplateOptions from '../start-template-options';\nimport { store as editSiteStore } from '../../store';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport useTitle from '../routes/use-title';\nimport CanvasLoader from '../canvas-loader';\nimport { unlock } from '../../lock-unlock';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport { SidebarFixedBottomSlot } from '../sidebar-edit-mode/sidebar-fixed-bottom';\nimport PatternModal from '../pattern-modal';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport SiteEditorCanvas from '../block-editor/site-editor-canvas';\nimport TemplatePartConverter from '../template-part-converter';\nimport { useSpecificEditorSettings } from '../block-editor/use-site-editor-settings';\n\nconst { BlockRemovalWarningModal } = unlock( blockEditorPrivateApis );\nconst { ExperimentalEditorProvider: EditorProvider } =\n\tunlock( editorPrivateApis );\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\n// Prevent accidental removal of certain blocks, asking the user for\n// confirmation.\nconst blockRemovalRules = {\n\t'core/query': __( 'Query Loop displays a list of posts or pages.' ),\n\t'core/post-content': __(\n\t\t'Post Content displays the content of a post or page.'\n\t),\n\t'core/post-template': __(\n\t\t'Post Template displays each post or page in a Query Loop.'\n\t),\n};\n\nexport default function Editor( { listViewToggleElement, isLoading } ) {\n\tconst {\n\t\trecord: editedPost,\n\t\tgetTitle,\n\t\tisLoaded: hasLoadedPost,\n\t} = useEditedEntityRecord();\n\n\tconst { type: editedPostType } = editedPost;\n\n\tconst {\n\t\tcontext,\n\t\tcontextPost,\n\t\teditorMode,\n\t\tcanvasMode,\n\t\tblockEditorMode,\n\t\tisRightSidebarOpen,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tshowIconLabels,\n\t\tshowBlockBreadcrumbs,\n\t\thasPageContentFocus,\n\t\tpageContentFocusType,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEditedPostContext,\n\t\t\tgetEditorMode,\n\t\t\tgetCanvasMode,\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t\thasPageContentFocus: _hasPageContentFocus,\n\t\t\tgetPageContentFocusType,\n\t\t} = unlock( select( editSiteStore ) );\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\t\tconst { getEntityRecord } = select( coreDataStore );\n\t\tconst _context = getEditedPostContext();\n\n\t\t// The currently selected entity to display.\n\t\t// Typically template or template part in the site editor.\n\t\treturn {\n\t\t\tcontext: _context,\n\t\t\tcontextPost: _context?.postId\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t_context.postType,\n\t\t\t\t\t\t_context.postId\n\t\t\t\t )\n\t\t\t\t: undefined,\n\t\t\teditorMode: getEditorMode(),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisRightSidebarOpen: getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowIconLabels: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t\thasPageContentFocus: _hasPageContentFocus(),\n\t\t\tpageContentFocusType: getPageContentFocusType(),\n\t\t};\n\t}, [] );\n\n\tconst isViewMode = canvasMode === 'view';\n\tconst isEditMode = canvasMode === 'edit';\n\tconst showVisualEditor = isViewMode || editorMode === 'visual';\n\tconst shouldShowBlockBreadcrumbs =\n\t\tshowBlockBreadcrumbs &&\n\t\tisEditMode &&\n\t\tshowVisualEditor &&\n\t\tblockEditorMode !== 'zoom-out';\n\tconst shouldShowInserter = isEditMode && showVisualEditor && isInserterOpen;\n\tconst shouldShowListView = isEditMode && showVisualEditor && isListViewOpen;\n\tconst secondarySidebarLabel = isListViewOpen\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\tconst postWithTemplate = context?.postId;\n\n\tlet title;\n\tif ( hasLoadedPost ) {\n\t\ttitle = sprintf(\n\t\t\t// translators: A breadcrumb trail in browser tab. %1$s: title of template being edited, %2$s: type of template (Template or Template Part).\n\t\t\t__( '%1$s ‹ %2$s ‹ Editor' ),\n\t\t\tgetTitle(),\n\t\t\tPOST_TYPE_LABELS[ editedPostType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( hasLoadedPost && title );\n\n\tconst loadingProgressId = useInstanceId(\n\t\tCanvasLoader,\n\t\t'edit-site-editor__loading-progress'\n\t);\n\n\tconst settings = useSpecificEditorSettings();\n\tconst isReady =\n\t\t! isLoading &&\n\t\t( ( postWithTemplate && !! contextPost && !! editedPost ) ||\n\t\t\t( ! postWithTemplate && !! editedPost ) );\n\tconst mode = useMemo( () => {\n\t\tif ( isViewMode ) {\n\t\t\treturn postWithTemplate ? 'template-locked' : 'all';\n\t\t}\n\n\t\tif ( isEditMode && pageContentFocusType === 'hideTemplate' ) {\n\t\t\treturn 'post-only';\n\t\t}\n\n\t\tif ( postWithTemplate && hasPageContentFocus ) {\n\t\t\treturn 'template-locked';\n\t\t}\n\n\t\tif ( postWithTemplate && ! hasPageContentFocus ) {\n\t\t\treturn 'template-only';\n\t\t}\n\n\t\treturn 'all';\n\t}, [\n\t\tisViewMode,\n\t\tisEditMode,\n\t\tpostWithTemplate,\n\t\tpageContentFocusType,\n\t\thasPageContentFocus,\n\t] );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isReady ? <CanvasLoader id={ loadingProgressId } /> : null }\n\t\t\t{ isEditMode && <WelcomeGuide /> }\n\t\t\t{ hasLoadedPost && ! editedPost && (\n\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t\"You attempted to edit an item that doesn't exist. Perhaps it was deleted?\"\n\t\t\t\t\t) }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t\t{ isReady && (\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ postWithTemplate ? contextPost : editedPost }\n\t\t\t\t\t__unstableTemplate={\n\t\t\t\t\t\tpostWithTemplate ? editedPost : undefined\n\t\t\t\t\t}\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\tmode={ mode }\n\t\t\t\t>\n\t\t\t\t\t<SidebarComplementaryAreaFills />\n\t\t\t\t\t{ isEditMode && <StartTemplateOptions /> }\n\t\t\t\t\t<InterfaceSkeleton\n\t\t\t\t\t\tisDistractionFree={ true }\n\t\t\t\t\t\tenableRegionNavigation={ false }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-editor__interface-skeleton',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<GlobalStylesRenderer />\n\t\t\t\t\t\t\t\t{ isEditMode && <EditorNotices /> }\n\t\t\t\t\t\t\t\t{ showVisualEditor && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<TemplatePartConverter />\n\t\t\t\t\t\t\t\t\t\t<SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t\t\t\t\t\t</SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t<SiteEditorCanvas />\n\t\t\t\t\t\t\t\t\t\t<BlockRemovalWarningModal\n\t\t\t\t\t\t\t\t\t\t\trules={ blockRemovalRules }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<PatternModal />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ editorMode === 'text' && isEditMode && (\n\t\t\t\t\t\t\t\t\t<CodeEditor />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ isEditMode && <KeyboardShortcutsEditMode /> }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecondarySidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\t( ( shouldShowInserter && <InserterSidebar /> ) ||\n\t\t\t\t\t\t\t\t( shouldShowListView && (\n\t\t\t\t\t\t\t\t\t<ListViewSidebar\n\t\t\t\t\t\t\t\t\t\tlistViewToggleElement={\n\t\t\t\t\t\t\t\t\t\t\tlistViewToggleElement\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) ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\tisRightSidebarOpen && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t\t\t\t\t<SidebarFixedBottomSlot />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfooter={\n\t\t\t\t\t\t\tshouldShowBlockBreadcrumbs && (\n\t\t\t\t\t\t\t\t<BlockBreadcrumb\n\t\t\t\t\t\t\t\t\trootLabelText={\n\t\t\t\t\t\t\t\t\t\thasPageContentFocus\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Page' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Template' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</EditorProvider>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_components","_compose","_preferences","_blockEditor","_interface","_editor","_i18n","_coreData","_element","_sidebarEditMode","_codeEditor","_editMode","_inserterSidebar","_listViewSidebar","_welcomeGuide","_startTemplateOptions","_store","_globalStylesRenderer","_useTitle","_canvasLoader","_lockUnlock","_useEditedEntityRecord","_sidebarFixedBottom","_patternModal","_constants","_siteEditorCanvas","_templatePartConverter","_useSiteEditorSettings","BlockRemovalWarningModal","unlock","blockEditorPrivateApis","ExperimentalEditorProvider","EditorProvider","editorPrivateApis","interfaceLabels","body","__","sidebar","actions","footer","blockRemovalRules","Editor","listViewToggleElement","isLoading","record","editedPost","getTitle","isLoaded","hasLoadedPost","useEditedEntityRecord","type","editedPostType","context","contextPost","editorMode","canvasMode","renderingMode","blockEditorMode","isRightSidebarOpen","isInserterOpen","isListViewOpen","showIconLabels","showBlockBreadcrumbs","useSelect","select","getEditedPostContext","getEditorMode","getCanvasMode","isInserterOpened","isListViewOpened","editSiteStore","__unstableGetEditorMode","blockEditorStore","getActiveComplementaryArea","interfaceStore","getEntityRecord","coreDataStore","getRenderingMode","editorStore","_context","postId","postType","undefined","name","preferencesStore","get","setRenderingMode","useDispatch","isViewMode","isEditMode","showVisualEditor","shouldShowBlockBreadcrumbs","shouldShowInserter","shouldShowListView","secondarySidebarLabel","postWithTemplate","title","_POST_TYPE_LABELS$edi","sprintf","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","useTitle","loadingProgressId","useInstanceId","CanvasLoader","settings","useSpecificEditorSettings","isReady","useEffect","_react","createElement","Fragment","default","id","Notice","status","isDismissible","post","__unstableTemplate","useSubRegistry","SidebarComplementaryAreaFills","InterfaceSkeleton","isDistractionFree","enableRegionNavigation","className","classnames","notices","EditorSnackbars","content","GlobalStylesRenderer","EditorNotices","SidebarInspectorFill","BlockInspector","rules","secondarySidebar","ComplementaryArea","Slot","scope","SidebarFixedBottomSlot","BlockBreadcrumb","rootLabelText","labels"],"sources":["@wordpress/edit-site/src/components/editor/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Notice } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tBlockBreadcrumb,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockInspector,\n} from '@wordpress/block-editor';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tEditorNotices,\n\tEditorSnackbars,\n\tprivateApis as editorPrivateApis,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarComplementaryAreaFills,\n\tSidebarInspectorFill,\n} from '../sidebar-edit-mode';\nimport CodeEditor from '../code-editor';\nimport KeyboardShortcutsEditMode from '../keyboard-shortcuts/edit-mode';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport WelcomeGuide from '../welcome-guide';\nimport StartTemplateOptions from '../start-template-options';\nimport { store as editSiteStore } from '../../store';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport useTitle from '../routes/use-title';\nimport CanvasLoader from '../canvas-loader';\nimport { unlock } from '../../lock-unlock';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport { SidebarFixedBottomSlot } from '../sidebar-edit-mode/sidebar-fixed-bottom';\nimport PatternModal from '../pattern-modal';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport SiteEditorCanvas from '../block-editor/site-editor-canvas';\nimport TemplatePartConverter from '../template-part-converter';\nimport { useSpecificEditorSettings } from '../block-editor/use-site-editor-settings';\n\nconst { BlockRemovalWarningModal } = unlock( blockEditorPrivateApis );\nconst { ExperimentalEditorProvider: EditorProvider } =\n\tunlock( editorPrivateApis );\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\n// Prevent accidental removal of certain blocks, asking the user for\n// confirmation.\nconst blockRemovalRules = {\n\t'core/query': __( 'Query Loop displays a list of posts or pages.' ),\n\t'core/post-content': __(\n\t\t'Post Content displays the content of a post or page.'\n\t),\n\t'core/post-template': __(\n\t\t'Post Template displays each post or page in a Query Loop.'\n\t),\n};\n\nexport default function Editor( { listViewToggleElement, isLoading } ) {\n\tconst {\n\t\trecord: editedPost,\n\t\tgetTitle,\n\t\tisLoaded: hasLoadedPost,\n\t} = useEditedEntityRecord();\n\n\tconst { type: editedPostType } = editedPost;\n\n\tconst {\n\t\tcontext,\n\t\tcontextPost,\n\t\teditorMode,\n\t\tcanvasMode,\n\t\trenderingMode,\n\t\tblockEditorMode,\n\t\tisRightSidebarOpen,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tshowIconLabels,\n\t\tshowBlockBreadcrumbs,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEditedPostContext,\n\t\t\tgetEditorMode,\n\t\t\tgetCanvasMode,\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t} = unlock( select( editSiteStore ) );\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\t\tconst { getEntityRecord } = select( coreDataStore );\n\t\tconst { getRenderingMode } = select( editorStore );\n\t\tconst _context = getEditedPostContext();\n\n\t\t// The currently selected entity to display.\n\t\t// Typically template or template part in the site editor.\n\t\treturn {\n\t\t\tcontext: _context,\n\t\t\tcontextPost: _context?.postId\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t_context.postType,\n\t\t\t\t\t\t_context.postId\n\t\t\t\t )\n\t\t\t\t: undefined,\n\t\t\teditorMode: getEditorMode(),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\trenderingMode: getRenderingMode(),\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisRightSidebarOpen: getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowIconLabels: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst { setRenderingMode } = useDispatch( editorStore );\n\n\tconst isViewMode = canvasMode === 'view';\n\tconst isEditMode = canvasMode === 'edit';\n\tconst showVisualEditor = isViewMode || editorMode === 'visual';\n\tconst shouldShowBlockBreadcrumbs =\n\t\tshowBlockBreadcrumbs &&\n\t\tisEditMode &&\n\t\tshowVisualEditor &&\n\t\tblockEditorMode !== 'zoom-out';\n\tconst shouldShowInserter = isEditMode && showVisualEditor && isInserterOpen;\n\tconst shouldShowListView = isEditMode && showVisualEditor && isListViewOpen;\n\tconst secondarySidebarLabel = isListViewOpen\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\tconst postWithTemplate = !! context?.postId;\n\n\tlet title;\n\tif ( hasLoadedPost ) {\n\t\ttitle = sprintf(\n\t\t\t// translators: A breadcrumb trail in browser tab. %1$s: title of template being edited, %2$s: type of template (Template or Template Part).\n\t\t\t__( '%1$s ‹ %2$s ‹ Editor' ),\n\t\t\tgetTitle(),\n\t\t\tPOST_TYPE_LABELS[ editedPostType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( hasLoadedPost && title );\n\n\tconst loadingProgressId = useInstanceId(\n\t\tCanvasLoader,\n\t\t'edit-site-editor__loading-progress'\n\t);\n\n\tconst settings = useSpecificEditorSettings();\n\tconst isReady =\n\t\t! isLoading &&\n\t\t( ( postWithTemplate && !! contextPost && !! editedPost ) ||\n\t\t\t( ! postWithTemplate && !! editedPost ) );\n\n\t// This is the only reliable way I've found to reinitialize the rendering mode\n\t// when the canvas mode or the edited entity changes.\n\tuseEffect( () => {\n\t\tif ( canvasMode === 'edit' && postWithTemplate ) {\n\t\t\tsetRenderingMode( 'template-locked' );\n\t\t} else {\n\t\t\tsetRenderingMode( 'all' );\n\t\t}\n\t}, [ canvasMode, postWithTemplate, setRenderingMode ] );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isReady ? <CanvasLoader id={ loadingProgressId } /> : null }\n\t\t\t{ isEditMode && <WelcomeGuide /> }\n\t\t\t{ hasLoadedPost && ! editedPost && (\n\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t\"You attempted to edit an item that doesn't exist. Perhaps it was deleted?\"\n\t\t\t\t\t) }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t\t{ isReady && (\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ postWithTemplate ? contextPost : editedPost }\n\t\t\t\t\t__unstableTemplate={\n\t\t\t\t\t\tpostWithTemplate ? editedPost : undefined\n\t\t\t\t\t}\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t>\n\t\t\t\t\t<SidebarComplementaryAreaFills />\n\t\t\t\t\t{ isEditMode && <StartTemplateOptions /> }\n\t\t\t\t\t<InterfaceSkeleton\n\t\t\t\t\t\tisDistractionFree={ true }\n\t\t\t\t\t\tenableRegionNavigation={ false }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-editor__interface-skeleton',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<GlobalStylesRenderer />\n\t\t\t\t\t\t\t\t{ isEditMode && <EditorNotices /> }\n\t\t\t\t\t\t\t\t{ showVisualEditor && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<TemplatePartConverter />\n\t\t\t\t\t\t\t\t\t\t<SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t\t\t\t\t\t</SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t<SiteEditorCanvas />\n\t\t\t\t\t\t\t\t\t\t<BlockRemovalWarningModal\n\t\t\t\t\t\t\t\t\t\t\trules={ blockRemovalRules }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<PatternModal />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ editorMode === 'text' && isEditMode && (\n\t\t\t\t\t\t\t\t\t<CodeEditor />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ isEditMode && <KeyboardShortcutsEditMode /> }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecondarySidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\t( ( shouldShowInserter && <InserterSidebar /> ) ||\n\t\t\t\t\t\t\t\t( shouldShowListView && (\n\t\t\t\t\t\t\t\t\t<ListViewSidebar\n\t\t\t\t\t\t\t\t\t\tlistViewToggleElement={\n\t\t\t\t\t\t\t\t\t\t\tlistViewToggleElement\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) ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\tisRightSidebarOpen && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t\t\t\t\t<SidebarFixedBottomSlot />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfooter={\n\t\t\t\t\t\t\tshouldShowBlockBreadcrumbs && (\n\t\t\t\t\t\t\t\t<BlockBreadcrumb\n\t\t\t\t\t\t\t\t\trootLabelText={\n\t\t\t\t\t\t\t\t\t\tpostWithTemplate &&\n\t\t\t\t\t\t\t\t\t\trenderingMode !== 'template-only'\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Page' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Template' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</EditorProvider>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -45,7 +45,7 @@ function getIntersectingFontFaces(incoming, existing) {
45
45
  });
46
46
  });
47
47
  matches.push({
48
- ...existingFont,
48
+ ...incomingFont,
49
49
  fontFace: matchingFaces
50
50
  });
51
51
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["getIntersectingFontFaces","incoming","existing","matches","incomingFont","existingFont","find","f","slug","fontFace","matchingFaces","filter","face","fontWeight","fontStyle","push"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js"],"sourcesContent":["/**\n * Retrieves intersecting font faces between two sets of fonts.\n *\n * For each font in the `incoming` list, the function checks for a corresponding match\n * in the `existing` list based on the `slug` property. If a match is found and both\n * have `fontFace` properties, it further narrows down to matching font faces based on\n * the `fontWeight` and `fontStyle`. The result includes the properties of the matched\n * existing font but only with intersecting font faces.\n *\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} incoming - The list of fonts to compare.\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} existing - The reference list of fonts.\n *\n * @return {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} An array of fonts from the `existing` list with intersecting font faces.\n *\n * @example\n * const incomingFonts = [\n * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] },\n * { slug: 'times-new', fontFace: [{ fontWeight: '700', fontStyle: 'italic' }] }\n * ];\n *\n * const existingFonts = [\n * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }, { fontWeight: '700', fontStyle: 'italic' }] },\n * { slug: 'helvetica', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }\n * ];\n *\n * getIntersectingFontFaces(incomingFonts, existingFonts);\n * // Returns:\n * // [{ slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }]\n */\nexport default function getIntersectingFontFaces( incoming, existing ) {\n\tconst matches = [];\n\n\tfor ( const incomingFont of incoming ) {\n\t\tconst existingFont = existing.find(\n\t\t\t( f ) => f.slug === incomingFont.slug\n\t\t);\n\n\t\tif ( existingFont ) {\n\t\t\tif ( incomingFont?.fontFace ) {\n\t\t\t\tconst matchingFaces = incomingFont.fontFace.filter(\n\t\t\t\t\t( face ) => {\n\t\t\t\t\t\treturn ( existingFont?.fontFace || [] ).find( ( f ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tf.fontWeight === face.fontWeight &&\n\t\t\t\t\t\t\t\tf.fontStyle === face.fontStyle\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tmatches.push( { ...existingFont, fontFace: matchingFaces } );\n\t\t\t} else {\n\t\t\t\tmatches.push( incomingFont );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn matches;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,wBAAwBA,CAAEC,QAAQ,EAAEC,QAAQ,EAAG;EACtE,MAAMC,OAAO,GAAG,EAAE;EAElB,KAAM,MAAMC,YAAY,IAAIH,QAAQ,EAAG;IACtC,MAAMI,YAAY,GAAGH,QAAQ,CAACI,IAAI,CAC/BC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKJ,YAAY,CAACI,IAClC,CAAC;IAED,IAAKH,YAAY,EAAG;MACnB,IAAKD,YAAY,EAAEK,QAAQ,EAAG;QAC7B,MAAMC,aAAa,GAAGN,YAAY,CAACK,QAAQ,CAACE,MAAM,CAC/CC,IAAI,IAAM;UACX,OAAO,CAAEP,YAAY,EAAEI,QAAQ,IAAI,EAAE,EAAGH,IAAI,CAAIC,CAAC,IAAM;YACtD,OACCA,CAAC,CAACM,UAAU,KAAKD,IAAI,CAACC,UAAU,IAChCN,CAAC,CAACO,SAAS,KAAKF,IAAI,CAACE,SAAS;UAEhC,CAAE,CAAC;QACJ,CACD,CAAC;QACDX,OAAO,CAACY,IAAI,CAAE;UAAE,GAAGV,YAAY;UAAEI,QAAQ,EAAEC;QAAc,CAAE,CAAC;MAC7D,CAAC,MAAM;QACNP,OAAO,CAACY,IAAI,CAAEX,YAAa,CAAC;MAC7B;IACD;EACD;EAEA,OAAOD,OAAO;AACf"}
1
+ {"version":3,"names":["getIntersectingFontFaces","incoming","existing","matches","incomingFont","existingFont","find","f","slug","fontFace","matchingFaces","filter","face","fontWeight","fontStyle","push"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js"],"sourcesContent":["/**\n * Retrieves intersecting font faces between two sets of fonts.\n *\n * For each font in the `incoming` list, the function checks for a corresponding match\n * in the `existing` list based on the `slug` property. If a match is found and both\n * have `fontFace` properties, it further narrows down to matching font faces based on\n * the `fontWeight` and `fontStyle`. The result includes the properties of the matched\n * existing font but only with intersecting font faces.\n *\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} incoming - The list of fonts to compare.\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} existing - The reference list of fonts.\n *\n * @return {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} An array of fonts from the `existing` list with intersecting font faces.\n *\n * @example\n * const incomingFonts = [\n * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] },\n * { slug: 'times-new', fontFace: [{ fontWeight: '700', fontStyle: 'italic' }] }\n * ];\n *\n * const existingFonts = [\n * { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }, { fontWeight: '700', fontStyle: 'italic' }] },\n * { slug: 'helvetica', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }\n * ];\n *\n * getIntersectingFontFaces(incomingFonts, existingFonts);\n * // Returns:\n * // [{ slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }]\n */\nexport default function getIntersectingFontFaces( incoming, existing ) {\n\tconst matches = [];\n\n\tfor ( const incomingFont of incoming ) {\n\t\tconst existingFont = existing.find(\n\t\t\t( f ) => f.slug === incomingFont.slug\n\t\t);\n\n\t\tif ( existingFont ) {\n\t\t\tif ( incomingFont?.fontFace ) {\n\t\t\t\tconst matchingFaces = incomingFont.fontFace.filter(\n\t\t\t\t\t( face ) => {\n\t\t\t\t\t\treturn ( existingFont?.fontFace || [] ).find( ( f ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tf.fontWeight === face.fontWeight &&\n\t\t\t\t\t\t\t\tf.fontStyle === face.fontStyle\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tmatches.push( { ...incomingFont, fontFace: matchingFaces } );\n\t\t\t} else {\n\t\t\t\tmatches.push( incomingFont );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn matches;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,wBAAwBA,CAAEC,QAAQ,EAAEC,QAAQ,EAAG;EACtE,MAAMC,OAAO,GAAG,EAAE;EAElB,KAAM,MAAMC,YAAY,IAAIH,QAAQ,EAAG;IACtC,MAAMI,YAAY,GAAGH,QAAQ,CAACI,IAAI,CAC/BC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKJ,YAAY,CAACI,IAClC,CAAC;IAED,IAAKH,YAAY,EAAG;MACnB,IAAKD,YAAY,EAAEK,QAAQ,EAAG;QAC7B,MAAMC,aAAa,GAAGN,YAAY,CAACK,QAAQ,CAACE,MAAM,CAC/CC,IAAI,IAAM;UACX,OAAO,CAAEP,YAAY,EAAEI,QAAQ,IAAI,EAAE,EAAGH,IAAI,CAAIC,CAAC,IAAM;YACtD,OACCA,CAAC,CAACM,UAAU,KAAKD,IAAI,CAACC,UAAU,IAChCN,CAAC,CAACO,SAAS,KAAKF,IAAI,CAACE,SAAS;UAEhC,CAAE,CAAC;QACJ,CACD,CAAC;QACDX,OAAO,CAACY,IAAI,CAAE;UAAE,GAAGX,YAAY;UAAEK,QAAQ,EAAEC;QAAc,CAAE,CAAC;MAC7D,CAAC,MAAM;QACNP,OAAO,CAACY,IAAI,CAAEX,YAAa,CAAC;MAC7B;IACD;EACD;EAEA,OAAOD,OAAO;AACf"}
@@ -11,8 +11,13 @@ exports.makeFormDataFromFontFamilies = makeFormDataFromFontFamilies;
11
11
  exports.mergeFontFaces = mergeFontFaces;
12
12
  exports.mergeFontFamilies = mergeFontFamilies;
13
13
  exports.setUIValuesNeeded = setUIValuesNeeded;
14
+ exports.wpKebabCase = wpKebabCase;
15
+ var _changeCase = require("change-case");
14
16
  var _constants = require("./constants");
15
- var _previewStyles = require("./preview-styles");
17
+ /**
18
+ * External dependencies
19
+ */
20
+
16
21
  /**
17
22
  * Internal dependencies
18
23
  */
@@ -94,7 +99,7 @@ async function loadFontFaceInBrowser(fontFace, source, addTo = 'all') {
94
99
  }
95
100
 
96
101
  // eslint-disable-next-line no-undef
97
- const newFont = new FontFace((0, _previewStyles.formatFontFamily)(fontFace.fontFamily), dataSource, {
102
+ const newFont = new FontFace(fontFace.fontFamily, dataSource, {
98
103
  style: fontFace.fontStyle,
99
104
  weight: fontFace.fontWeight
100
105
  });
@@ -126,9 +131,17 @@ function getDisplaySrcFromFontFace(input, urlPrefix) {
126
131
  }
127
132
  return src;
128
133
  }
134
+
135
+ // This function replicates one behavior of _wp_to_kebab_case().
136
+ // Additional context: https://github.com/WordPress/gutenberg/issues/53695
137
+ function wpKebabCase(str) {
138
+ // If a string contains a digit followed by a number, insert a dash between them.
139
+ return (0, _changeCase.paramCase)(str).replace(/([a-zA-Z])(\d)|(\d)([a-zA-Z])/g, '$1$3-$2$4');
140
+ }
129
141
  function makeFormDataFromFontFamilies(fontFamilies) {
130
142
  const formData = new FormData();
131
143
  const newFontFamilies = fontFamilies.map((family, familyIndex) => {
144
+ family.slug = wpKebabCase(family.slug);
132
145
  if (family?.fontFace) {
133
146
  family.fontFace = family.fontFace.map((face, faceIndex) => {
134
147
  if (face.file) {
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_previewStyles","setUIValuesNeeded","font","extraValues","name","fontFamily","slug","isUrlEncoded","url","decodeURIComponent","getFontFaceVariantName","face","weightName","FONT_WEIGHTS","fontWeight","styleName","fontStyle","FONT_STYLES","mergeFontFaces","existing","incoming","map","Map","set","Array","from","values","mergeFontFamilies","has","fontFace","incomingFontFaces","restIncoming","existingFont","get","mergedFontFaces","loadFontFaceInBrowser","source","addTo","dataSource","File","arrayBuffer","newFont","FontFace","formatFontFamily","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","getDisplaySrcFromFontFace","input","urlPrefix","src","isArray","startsWith","replace","encodeURI","makeFormDataFromFontFamilies","fontFamilies","formData","FormData","newFontFamilies","family","familyIndex","faceIndex","file","fileId","append","faceWithoutFileProperty","newFace","uploadedFile","JSON","stringify"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { formatFontFamily } from './preview-styles';\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t}\n\n\t// eslint-disable-next-line no-undef\n\tconst newFont = new FontFace(\n\t\tformatFontFamily( fontFace.fontFamily ),\n\t\tdataSource,\n\t\t{\n\t\t\tstyle: fontFace.fontStyle,\n\t\t\tweight: fontFace.fontWeight,\n\t\t}\n\t);\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\nexport function getDisplaySrcFromFontFace( input, urlPrefix ) {\n\tif ( ! input ) {\n\t\treturn;\n\t}\n\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// If it is a theme font, we need to make the url absolute\n\tif ( src.startsWith( 'file:.' ) && urlPrefix ) {\n\t\tsrc = src.replace( 'file:.', urlPrefix );\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFormDataFromFontFamilies( fontFamilies ) {\n\tconst formData = new FormData();\n\tconst newFontFamilies = fontFamilies.map( ( family, familyIndex ) => {\n\t\tif ( family?.fontFace ) {\n\t\t\tfamily.fontFace = family.fontFace.map( ( face, faceIndex ) => {\n\t\t\t\tif ( face.file ) {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ familyIndex }-${ faceIndex }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, face.file, face.file.name );\n\t\t\t\t\t// remove the file object from the face object the file is referenced by the uploadedFile key\n\t\t\t\t\tconst { file, ...faceWithoutFileProperty } = face;\n\t\t\t\t\tconst newFace = {\n\t\t\t\t\t\t...faceWithoutFileProperty,\n\t\t\t\t\t\tuploadedFile: fileId,\n\t\t\t\t\t};\n\t\t\t\t\treturn newFace;\n\t\t\t\t}\n\t\t\t\treturn face;\n\t\t\t} );\n\t\t}\n\t\treturn family;\n\t} );\n\tformData.append( 'font_families', JSON.stringify( newFontFamilies ) );\n\treturn formData;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_changeCase","require","_constants","setUIValuesNeeded","font","extraValues","name","fontFamily","slug","isUrlEncoded","url","decodeURIComponent","getFontFaceVariantName","face","weightName","FONT_WEIGHTS","fontWeight","styleName","fontStyle","FONT_STYLES","mergeFontFaces","existing","incoming","map","Map","set","Array","from","values","mergeFontFamilies","has","fontFace","incomingFontFaces","restIncoming","existingFont","get","mergedFontFaces","loadFontFaceInBrowser","source","addTo","dataSource","File","arrayBuffer","newFont","FontFace","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","getDisplaySrcFromFontFace","input","urlPrefix","src","isArray","startsWith","replace","encodeURI","wpKebabCase","str","kebabCase","makeFormDataFromFontFamilies","fontFamilies","formData","FormData","newFontFamilies","family","familyIndex","faceIndex","file","fileId","append","faceWithoutFileProperty","newFace","uploadedFile","JSON","stringify"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t}\n\n\t// eslint-disable-next-line no-undef\n\tconst newFont = new FontFace( fontFace.fontFamily, dataSource, {\n\t\tstyle: fontFace.fontStyle,\n\t\tweight: fontFace.fontWeight,\n\t} );\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\nexport function getDisplaySrcFromFontFace( input, urlPrefix ) {\n\tif ( ! input ) {\n\t\treturn;\n\t}\n\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// If it is a theme font, we need to make the url absolute\n\tif ( src.startsWith( 'file:.' ) && urlPrefix ) {\n\t\tsrc = src.replace( 'file:.', urlPrefix );\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\n// This function replicates one behavior of _wp_to_kebab_case().\n// Additional context: https://github.com/WordPress/gutenberg/issues/53695\nexport function wpKebabCase( str ) {\n\t// If a string contains a digit followed by a number, insert a dash between them.\n\treturn kebabCase( str ).replace(\n\t\t/([a-zA-Z])(\\d)|(\\d)([a-zA-Z])/g,\n\t\t'$1$3-$2$4'\n\t);\n}\n\nexport function makeFormDataFromFontFamilies( fontFamilies ) {\n\tconst formData = new FormData();\n\tconst newFontFamilies = fontFamilies.map( ( family, familyIndex ) => {\n\t\tfamily.slug = wpKebabCase( family.slug );\n\t\tif ( family?.fontFace ) {\n\t\t\tfamily.fontFace = family.fontFace.map( ( face, faceIndex ) => {\n\t\t\t\tif ( face.file ) {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ familyIndex }-${ faceIndex }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, face.file, face.file.name );\n\t\t\t\t\t// remove the file object from the face object the file is referenced by the uploadedFile key\n\t\t\t\t\tconst { file, ...faceWithoutFileProperty } = face;\n\t\t\t\t\tconst newFace = {\n\t\t\t\t\t\t...faceWithoutFileProperty,\n\t\t\t\t\t\tuploadedFile: fileId,\n\t\t\t\t\t};\n\t\t\t\t\treturn newFace;\n\t\t\t\t}\n\t\t\t\treturn face;\n\t\t\t} );\n\t\t}\n\t\treturn family;\n\t} );\n\tformData.append( 'font_families', JSON.stringify( newFontFamilies ) );\n\treturn formData;\n}\n"],"mappings":"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"}
@@ -14,7 +14,8 @@ var _icons = require("@wordpress/icons");
14
14
 
15
15
  function ScreenHeader({
16
16
  title,
17
- description
17
+ description,
18
+ onBack
18
19
  }) {
19
20
  return (0, _react.createElement)(_components.__experimentalVStack, {
20
21
  spacing: 0
@@ -34,7 +35,8 @@ function ScreenHeader({
34
35
  },
35
36
  icon: (0, _i18n.isRTL)() ? _icons.chevronRight : _icons.chevronLeft,
36
37
  isSmall: true,
37
- "aria-label": (0, _i18n.__)('Navigate to the previous view')
38
+ "aria-label": (0, _i18n.__)('Navigate to the previous view'),
39
+ onClick: onBack
38
40
  }), (0, _react.createElement)(_components.__experimentalSpacer, null, (0, _react.createElement)(_components.__experimentalHeading, {
39
41
  className: "edit-site-global-styles-header",
40
42
  level: 2,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_icons","ScreenHeader","title","description","_react","createElement","__experimentalVStack","spacing","__experimentalView","__experimentalSpacer","marginBottom","paddingX","paddingY","__experimentalHStack","__experimentalNavigatorToParentButton","style","minWidth","padding","icon","isRTL","chevronRight","chevronLeft","isSmall","__","__experimentalHeading","className","level","size","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/header.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHeading as Heading,\n\t__experimentalView as View,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\n\nfunction ScreenHeader( { title, description } ) {\n\treturn (\n\t\t<VStack spacing={ 0 }>\n\t\t\t<View>\n\t\t\t\t<Spacer marginBottom={ 0 } paddingX={ 4 } paddingY={ 3 }>\n\t\t\t\t\t<HStack spacing={ 2 }>\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t// TODO: This style override is also used in ToolsPanelHeader.\n\t\t\t\t\t\t\t\t// It should be supported out-of-the-box by Button.\n\t\t\t\t\t\t\t\t{ minWidth: 24, padding: 0 }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer>\n\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Spacer>\n\t\t\t</View>\n\t\t\t{ description && (\n\t\t\t\t<p className=\"edit-site-global-styles-header__description\">\n\t\t\t\t\t{ description }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default ScreenHeader;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAZA;AACA;AACA;;AAYA,SAASG,YAAYA,CAAE;EAAEC,KAAK;EAAEC;AAAY,CAAC,EAAG;EAC/C,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACR,WAAA,CAAAS,oBAAM;IAACC,OAAO,EAAG;EAAG,GACpB,IAAAH,MAAA,CAAAC,aAAA,EAACR,WAAA,CAAAW,kBAAI,QACJ,IAAAJ,MAAA,CAAAC,aAAA,EAACR,WAAA,CAAAY,oBAAM;IAACC,YAAY,EAAG,CAAG;IAACC,QAAQ,EAAG,CAAG;IAACC,QAAQ,EAAG;EAAG,GACvD,IAAAR,MAAA,CAAAC,aAAA,EAACR,WAAA,CAAAgB,oBAAM;IAACN,OAAO,EAAG;EAAG,GACpB,IAAAH,MAAA,CAAAC,aAAA,EAACR,WAAA,CAAAiB,qCAAuB;IACvBC,KAAK;IACJ;IACA;IACA;MAAEC,QAAQ,EAAE,EAAE;MAAEC,OAAO,EAAE;IAAE,CAC3B;IACDC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,mBAAY,GAAGC,kBAAa;IAC7CC,OAAO;IACP,cAAa,IAAAC,QAAE,EAAE,+BAAgC;EAAG,CACpD,CAAC,EACF,IAAAnB,MAAA,CAAAC,aAAA,EAACR,WAAA,CAAAY,oBAAM,QACN,IAAAL,MAAA,CAAAC,aAAA,EAACR,WAAA,CAAA2B,qBAAO;IACPC,SAAS,EAAC,gCAAgC;IAC1CC,KAAK,EAAG,CAAG;IACXC,IAAI,EAAG;EAAI,GAETzB,KACM,CACF,CACD,CACD,CACH,CAAC,EACLC,WAAW,IACZ,IAAAC,MAAA,CAAAC,aAAA;IAAGoB,SAAS,EAAC;EAA6C,GACvDtB,WACA,CAEG,CAAC;AAEX;AAAC,IAAAyB,QAAA,GAEc3B,YAAY;AAAA4B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_components","require","_i18n","_icons","ScreenHeader","title","description","onBack","_react","createElement","__experimentalVStack","spacing","__experimentalView","__experimentalSpacer","marginBottom","paddingX","paddingY","__experimentalHStack","__experimentalNavigatorToParentButton","style","minWidth","padding","icon","isRTL","chevronRight","chevronLeft","isSmall","__","onClick","__experimentalHeading","className","level","size","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/header.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHeading as Heading,\n\t__experimentalView as View,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\n\nfunction ScreenHeader( { title, description, onBack } ) {\n\treturn (\n\t\t<VStack spacing={ 0 }>\n\t\t\t<View>\n\t\t\t\t<Spacer marginBottom={ 0 } paddingX={ 4 } paddingY={ 3 }>\n\t\t\t\t\t<HStack spacing={ 2 }>\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t// TODO: This style override is also used in ToolsPanelHeader.\n\t\t\t\t\t\t\t\t// It should be supported out-of-the-box by Button.\n\t\t\t\t\t\t\t\t{ minWidth: 24, padding: 0 }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer>\n\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Spacer>\n\t\t\t</View>\n\t\t\t{ description && (\n\t\t\t\t<p className=\"edit-site-global-styles-header__description\">\n\t\t\t\t\t{ description }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default ScreenHeader;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAZA;AACA;AACA;;AAYA,SAASG,YAAYA,CAAE;EAAEC,KAAK;EAAEC,WAAW;EAAEC;AAAO,CAAC,EAAG;EACvD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAU,oBAAM;IAACC,OAAO,EAAG;EAAG,GACpB,IAAAH,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAY,kBAAI,QACJ,IAAAJ,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAa,oBAAM;IAACC,YAAY,EAAG,CAAG;IAACC,QAAQ,EAAG,CAAG;IAACC,QAAQ,EAAG;EAAG,GACvD,IAAAR,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAiB,oBAAM;IAACN,OAAO,EAAG;EAAG,GACpB,IAAAH,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAkB,qCAAuB;IACvBC,KAAK;IACJ;IACA;IACA;MAAEC,QAAQ,EAAE,EAAE;MAAEC,OAAO,EAAE;IAAE,CAC3B;IACDC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,mBAAY,GAAGC,kBAAa;IAC7CC,OAAO;IACP,cAAa,IAAAC,QAAE,EAAE,+BAAgC,CAAG;IACpDC,OAAO,EAAGrB;EAAQ,CAClB,CAAC,EACF,IAAAC,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAa,oBAAM,QACN,IAAAL,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAA6B,qBAAO;IACPC,SAAS,EAAC,gCAAgC;IAC1CC,KAAK,EAAG,CAAG;IACXC,IAAI,EAAG;EAAI,GAET3B,KACM,CACF,CACD,CACD,CACH,CAAC,EACLC,WAAW,IACZ,IAAAE,MAAA,CAAAC,aAAA;IAAGqB,SAAS,EAAC;EAA6C,GACvDxB,WACA,CAEG,CAAC;AAEX;AAAC,IAAA2B,QAAA,GAEc7B,YAAY;AAAA8B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -91,17 +91,15 @@ function BlockMenuItem({
91
91
  icon: block.icon
92
92
  }), (0, _react.createElement)(_components.FlexItem, null, block.title)));
93
93
  }
94
- function ScreenBlockList() {
94
+ function BlockList({
95
+ filterValue
96
+ }) {
95
97
  const sortedBlockTypes = useSortedBlockTypes();
96
- const [filterValue, setFilterValue] = (0, _element.useState)('');
97
98
  const debouncedSpeak = (0, _compose.useDebounce)(_a11y.speak, 500);
98
- const isMatchingSearchTerm = (0, _data.useSelect)(select => select(_blocks.store).isMatchingSearchTerm, []);
99
- const filteredBlockTypes = (0, _element.useMemo)(() => {
100
- if (!filterValue) {
101
- return sortedBlockTypes;
102
- }
103
- return sortedBlockTypes.filter(blockType => isMatchingSearchTerm(blockType, filterValue));
104
- }, [filterValue, sortedBlockTypes, isMatchingSearchTerm]);
99
+ const {
100
+ isMatchingSearchTerm
101
+ } = (0, _data.useSelect)(_blocks.store);
102
+ const filteredBlockTypes = !filterValue ? sortedBlockTypes : sortedBlockTypes.filter(blockType => isMatchingSearchTerm(blockType, filterValue));
105
103
  const blockTypesListRef = (0, _element.useRef)();
106
104
 
107
105
  // Announce search results on change
@@ -122,6 +120,18 @@ function ScreenBlockList() {
122
120
  (0, _i18n._n)('%d result found.', '%d results found.', count), count);
123
121
  debouncedSpeak(resultsFoundMessage, count);
124
122
  }, [filterValue, debouncedSpeak]);
123
+ return (0, _react.createElement)("div", {
124
+ ref: blockTypesListRef,
125
+ className: "edit-site-block-types-item-list"
126
+ }, filteredBlockTypes.map(block => (0, _react.createElement)(BlockMenuItem, {
127
+ block: block,
128
+ key: 'menu-itemblock-' + block.name
129
+ })));
130
+ }
131
+ const MemoizedBlockList = (0, _element.memo)(BlockList);
132
+ function ScreenBlockList() {
133
+ const [filterValue, setFilterValue] = (0, _element.useState)('');
134
+ const deferredFilterValue = (0, _element.useDeferredValue)(filterValue);
125
135
  return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_header.default, {
126
136
  title: (0, _i18n.__)('Blocks'),
127
137
  description: (0, _i18n.__)('Customize the appearance of specific blocks and for the whole site.')
@@ -132,13 +142,9 @@ function ScreenBlockList() {
132
142
  value: filterValue,
133
143
  label: (0, _i18n.__)('Search for blocks'),
134
144
  placeholder: (0, _i18n.__)('Search')
135
- }), (0, _react.createElement)("div", {
136
- ref: blockTypesListRef,
137
- className: "edit-site-block-types-item-list"
138
- }, filteredBlockTypes.map(block => (0, _react.createElement)(BlockMenuItem, {
139
- block: block,
140
- key: 'menu-itemblock-' + block.name
141
- }))));
145
+ }), (0, _react.createElement)(MemoizedBlockList, {
146
+ filterValue: deferredFilterValue
147
+ }));
142
148
  }
143
149
  var _default = ScreenBlockList;
144
150
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_i18n","_components","_data","_element","_blockEditor","_compose","_a11y","_variationsPanel","_header","_interopRequireDefault","_navigationButton","_lockUnlock","useHasDimensionsPanel","useHasTypographyPanel","useHasBorderPanel","useGlobalSetting","useSettingsForBlockElement","useHasColorPanel","unlock","blockEditorPrivateApis","useSortedBlockTypes","blockItems","useSelect","select","blocksStore","getBlockTypes","groupByType","blocks","block","core","noncore","type","name","startsWith","push","coreItems","nonCoreItems","reduce","useBlockHasGlobalStyles","blockName","rawSettings","settings","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasLayoutPanel","hasVariationsPanel","useBlockVariations","length","hasGlobalStyles","BlockMenuItem","hasBlockMenuItem","navigationButtonLabel","sprintf","__","title","_react","createElement","NavigationButtonAsItem","path","encodeURIComponent","__experimentalHStack","justify","BlockIcon","icon","FlexItem","ScreenBlockList","sortedBlockTypes","filterValue","setFilterValue","useState","debouncedSpeak","useDebounce","speak","isMatchingSearchTerm","filteredBlockTypes","useMemo","filter","blockType","blockTypesListRef","useRef","useEffect","count","current","childElementCount","resultsFoundMessage","_n","Fragment","default","description","SearchControl","__nextHasNoMarginBottom","className","onChange","value","label","placeholder","ref","map","key","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-block-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport {\n\tFlexItem,\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo, useEffect, useRef } from '@wordpress/element';\nimport {\n\tBlockIcon,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { useBlockVariations } from './variations-panel';\nimport ScreenHeader from './header';\nimport { NavigationButtonAsItem } from './navigation-button';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tuseHasDimensionsPanel,\n\tuseHasTypographyPanel,\n\tuseHasBorderPanel,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n\tuseHasColorPanel,\n} = unlock( blockEditorPrivateApis );\n\nfunction useSortedBlockTypes() {\n\tconst blockItems = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\t// Ensure core blocks are prioritized in the returned results,\n\t// because third party blocks can be registered earlier than\n\t// the core blocks (usually by using the `init` action),\n\t// thus affecting the display order.\n\t// We don't sort reusable blocks as they are handled differently.\n\tconst groupByType = ( blocks, block ) => {\n\t\tconst { core, noncore } = blocks;\n\t\tconst type = block.name.startsWith( 'core/' ) ? core : noncore;\n\t\ttype.push( block );\n\t\treturn blocks;\n\t};\n\tconst { core: coreItems, noncore: nonCoreItems } = blockItems.reduce(\n\t\tgroupByType,\n\t\t{ core: [], noncore: [] }\n\t);\n\treturn [ ...coreItems, ...nonCoreItems ];\n}\n\nexport function useBlockHasGlobalStyles( blockName ) {\n\tconst [ rawSettings ] = useGlobalSetting( '', blockName );\n\tconst settings = useSettingsForBlockElement( rawSettings, blockName );\n\tconst hasTypographyPanel = useHasTypographyPanel( settings );\n\tconst hasColorPanel = useHasColorPanel( settings );\n\tconst hasBorderPanel = useHasBorderPanel( settings );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( settings );\n\tconst hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;\n\tconst hasVariationsPanel = !! useBlockVariations( blockName )?.length;\n\tconst hasGlobalStyles =\n\t\thasTypographyPanel ||\n\t\thasColorPanel ||\n\t\thasLayoutPanel ||\n\t\thasVariationsPanel;\n\treturn hasGlobalStyles;\n}\n\nfunction BlockMenuItem( { block } ) {\n\tconst hasBlockMenuItem = useBlockHasGlobalStyles( block.name );\n\tif ( ! hasBlockMenuItem ) {\n\t\treturn null;\n\t}\n\n\tconst navigationButtonLabel = sprintf(\n\t\t// translators: %s: is the name of a block e.g., 'Image' or 'Table'.\n\t\t__( '%s block styles' ),\n\t\tblock.title\n\t);\n\n\treturn (\n\t\t<NavigationButtonAsItem\n\t\t\tpath={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\taria-label={ navigationButtonLabel }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ block.icon } />\n\t\t\t\t<FlexItem>{ block.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</NavigationButtonAsItem>\n\t);\n}\n\nfunction ScreenBlockList() {\n\tconst sortedBlockTypes = useSortedBlockTypes();\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst isMatchingSearchTerm = useSelect(\n\t\t( select ) => select( blocksStore ).isMatchingSearchTerm,\n\t\t[]\n\t);\n\tconst filteredBlockTypes = useMemo( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn sortedBlockTypes;\n\t\t}\n\t\treturn sortedBlockTypes.filter( ( blockType ) =>\n\t\t\tisMatchingSearchTerm( blockType, filterValue )\n\t\t);\n\t}, [ filterValue, sortedBlockTypes, isMatchingSearchTerm ] );\n\n\tconst blockTypesListRef = useRef();\n\n\t// Announce search results on change\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\t// We extract the results from the wrapper div's `ref` because\n\t\t// filtered items can contain items that will eventually not\n\t\t// render and there is no reliable way to detect when a child\n\t\t// will return `null`.\n\t\t// TODO: We should find a better way of handling this as it's\n\t\t// fragile and depends on the number of rendered elements of `BlockMenuItem`,\n\t\t// which is now one.\n\t\t// @see https://github.com/WordPress/gutenberg/pull/39117#discussion_r816022116\n\t\tconst count = blockTypesListRef.current.childElementCount;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage, count );\n\t}, [ filterValue, debouncedSpeak ] );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Blocks' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Customize the appearance of specific blocks and for the whole site.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tclassName=\"edit-site-block-types-search\"\n\t\t\t\tonChange={ setFilterValue }\n\t\t\t\tvalue={ filterValue }\n\t\t\t\tlabel={ __( 'Search for blocks' ) }\n\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tref={ blockTypesListRef }\n\t\t\t\tclassName=\"edit-site-block-types-item-list\"\n\t\t\t>\n\t\t\t\t{ filteredBlockTypes.map( ( block ) => (\n\t\t\t\t\t<BlockMenuItem\n\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\tkey={ 'menu-itemblock-' + block.name }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ScreenBlockList;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_blocks","require","_i18n","_components","_data","_element","_blockEditor","_compose","_a11y","_variationsPanel","_header","_interopRequireDefault","_navigationButton","_lockUnlock","useHasDimensionsPanel","useHasTypographyPanel","useHasBorderPanel","useGlobalSetting","useSettingsForBlockElement","useHasColorPanel","unlock","blockEditorPrivateApis","useSortedBlockTypes","blockItems","useSelect","select","blocksStore","getBlockTypes","groupByType","blocks","block","core","noncore","type","name","startsWith","push","coreItems","nonCoreItems","reduce","useBlockHasGlobalStyles","blockName","rawSettings","settings","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasLayoutPanel","hasVariationsPanel","useBlockVariations","length","hasGlobalStyles","BlockMenuItem","hasBlockMenuItem","navigationButtonLabel","sprintf","__","title","_react","createElement","NavigationButtonAsItem","path","encodeURIComponent","__experimentalHStack","justify","BlockIcon","icon","FlexItem","BlockList","filterValue","sortedBlockTypes","debouncedSpeak","useDebounce","speak","isMatchingSearchTerm","filteredBlockTypes","filter","blockType","blockTypesListRef","useRef","useEffect","count","current","childElementCount","resultsFoundMessage","_n","ref","className","map","key","MemoizedBlockList","memo","ScreenBlockList","setFilterValue","useState","deferredFilterValue","useDeferredValue","Fragment","default","description","SearchControl","__nextHasNoMarginBottom","onChange","value","label","placeholder","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-block-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport {\n\tFlexItem,\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseDeferredValue,\n\tmemo,\n} from '@wordpress/element';\nimport {\n\tBlockIcon,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { useBlockVariations } from './variations-panel';\nimport ScreenHeader from './header';\nimport { NavigationButtonAsItem } from './navigation-button';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tuseHasDimensionsPanel,\n\tuseHasTypographyPanel,\n\tuseHasBorderPanel,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n\tuseHasColorPanel,\n} = unlock( blockEditorPrivateApis );\n\nfunction useSortedBlockTypes() {\n\tconst blockItems = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\t// Ensure core blocks are prioritized in the returned results,\n\t// because third party blocks can be registered earlier than\n\t// the core blocks (usually by using the `init` action),\n\t// thus affecting the display order.\n\t// We don't sort reusable blocks as they are handled differently.\n\tconst groupByType = ( blocks, block ) => {\n\t\tconst { core, noncore } = blocks;\n\t\tconst type = block.name.startsWith( 'core/' ) ? core : noncore;\n\t\ttype.push( block );\n\t\treturn blocks;\n\t};\n\tconst { core: coreItems, noncore: nonCoreItems } = blockItems.reduce(\n\t\tgroupByType,\n\t\t{ core: [], noncore: [] }\n\t);\n\treturn [ ...coreItems, ...nonCoreItems ];\n}\n\nexport function useBlockHasGlobalStyles( blockName ) {\n\tconst [ rawSettings ] = useGlobalSetting( '', blockName );\n\tconst settings = useSettingsForBlockElement( rawSettings, blockName );\n\tconst hasTypographyPanel = useHasTypographyPanel( settings );\n\tconst hasColorPanel = useHasColorPanel( settings );\n\tconst hasBorderPanel = useHasBorderPanel( settings );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( settings );\n\tconst hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;\n\tconst hasVariationsPanel = !! useBlockVariations( blockName )?.length;\n\tconst hasGlobalStyles =\n\t\thasTypographyPanel ||\n\t\thasColorPanel ||\n\t\thasLayoutPanel ||\n\t\thasVariationsPanel;\n\treturn hasGlobalStyles;\n}\n\nfunction BlockMenuItem( { block } ) {\n\tconst hasBlockMenuItem = useBlockHasGlobalStyles( block.name );\n\tif ( ! hasBlockMenuItem ) {\n\t\treturn null;\n\t}\n\n\tconst navigationButtonLabel = sprintf(\n\t\t// translators: %s: is the name of a block e.g., 'Image' or 'Table'.\n\t\t__( '%s block styles' ),\n\t\tblock.title\n\t);\n\n\treturn (\n\t\t<NavigationButtonAsItem\n\t\t\tpath={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\taria-label={ navigationButtonLabel }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ block.icon } />\n\t\t\t\t<FlexItem>{ block.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</NavigationButtonAsItem>\n\t);\n}\n\nfunction BlockList( { filterValue } ) {\n\tconst sortedBlockTypes = useSortedBlockTypes();\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst { isMatchingSearchTerm } = useSelect( blocksStore );\n\n\tconst filteredBlockTypes = ! filterValue\n\t\t? sortedBlockTypes\n\t\t: sortedBlockTypes.filter( ( blockType ) =>\n\t\t\t\tisMatchingSearchTerm( blockType, filterValue )\n\t\t );\n\n\tconst blockTypesListRef = useRef();\n\n\t// Announce search results on change\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\t// We extract the results from the wrapper div's `ref` because\n\t\t// filtered items can contain items that will eventually not\n\t\t// render and there is no reliable way to detect when a child\n\t\t// will return `null`.\n\t\t// TODO: We should find a better way of handling this as it's\n\t\t// fragile and depends on the number of rendered elements of `BlockMenuItem`,\n\t\t// which is now one.\n\t\t// @see https://github.com/WordPress/gutenberg/pull/39117#discussion_r816022116\n\t\tconst count = blockTypesListRef.current.childElementCount;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage, count );\n\t}, [ filterValue, debouncedSpeak ] );\n\n\treturn (\n\t\t<div\n\t\t\tref={ blockTypesListRef }\n\t\t\tclassName=\"edit-site-block-types-item-list\"\n\t\t>\n\t\t\t{ filteredBlockTypes.map( ( block ) => (\n\t\t\t\t<BlockMenuItem\n\t\t\t\t\tblock={ block }\n\t\t\t\t\tkey={ 'menu-itemblock-' + block.name }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</div>\n\t);\n}\n\nconst MemoizedBlockList = memo( BlockList );\n\nfunction ScreenBlockList() {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst deferredFilterValue = useDeferredValue( filterValue );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Blocks' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Customize the appearance of specific blocks and for the whole site.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tclassName=\"edit-site-block-types-search\"\n\t\t\t\tonChange={ setFilterValue }\n\t\t\t\tvalue={ filterValue }\n\t\t\t\tlabel={ __( 'Search for blocks' ) }\n\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t/>\n\t\t\t<MemoizedBlockList filterValue={ deferredFilterValue } />\n\t\t</>\n\t);\n}\n\nexport default ScreenBlockList;\n"],"mappings":"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"}
@@ -9,6 +9,7 @@ var _react = require("react");
9
9
  var _i18n = require("@wordpress/i18n");
10
10
  var _components = require("@wordpress/components");
11
11
  var _data = require("@wordpress/data");
12
+ var _coreData = require("@wordpress/core-data");
12
13
  var _element = require("@wordpress/element");
13
14
  var _blockEditor = require("@wordpress/block-editor");
14
15
  var _header = _interopRequireDefault(require("../header"));
@@ -40,11 +41,28 @@ function ScreenRevisions() {
40
41
  } = (0, _element.useContext)(GlobalStylesContext);
41
42
  const {
42
43
  blocks,
43
- editorCanvasContainerView
44
+ editorCanvasContainerView,
45
+ revisionsCount
44
46
  } = (0, _data.useSelect)(select => {
47
+ const {
48
+ getEntityRecord,
49
+ __experimentalGetCurrentGlobalStylesId,
50
+ __experimentalGetDirtyEntityRecords
51
+ } = select(_coreData.store);
52
+ const isDirty = __experimentalGetDirtyEntityRecords().length > 0;
53
+ const globalStylesId = __experimentalGetCurrentGlobalStylesId();
54
+ const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
55
+ let _revisionsCount = globalStyles?._links?.['version-history']?.[0]?.count || 0;
56
+ // one for the reset item.
57
+ _revisionsCount++;
58
+ // one for any dirty changes (unsaved).
59
+ if (isDirty) {
60
+ _revisionsCount++;
61
+ }
45
62
  return {
46
63
  editorCanvasContainerView: (0, _lockUnlock.unlock)(select(_store.store)).getEditorCanvasContainerView(),
47
- blocks: select(_blockEditor.store).getBlocks()
64
+ blocks: select(_blockEditor.store).getBlocks(),
65
+ revisionsCount: _revisionsCount
48
66
  };
49
67
  }, []);
50
68
  const {
@@ -60,8 +78,8 @@ function ScreenRevisions() {
60
78
  const selectedRevisionMatchesEditorStyles = areGlobalStyleConfigsEqual(currentlySelectedRevision, currentEditorGlobalStyles);
61
79
  const onCloseRevisions = () => {
62
80
  goTo('/'); // Return to global styles main panel.
81
+ setEditorCanvasContainerView(undefined);
63
82
  };
64
-
65
83
  const restoreRevision = revision => {
66
84
  setUserConfig(() => ({
67
85
  styles: revision?.styles,
@@ -107,8 +125,11 @@ function ScreenRevisions() {
107
125
  const isLoadButtonEnabled = !!currentlySelectedRevisionId && !selectedRevisionMatchesEditorStyles;
108
126
  const shouldShowRevisions = !isLoading && revisions.length;
109
127
  return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_header.default, {
110
- title: (0, _i18n.__)('Revisions'),
111
- description: (0, _i18n.__)('Click on previously saved styles to preview them. To restore a selected version to the editor, hit "Apply." When you\'re ready, use the Save button to save your changes.')
128
+ title: revisionsCount &&
129
+ // translators: %s: number of revisions.
130
+ (0, _i18n.sprintf)((0, _i18n.__)('Revisions (%s)'), revisionsCount),
131
+ description: (0, _i18n.__)('Click on previously saved styles to preview them. To restore a selected version to the editor, hit "Apply." When you\'re ready, use the Save button to save your changes.'),
132
+ onBack: onCloseRevisions
112
133
  }), isLoading && (0, _react.createElement)(_components.Spinner, {
113
134
  className: "edit-site-global-styles-screen-revisions__loading"
114
135
  }), shouldShowRevisions ? (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_revisions.default, {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_data","_element","_blockEditor","_header","_interopRequireDefault","_lockUnlock","_revisions","_sidebarFixedBottom","_store","_useGlobalStylesRevisions","_revisionsButtons","GlobalStylesContext","areGlobalStyleConfigsEqual","unlock","blockEditorPrivateApis","ScreenRevisions","goTo","useNavigator","user","currentEditorGlobalStyles","setUserConfig","useContext","blocks","editorCanvasContainerView","useSelect","select","editSiteStore","getEditorCanvasContainerView","blockEditorStore","getBlocks","revisions","isLoading","hasUnsavedChanges","useGlobalStylesRevisions","currentlySelectedRevision","setCurrentlySelectedRevision","useState","isLoadingRevisionWithUnsavedChanges","setIsLoadingRevisionWithUnsavedChanges","setEditorCanvasContainerView","useDispatch","selectedRevisionMatchesEditorStyles","onCloseRevisions","restoreRevision","revision","styles","settings","selectRevision","id","useEffect","firstRevision","currentlySelectedRevisionId","shouldSelectFirstItem","isLoadButtonEnabled","shouldShowRevisions","length","_react","createElement","Fragment","default","title","__","description","Spinner","className","userConfig","onClose","onChange","selectedRevisionId","userRevisions","Button","variant","disabled","onClick","__experimentalConfirmDialog","isOpen","confirmButtonText","onConfirm","onCancel","__experimentalSpacer","marginX","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tSpinner,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext, useState, useEffect } from '@wordpress/element';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from '../header';\nimport { unlock } from '../../../lock-unlock';\nimport Revisions from '../../revisions';\nimport SidebarFixedBottom from '../../sidebar-edit-mode/sidebar-fixed-bottom';\nimport { store as editSiteStore } from '../../../store';\nimport useGlobalStylesRevisions from './use-global-styles-revisions';\nimport RevisionsButtons from './revisions-buttons';\n\nconst { GlobalStylesContext, areGlobalStyleConfigsEqual } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction ScreenRevisions() {\n\tconst { goTo } = useNavigator();\n\tconst { user: currentEditorGlobalStyles, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\tconst { blocks, editorCanvasContainerView } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\teditorCanvasContainerView: unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t).getEditorCanvasContainerView(),\n\t\t\tblocks: select( blockEditorStore ).getBlocks(),\n\t\t};\n\t}, [] );\n\tconst { revisions, isLoading, hasUnsavedChanges } =\n\t\tuseGlobalStylesRevisions();\n\tconst [ currentlySelectedRevision, setCurrentlySelectedRevision ] =\n\t\tuseState( currentEditorGlobalStyles );\n\tconst [\n\t\tisLoadingRevisionWithUnsavedChanges,\n\t\tsetIsLoadingRevisionWithUnsavedChanges,\n\t] = useState( false );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst selectedRevisionMatchesEditorStyles = areGlobalStyleConfigsEqual(\n\t\tcurrentlySelectedRevision,\n\t\tcurrentEditorGlobalStyles\n\t);\n\n\tconst onCloseRevisions = () => {\n\t\tgoTo( '/' ); // Return to global styles main panel.\n\t};\n\n\tconst restoreRevision = ( revision ) => {\n\t\tsetUserConfig( () => ( {\n\t\t\tstyles: revision?.styles,\n\t\t\tsettings: revision?.settings,\n\t\t} ) );\n\t\tsetIsLoadingRevisionWithUnsavedChanges( false );\n\t\tonCloseRevisions();\n\t};\n\n\tconst selectRevision = ( revision ) => {\n\t\tsetCurrentlySelectedRevision( {\n\t\t\tstyles: revision?.styles || {},\n\t\t\tsettings: revision?.settings || {},\n\t\t\tid: revision?.id,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( editorCanvasContainerView !== 'global-styles-revisions' ) {\n\t\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\t\tsetEditorCanvasContainerView( editorCanvasContainerView );\n\t\t}\n\t}, [ editorCanvasContainerView ] );\n\n\tconst firstRevision = revisions[ 0 ];\n\tconst currentlySelectedRevisionId = currentlySelectedRevision?.id;\n\tconst shouldSelectFirstItem =\n\t\t!! firstRevision?.id &&\n\t\t! selectedRevisionMatchesEditorStyles &&\n\t\t! currentlySelectedRevisionId;\n\n\tuseEffect( () => {\n\t\t/*\n\t\t * Ensure that the first item is selected and loaded into the preview pane\n\t\t * when no revision is selected and the selected styles don't match the current editor styles.\n\t\t * This is required in case editor styles are changed outside the revisions panel,\n\t\t * e.g., via the reset styles function of useGlobalStylesReset().\n\t\t * See: https://github.com/WordPress/gutenberg/issues/55866\n\t\t */\n\t\tif ( shouldSelectFirstItem ) {\n\t\t\tsetCurrentlySelectedRevision( {\n\t\t\t\tstyles: firstRevision?.styles || {},\n\t\t\t\tsettings: firstRevision?.settings || {},\n\t\t\t\tid: firstRevision?.id,\n\t\t\t} );\n\t\t}\n\t}, [ shouldSelectFirstItem, firstRevision ] );\n\n\t// Only display load button if there is a revision to load and it is different from the current editor styles.\n\tconst isLoadButtonEnabled =\n\t\t!! currentlySelectedRevisionId && ! selectedRevisionMatchesEditorStyles;\n\tconst shouldShowRevisions = ! isLoading && revisions.length;\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Revisions' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Click on previously saved styles to preview them. To restore a selected version to the editor, hit \"Apply.\" When you\\'re ready, use the Save button to save your changes.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t{ isLoading && (\n\t\t\t\t<Spinner className=\"edit-site-global-styles-screen-revisions__loading\" />\n\t\t\t) }\n\t\t\t{ shouldShowRevisions ? (\n\t\t\t\t<>\n\t\t\t\t\t<Revisions\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tonClose={ onCloseRevisions }\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"edit-site-global-styles-screen-revisions\">\n\t\t\t\t\t\t<RevisionsButtons\n\t\t\t\t\t\t\tonChange={ selectRevision }\n\t\t\t\t\t\t\tselectedRevisionId={ currentlySelectedRevisionId }\n\t\t\t\t\t\t\tuserRevisions={ revisions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ isLoadButtonEnabled && (\n\t\t\t\t\t\t\t<SidebarFixedBottom>\n\t\t\t\t\t\t\t\t<Button\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__button\"\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t! currentlySelectedRevisionId ||\n\t\t\t\t\t\t\t\t\t\tcurrentlySelectedRevisionId ===\n\t\t\t\t\t\t\t\t\t\t\t'unsaved'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tif ( hasUnsavedChanges ) {\n\t\t\t\t\t\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges(\n\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\trestoreRevision(\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentlySelectedRevision\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>\n\t\t\t\t\t\t\t\t\t{ currentlySelectedRevisionId === 'parent'\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</SidebarFixedBottom>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ isLoadingRevisionWithUnsavedChanges && (\n\t\t\t\t\t\t<ConfirmDialog\n\t\t\t\t\t\t\tisOpen={ isLoadingRevisionWithUnsavedChanges }\n\t\t\t\t\t\t\tconfirmButtonText={ __( 'Apply' ) }\n\t\t\t\t\t\t\tonConfirm={ () =>\n\t\t\t\t\t\t\t\trestoreRevision( currentlySelectedRevision )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonCancel={ () =>\n\t\t\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges( false )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Any unsaved changes will be lost when you apply this revision.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ConfirmDialog>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<Spacer marginX={ 4 } data-testid=\"global-styles-no-revisions\">\n\t\t\t\t\t{\n\t\t\t\t\t\t// Adding an existing translation here in case these changes are shipped to WordPress 6.3.\n\t\t\t\t\t\t// Later we could update to something better, e.g., \"There are currently no style revisions.\".\n\t\t\t\t\t\t__( 'No results found.' )\n\t\t\t\t\t}\n\t\t\t\t</Spacer>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenRevisions;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_components","_data","_coreData","_element","_blockEditor","_header","_interopRequireDefault","_lockUnlock","_revisions","_sidebarFixedBottom","_store","_useGlobalStylesRevisions","_revisionsButtons","GlobalStylesContext","areGlobalStyleConfigsEqual","unlock","blockEditorPrivateApis","ScreenRevisions","goTo","useNavigator","user","currentEditorGlobalStyles","setUserConfig","useContext","blocks","editorCanvasContainerView","revisionsCount","useSelect","select","getEntityRecord","__experimentalGetCurrentGlobalStylesId","__experimentalGetDirtyEntityRecords","coreStore","isDirty","length","globalStylesId","globalStyles","undefined","_revisionsCount","_links","count","editSiteStore","getEditorCanvasContainerView","blockEditorStore","getBlocks","revisions","isLoading","hasUnsavedChanges","useGlobalStylesRevisions","currentlySelectedRevision","setCurrentlySelectedRevision","useState","isLoadingRevisionWithUnsavedChanges","setIsLoadingRevisionWithUnsavedChanges","setEditorCanvasContainerView","useDispatch","selectedRevisionMatchesEditorStyles","onCloseRevisions","restoreRevision","revision","styles","settings","selectRevision","id","useEffect","firstRevision","currentlySelectedRevisionId","shouldSelectFirstItem","isLoadButtonEnabled","shouldShowRevisions","_react","createElement","Fragment","default","title","sprintf","__","description","onBack","Spinner","className","userConfig","onClose","onChange","selectedRevisionId","userRevisions","Button","variant","disabled","onClick","__experimentalConfirmDialog","isOpen","confirmButtonText","onConfirm","onCancel","__experimentalSpacer","marginX","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tSpinner,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useContext, useState, useEffect } from '@wordpress/element';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from '../header';\nimport { unlock } from '../../../lock-unlock';\nimport Revisions from '../../revisions';\nimport SidebarFixedBottom from '../../sidebar-edit-mode/sidebar-fixed-bottom';\nimport { store as editSiteStore } from '../../../store';\nimport useGlobalStylesRevisions from './use-global-styles-revisions';\nimport RevisionsButtons from './revisions-buttons';\n\nconst { GlobalStylesContext, areGlobalStyleConfigsEqual } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction ScreenRevisions() {\n\tconst { goTo } = useNavigator();\n\tconst { user: currentEditorGlobalStyles, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\tconst { blocks, editorCanvasContainerView, revisionsCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t} = select( coreStore );\n\t\t\tconst isDirty = __experimentalGetDirtyEntityRecords().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\tlet _revisionsCount =\n\t\t\t\tglobalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count || 0;\n\t\t\t// one for the reset item.\n\t\t\t_revisionsCount++;\n\t\t\t// one for any dirty changes (unsaved).\n\t\t\tif ( isDirty ) {\n\t\t\t\t_revisionsCount++;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\teditorCanvasContainerView: unlock(\n\t\t\t\t\tselect( editSiteStore )\n\t\t\t\t).getEditorCanvasContainerView(),\n\t\t\t\tblocks: select( blockEditorStore ).getBlocks(),\n\t\t\t\trevisionsCount: _revisionsCount,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst { revisions, isLoading, hasUnsavedChanges } =\n\t\tuseGlobalStylesRevisions();\n\tconst [ currentlySelectedRevision, setCurrentlySelectedRevision ] =\n\t\tuseState( currentEditorGlobalStyles );\n\tconst [\n\t\tisLoadingRevisionWithUnsavedChanges,\n\t\tsetIsLoadingRevisionWithUnsavedChanges,\n\t] = useState( false );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst selectedRevisionMatchesEditorStyles = areGlobalStyleConfigsEqual(\n\t\tcurrentlySelectedRevision,\n\t\tcurrentEditorGlobalStyles\n\t);\n\n\tconst onCloseRevisions = () => {\n\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\tsetEditorCanvasContainerView( undefined );\n\t};\n\n\tconst restoreRevision = ( revision ) => {\n\t\tsetUserConfig( () => ( {\n\t\t\tstyles: revision?.styles,\n\t\t\tsettings: revision?.settings,\n\t\t} ) );\n\t\tsetIsLoadingRevisionWithUnsavedChanges( false );\n\t\tonCloseRevisions();\n\t};\n\n\tconst selectRevision = ( revision ) => {\n\t\tsetCurrentlySelectedRevision( {\n\t\t\tstyles: revision?.styles || {},\n\t\t\tsettings: revision?.settings || {},\n\t\t\tid: revision?.id,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( editorCanvasContainerView !== 'global-styles-revisions' ) {\n\t\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\t\tsetEditorCanvasContainerView( editorCanvasContainerView );\n\t\t}\n\t}, [ editorCanvasContainerView ] );\n\n\tconst firstRevision = revisions[ 0 ];\n\tconst currentlySelectedRevisionId = currentlySelectedRevision?.id;\n\tconst shouldSelectFirstItem =\n\t\t!! firstRevision?.id &&\n\t\t! selectedRevisionMatchesEditorStyles &&\n\t\t! currentlySelectedRevisionId;\n\n\tuseEffect( () => {\n\t\t/*\n\t\t * Ensure that the first item is selected and loaded into the preview pane\n\t\t * when no revision is selected and the selected styles don't match the current editor styles.\n\t\t * This is required in case editor styles are changed outside the revisions panel,\n\t\t * e.g., via the reset styles function of useGlobalStylesReset().\n\t\t * See: https://github.com/WordPress/gutenberg/issues/55866\n\t\t */\n\t\tif ( shouldSelectFirstItem ) {\n\t\t\tsetCurrentlySelectedRevision( {\n\t\t\t\tstyles: firstRevision?.styles || {},\n\t\t\t\tsettings: firstRevision?.settings || {},\n\t\t\t\tid: firstRevision?.id,\n\t\t\t} );\n\t\t}\n\t}, [ shouldSelectFirstItem, firstRevision ] );\n\n\t// Only display load button if there is a revision to load and it is different from the current editor styles.\n\tconst isLoadButtonEnabled =\n\t\t!! currentlySelectedRevisionId && ! selectedRevisionMatchesEditorStyles;\n\tconst shouldShowRevisions = ! isLoading && revisions.length;\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={\n\t\t\t\t\trevisionsCount &&\n\t\t\t\t\t// translators: %s: number of revisions.\n\t\t\t\t\tsprintf( __( 'Revisions (%s)' ), revisionsCount )\n\t\t\t\t}\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Click on previously saved styles to preview them. To restore a selected version to the editor, hit \"Apply.\" When you\\'re ready, use the Save button to save your changes.'\n\t\t\t\t) }\n\t\t\t\tonBack={ onCloseRevisions }\n\t\t\t/>\n\t\t\t{ isLoading && (\n\t\t\t\t<Spinner className=\"edit-site-global-styles-screen-revisions__loading\" />\n\t\t\t) }\n\t\t\t{ shouldShowRevisions ? (\n\t\t\t\t<>\n\t\t\t\t\t<Revisions\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tonClose={ onCloseRevisions }\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"edit-site-global-styles-screen-revisions\">\n\t\t\t\t\t\t<RevisionsButtons\n\t\t\t\t\t\t\tonChange={ selectRevision }\n\t\t\t\t\t\t\tselectedRevisionId={ currentlySelectedRevisionId }\n\t\t\t\t\t\t\tuserRevisions={ revisions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ isLoadButtonEnabled && (\n\t\t\t\t\t\t\t<SidebarFixedBottom>\n\t\t\t\t\t\t\t\t<Button\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__button\"\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t! currentlySelectedRevisionId ||\n\t\t\t\t\t\t\t\t\t\tcurrentlySelectedRevisionId ===\n\t\t\t\t\t\t\t\t\t\t\t'unsaved'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tif ( hasUnsavedChanges ) {\n\t\t\t\t\t\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges(\n\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\trestoreRevision(\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentlySelectedRevision\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>\n\t\t\t\t\t\t\t\t\t{ currentlySelectedRevisionId === 'parent'\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</SidebarFixedBottom>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ isLoadingRevisionWithUnsavedChanges && (\n\t\t\t\t\t\t<ConfirmDialog\n\t\t\t\t\t\t\tisOpen={ isLoadingRevisionWithUnsavedChanges }\n\t\t\t\t\t\t\tconfirmButtonText={ __( 'Apply' ) }\n\t\t\t\t\t\t\tonConfirm={ () =>\n\t\t\t\t\t\t\t\trestoreRevision( currentlySelectedRevision )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonCancel={ () =>\n\t\t\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges( false )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Any unsaved changes will be lost when you apply this revision.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ConfirmDialog>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<Spacer marginX={ 4 } data-testid=\"global-styles-no-revisions\">\n\t\t\t\t\t{\n\t\t\t\t\t\t// Adding an existing translation here in case these changes are shipped to WordPress 6.3.\n\t\t\t\t\t\t// Later we could update to something better, e.g., \"There are currently no style revisions.\".\n\t\t\t\t\t\t__( 'No results found.' )\n\t\t\t\t\t}\n\t\t\t\t</Spacer>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenRevisions;\n"],"mappings":"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"}