@wordpress/edit-site 6.2.0 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-pattern/index.js +8 -2
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/{add-new-page → add-new-post}/index.js +21 -17
  5. package/build/components/add-new-post/index.js.map +1 -0
  6. package/build/components/add-new-template/index.js +3 -1
  7. package/build/components/add-new-template/index.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +6 -85
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/editor/index.js +21 -3
  11. package/build/components/editor/index.js.map +1 -1
  12. package/build/components/global-styles/background-panel.js +0 -5
  13. package/build/components/global-styles/background-panel.js.map +1 -1
  14. package/build/components/global-styles/block-preview-panel.js +14 -5
  15. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  16. package/build/components/global-styles/font-families.js +42 -23
  17. package/build/components/global-styles/font-families.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/font-collection.js +13 -30
  19. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/index.js +4 -4
  21. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/installed-fonts.js +60 -12
  23. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  24. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +39 -0
  25. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  26. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +39 -0
  27. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  28. package/build/components/global-styles/font-sizes/font-size-preview.js +44 -0
  29. package/build/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  30. package/build/components/global-styles/font-sizes/font-size.js +213 -0
  31. package/build/components/global-styles/font-sizes/font-size.js.map +1 -0
  32. package/build/components/global-styles/font-sizes/font-sizes-count.js +50 -0
  33. package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  34. package/build/components/global-styles/font-sizes/font-sizes.js +163 -0
  35. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  36. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js +67 -0
  37. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  38. package/build/components/global-styles/hooks.js +0 -40
  39. package/build/components/global-styles/hooks.js.map +1 -1
  40. package/build/components/global-styles/preview-typography.js +47 -0
  41. package/build/components/global-styles/preview-typography.js.map +1 -0
  42. package/build/components/global-styles/screen-block.js +17 -1
  43. package/build/components/global-styles/screen-block.js.map +1 -1
  44. package/build/components/global-styles/screen-layout.js +5 -1
  45. package/build/components/global-styles/screen-layout.js.map +1 -1
  46. package/build/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  47. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  48. package/build/components/global-styles/screen-style-variations.js +2 -2
  49. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  50. package/build/components/global-styles/screen-typography.js +3 -2
  51. package/build/components/global-styles/screen-typography.js.map +1 -1
  52. package/build/components/global-styles/shadows-edit-panel.js +1 -2
  53. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  54. package/build/components/global-styles/size-control/index.js +85 -0
  55. package/build/components/global-styles/size-control/index.js.map +1 -0
  56. package/build/components/global-styles/style-variations-container.js +8 -5
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typography-elements.js +0 -2
  59. package/build/components/global-styles/typography-elements.js.map +1 -1
  60. package/build/components/global-styles/ui.js +8 -0
  61. package/build/components/global-styles/ui.js.map +1 -1
  62. package/build/components/global-styles/variations/variation.js +4 -4
  63. package/build/components/global-styles/variations/variation.js.map +1 -1
  64. package/build/components/global-styles/variations/variations-color.js +4 -3
  65. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  66. package/build/components/global-styles/variations/variations-typography.js +15 -29
  67. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  68. package/build/components/global-styles-sidebar/index.js +2 -2
  69. package/build/components/global-styles-sidebar/index.js.map +1 -1
  70. package/build/components/layout/index.js +22 -8
  71. package/build/components/layout/index.js.map +1 -1
  72. package/build/components/layout/router.js +30 -43
  73. package/build/components/layout/router.js.map +1 -1
  74. package/build/components/page-patterns/header.js +1 -1
  75. package/build/components/page-patterns/header.js.map +1 -1
  76. package/build/components/page-patterns/index.js +65 -49
  77. package/build/components/page-patterns/index.js.map +1 -1
  78. package/build/components/page-patterns/search-items.js +29 -4
  79. package/build/components/page-patterns/search-items.js.map +1 -1
  80. package/build/components/page-patterns/use-patterns.js +22 -55
  81. package/build/components/page-patterns/use-patterns.js.map +1 -1
  82. package/build/components/page-templates/index.js +56 -50
  83. package/build/components/page-templates/index.js.map +1 -1
  84. package/build/components/pagination/index.js +4 -4
  85. package/build/components/pagination/index.js.map +1 -1
  86. package/build/components/post-edit/index.js +105 -0
  87. package/build/components/post-edit/index.js.map +1 -0
  88. package/build/components/post-fields/index.js +314 -0
  89. package/build/components/post-fields/index.js.map +1 -0
  90. package/build/components/post-list/index.js +281 -0
  91. package/build/components/post-list/index.js.map +1 -0
  92. package/build/components/posts-app/index.js +11 -17
  93. package/build/components/posts-app/index.js.map +1 -1
  94. package/build/components/posts-app/router.js +85 -0
  95. package/build/components/posts-app/router.js.map +1 -0
  96. package/build/components/revisions/index.js +10 -7
  97. package/build/components/revisions/index.js.map +1 -1
  98. package/build/components/save-panel/index.js +1 -1
  99. package/build/components/save-panel/index.js.map +1 -1
  100. package/build/components/sidebar-dataviews/add-new-view.js +4 -1
  101. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  102. package/build/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  103. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  104. package/build/components/sidebar-dataviews/default-views.js +119 -93
  105. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  106. package/build/components/sidebar-dataviews/index.js +44 -2
  107. package/build/components/sidebar-dataviews/index.js.map +1 -1
  108. package/build/components/sidebar-navigation-screen-global-styles/content.js +64 -0
  109. package/build/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  110. package/build/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  111. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  112. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  113. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  114. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  115. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  116. package/build/components/site-hub/index.js +81 -1
  117. package/build/components/site-hub/index.js.map +1 -1
  118. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  119. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  120. package/build/hooks/push-changes-to-global-styles/index.js +2 -2
  121. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  122. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +65 -42
  123. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  124. package/build/index.js +10 -0
  125. package/build/index.js.map +1 -1
  126. package/build/posts.js +57 -2
  127. package/build/posts.js.map +1 -1
  128. package/build/store/private-actions.js +7 -2
  129. package/build/store/private-actions.js.map +1 -1
  130. package/build/store/selectors.js +34 -6
  131. package/build/store/selectors.js.map +1 -1
  132. package/build/utils/get-filtered-template-parts.js +64 -0
  133. package/build/utils/get-filtered-template-parts.js.map +1 -0
  134. package/build-module/components/add-new-pattern/index.js +8 -2
  135. package/build-module/components/add-new-pattern/index.js.map +1 -1
  136. package/build-module/components/{add-new-page → add-new-post}/index.js +21 -17
  137. package/build-module/components/add-new-post/index.js.map +1 -0
  138. package/build-module/components/add-new-template/index.js +3 -1
  139. package/build-module/components/add-new-template/index.js.map +1 -1
  140. package/build-module/components/block-editor/use-site-editor-settings.js +6 -85
  141. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  142. package/build-module/components/editor/index.js +21 -3
  143. package/build-module/components/editor/index.js.map +1 -1
  144. package/build-module/components/global-styles/background-panel.js +0 -5
  145. package/build-module/components/global-styles/background-panel.js.map +1 -1
  146. package/build-module/components/global-styles/block-preview-panel.js +14 -5
  147. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  148. package/build-module/components/global-styles/font-families.js +44 -25
  149. package/build-module/components/global-styles/font-families.js.map +1 -1
  150. package/build-module/components/global-styles/font-library-modal/font-collection.js +14 -31
  151. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  152. package/build-module/components/global-styles/font-library-modal/index.js +4 -4
  153. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  154. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +63 -15
  155. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  156. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +32 -0
  157. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  158. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +32 -0
  159. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  160. package/build-module/components/global-styles/font-sizes/font-size-preview.js +37 -0
  161. package/build-module/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  162. package/build-module/components/global-styles/font-sizes/font-size.js +207 -0
  163. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -0
  164. package/build-module/components/global-styles/font-sizes/font-sizes-count.js +43 -0
  165. package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  166. package/build-module/components/global-styles/font-sizes/font-sizes.js +157 -0
  167. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  168. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +61 -0
  169. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  170. package/build-module/components/global-styles/hooks.js +0 -38
  171. package/build-module/components/global-styles/hooks.js.map +1 -1
  172. package/build-module/components/global-styles/preview-typography.js +39 -0
  173. package/build-module/components/global-styles/preview-typography.js.map +1 -0
  174. package/build-module/components/global-styles/screen-block.js +18 -1
  175. package/build-module/components/global-styles/screen-block.js.map +1 -1
  176. package/build-module/components/global-styles/screen-layout.js +5 -1
  177. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  178. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  179. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  180. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  181. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  182. package/build-module/components/global-styles/screen-typography.js +3 -2
  183. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  184. package/build-module/components/global-styles/shadows-edit-panel.js +1 -2
  185. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  186. package/build-module/components/global-styles/size-control/index.js +79 -0
  187. package/build-module/components/global-styles/size-control/index.js.map +1 -0
  188. package/build-module/components/global-styles/style-variations-container.js +9 -6
  189. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  190. package/build-module/components/global-styles/typography-elements.js +0 -2
  191. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  192. package/build-module/components/global-styles/ui.js +8 -0
  193. package/build-module/components/global-styles/ui.js.map +1 -1
  194. package/build-module/components/global-styles/variations/variation.js +5 -5
  195. package/build-module/components/global-styles/variations/variation.js.map +1 -1
  196. package/build-module/components/global-styles/variations/variations-color.js +5 -4
  197. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  198. package/build-module/components/global-styles/variations/variations-typography.js +16 -30
  199. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  200. package/build-module/components/global-styles-sidebar/index.js +2 -2
  201. package/build-module/components/global-styles-sidebar/index.js.map +1 -1
  202. package/build-module/components/layout/index.js +20 -8
  203. package/build-module/components/layout/index.js.map +1 -1
  204. package/build-module/components/layout/router.js +30 -43
  205. package/build-module/components/layout/router.js.map +1 -1
  206. package/build-module/components/page-patterns/header.js +1 -1
  207. package/build-module/components/page-patterns/header.js.map +1 -1
  208. package/build-module/components/page-patterns/index.js +66 -50
  209. package/build-module/components/page-patterns/index.js.map +1 -1
  210. package/build-module/components/page-patterns/search-items.js +28 -4
  211. package/build-module/components/page-patterns/search-items.js.map +1 -1
  212. package/build-module/components/page-patterns/use-patterns.js +23 -56
  213. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  214. package/build-module/components/page-templates/index.js +58 -53
  215. package/build-module/components/page-templates/index.js.map +1 -1
  216. package/build-module/components/pagination/index.js +4 -4
  217. package/build-module/components/pagination/index.js.map +1 -1
  218. package/build-module/components/post-edit/index.js +98 -0
  219. package/build-module/components/post-edit/index.js.map +1 -0
  220. package/build-module/components/post-fields/index.js +306 -0
  221. package/build-module/components/post-fields/index.js.map +1 -0
  222. package/build-module/components/post-list/index.js +275 -0
  223. package/build-module/components/post-list/index.js.map +1 -0
  224. package/build-module/components/posts-app/index.js +11 -17
  225. package/build-module/components/posts-app/index.js.map +1 -1
  226. package/build-module/components/posts-app/router.js +77 -0
  227. package/build-module/components/posts-app/router.js.map +1 -0
  228. package/build-module/components/revisions/index.js +10 -7
  229. package/build-module/components/revisions/index.js.map +1 -1
  230. package/build-module/components/save-panel/index.js +1 -1
  231. package/build-module/components/save-panel/index.js.map +1 -1
  232. package/build-module/components/sidebar-dataviews/add-new-view.js +4 -1
  233. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  234. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  235. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  236. package/build-module/components/sidebar-dataviews/default-views.js +117 -92
  237. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  238. package/build-module/components/sidebar-dataviews/index.js +47 -5
  239. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  240. package/build-module/components/sidebar-navigation-screen-global-styles/content.js +57 -0
  241. package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  242. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  243. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  244. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
  245. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  246. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
  247. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  248. package/build-module/components/site-hub/index.js +81 -1
  249. package/build-module/components/site-hub/index.js.map +1 -1
  250. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
  251. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  252. package/build-module/hooks/push-changes-to-global-styles/index.js +2 -2
  253. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  254. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +61 -38
  255. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  256. package/build-module/index.js +11 -2
  257. package/build-module/index.js.map +1 -1
  258. package/build-module/posts.js +57 -2
  259. package/build-module/posts.js.map +1 -1
  260. package/build-module/store/private-actions.js +7 -2
  261. package/build-module/store/private-actions.js.map +1 -1
  262. package/build-module/store/selectors.js +35 -7
  263. package/build-module/store/selectors.js.map +1 -1
  264. package/build-module/utils/get-filtered-template-parts.js +57 -0
  265. package/build-module/utils/get-filtered-template-parts.js.map +1 -0
  266. package/build-style/posts-rtl.css +668 -510
  267. package/build-style/posts.css +668 -510
  268. package/build-style/style-rtl.css +772 -702
  269. package/build-style/style.css +772 -702
  270. package/package.json +41 -41
  271. package/src/components/add-new-pattern/index.js +8 -2
  272. package/src/components/{add-new-page → add-new-post}/index.js +28 -22
  273. package/src/components/add-new-template/index.js +4 -1
  274. package/src/components/add-new-template/style.scss +4 -6
  275. package/src/components/block-editor/use-site-editor-settings.js +10 -101
  276. package/src/components/editor/index.js +21 -5
  277. package/src/components/global-styles/background-panel.js +0 -8
  278. package/src/components/global-styles/block-preview-panel.js +22 -9
  279. package/src/components/global-styles/font-families.js +66 -31
  280. package/src/components/global-styles/font-library-modal/font-collection.js +17 -32
  281. package/src/components/global-styles/font-library-modal/index.js +4 -2
  282. package/src/components/global-styles/font-library-modal/installed-fonts.js +94 -13
  283. package/src/components/global-styles/font-library-modal/style.scss +26 -10
  284. package/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +43 -0
  285. package/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +37 -0
  286. package/src/components/global-styles/font-sizes/font-size-preview.js +43 -0
  287. package/src/components/global-styles/font-sizes/font-size.js +250 -0
  288. package/src/components/global-styles/font-sizes/font-sizes-count.js +40 -0
  289. package/src/components/global-styles/font-sizes/font-sizes.js +263 -0
  290. package/src/components/global-styles/font-sizes/rename-font-size-dialog.js +70 -0
  291. package/src/components/global-styles/hooks.js +0 -41
  292. package/src/components/global-styles/preview-typography.js +39 -0
  293. package/src/components/global-styles/screen-block.js +20 -0
  294. package/src/components/global-styles/screen-layout.js +5 -1
  295. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  296. package/src/components/global-styles/screen-style-variations.js +2 -2
  297. package/src/components/global-styles/screen-typography.js +3 -2
  298. package/src/components/global-styles/shadows-edit-panel.js +1 -2
  299. package/src/components/global-styles/size-control/index.js +86 -0
  300. package/src/components/global-styles/style-variations-container.js +14 -7
  301. package/src/components/global-styles/style.scss +13 -3
  302. package/src/components/global-styles/typography-elements.js +0 -4
  303. package/src/components/global-styles/ui.js +10 -0
  304. package/src/components/global-styles/variations/variation.js +5 -5
  305. package/src/components/global-styles/variations/variations-color.js +6 -4
  306. package/src/components/global-styles/variations/variations-typography.js +15 -33
  307. package/src/components/global-styles-sidebar/index.js +2 -2
  308. package/src/components/layout/index.js +24 -4
  309. package/src/components/layout/router.js +29 -37
  310. package/src/components/layout/style.scss +38 -8
  311. package/src/components/page-patterns/header.js +1 -1
  312. package/src/components/page-patterns/index.js +62 -64
  313. package/src/components/page-patterns/search-items.js +37 -3
  314. package/src/components/page-patterns/style.scss +1 -8
  315. package/src/components/page-patterns/use-patterns.js +43 -82
  316. package/src/components/page-templates/index.js +67 -64
  317. package/src/components/page-templates/style.scss +6 -9
  318. package/src/components/pagination/index.js +4 -4
  319. package/src/components/post-edit/index.js +96 -0
  320. package/src/components/post-edit/style.scss +9 -0
  321. package/src/components/post-fields/index.js +345 -0
  322. package/src/components/post-list/index.js +326 -0
  323. package/src/components/{page-pages → post-list}/style.scss +25 -8
  324. package/src/components/posts-app/index.js +9 -11
  325. package/src/components/posts-app/router.js +69 -0
  326. package/src/components/revisions/index.js +9 -1
  327. package/src/components/save-panel/index.js +1 -1
  328. package/src/components/sidebar/style.scss +6 -0
  329. package/src/components/sidebar-dataviews/add-new-view.js +2 -1
  330. package/src/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
  331. package/src/components/sidebar-dataviews/default-views.js +131 -106
  332. package/src/components/sidebar-dataviews/index.js +39 -4
  333. package/src/components/sidebar-navigation-screen-global-styles/content.js +55 -0
  334. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -54
  335. package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +2 -1
  336. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +10 -2
  337. package/src/components/site-hub/index.js +84 -1
  338. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -2
  339. package/src/hooks/push-changes-to-global-styles/index.js +2 -2
  340. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +28 -24
  341. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +72 -47
  342. package/src/index.js +14 -1
  343. package/src/posts.js +63 -2
  344. package/src/posts.scss +9 -0
  345. package/src/store/private-actions.js +7 -3
  346. package/src/store/selectors.js +53 -14
  347. package/src/store/test/selectors.js +1 -26
  348. package/src/style.scss +2 -2
  349. package/src/utils/get-filtered-template-parts.js +61 -0
  350. package/src/utils/test/get-filtered-template-parts.js +127 -0
  351. package/build/components/add-new-page/index.js.map +0 -1
  352. package/build/components/global-styles/screen-background.js +0 -36
  353. package/build/components/global-styles/screen-background.js.map +0 -1
  354. package/build/components/page-pages/index.js +0 -473
  355. package/build/components/page-pages/index.js.map +0 -1
  356. package/build/components/table/index.js +0 -35
  357. package/build/components/table/index.js.map +0 -1
  358. package/build-module/components/add-new-page/index.js.map +0 -1
  359. package/build-module/components/global-styles/screen-background.js +0 -30
  360. package/build-module/components/global-styles/screen-background.js.map +0 -1
  361. package/build-module/components/page-pages/index.js +0 -465
  362. package/build-module/components/page-pages/index.js.map +0 -1
  363. package/build-module/components/table/index.js +0 -30
  364. package/build-module/components/table/index.js.map +0 -1
  365. package/src/components/global-styles/screen-background.js +0 -29
  366. package/src/components/page-pages/index.js +0 -564
  367. package/src/components/table/index.js +0 -33
  368. package/src/components/table/style.scss +0 -38
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { __ } from '@wordpress/i18n';
5
- import { __experimentalItemGroup as ItemGroup, __experimentalVStack as VStack, Button } from '@wordpress/components';
4
+ import { __, _x } from '@wordpress/i18n';
5
+ import { __experimentalText as Text, __experimentalItemGroup as ItemGroup, __experimentalVStack as VStack, Button } from '@wordpress/components';
6
6
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
7
7
  import { useContext } from '@wordpress/element';
8
8
 
@@ -23,10 +23,13 @@ const {
23
23
  } = unlock(blockEditorPrivateApis);
24
24
  function FontFamilies() {
25
25
  const {
26
+ baseCustomFonts,
26
27
  modalTabOpen,
27
- setModalTabOpen
28
+ setModalTabOpen,
29
+ setNotice
28
30
  } = useContext(FontLibraryContext);
29
31
  const [fontFamilies] = useGlobalSetting('typography.fontFamilies');
32
+ const [baseFontFamilies] = useGlobalSetting('typography.fontFamilies', undefined, 'base');
30
33
  const themeFonts = fontFamilies?.theme ? fontFamilies.theme.map(f => setUIValuesNeeded(f, {
31
34
  source: 'theme'
32
35
  })).sort((a, b) => a.name.localeCompare(b.name)) : [];
@@ -34,39 +37,55 @@ function FontFamilies() {
34
37
  source: 'custom'
35
38
  })).sort((a, b) => a.name.localeCompare(b.name)) : [];
36
39
  const hasFonts = 0 < customFonts.length || 0 < themeFonts.length;
40
+ const hasInstalledFonts = hasFonts || baseFontFamilies?.theme?.length > 0 || baseCustomFonts?.length > 0;
37
41
  return /*#__PURE__*/_jsxs(_Fragment, {
38
42
  children: [!!modalTabOpen && /*#__PURE__*/_jsx(FontLibraryModal, {
39
43
  onRequestClose: () => setModalTabOpen(null),
40
44
  defaultTabId: modalTabOpen
41
45
  }), /*#__PURE__*/_jsxs(VStack, {
42
- spacing: 2,
43
- children: [/*#__PURE__*/_jsx(Subtitle, {
44
- level: 3,
45
- children: __('Fonts')
46
- }), hasFonts ? /*#__PURE__*/_jsxs(_Fragment, {
47
- children: [/*#__PURE__*/_jsxs(ItemGroup, {
46
+ spacing: 4,
47
+ children: [themeFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
48
+ children: [/*#__PURE__*/_jsx(Subtitle, {
49
+ level: 3,
50
+ children: /* translators: Heading for a list of fonts provided by the theme. */
51
+ _x('Theme', 'font source')
52
+ }), /*#__PURE__*/_jsx(ItemGroup, {
48
53
  isBordered: true,
49
54
  isSeparated: true,
50
- children: [customFonts.map(font => /*#__PURE__*/_jsx(FontFamilyItem, {
55
+ children: themeFonts.map(font => /*#__PURE__*/_jsx(FontFamilyItem, {
51
56
  font: font
52
- }, font.slug)), themeFonts.map(font => /*#__PURE__*/_jsx(FontFamilyItem, {
57
+ }, font.slug))
58
+ })]
59
+ }), customFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
60
+ children: [/*#__PURE__*/_jsx(Subtitle, {
61
+ level: 3,
62
+ children: /* translators: Heading for a list of fonts installed by the user. */
63
+ _x('Custom', 'font source')
64
+ }), /*#__PURE__*/_jsx(ItemGroup, {
65
+ isBordered: true,
66
+ isSeparated: true,
67
+ children: customFonts.map(font => /*#__PURE__*/_jsx(FontFamilyItem, {
53
68
  font: font
54
- }, font.slug))]
55
- }), /*#__PURE__*/_jsx(Button, {
56
- className: "edit-site-global-styles-font-families__manage-fonts",
57
- variant: "secondary",
58
- __next40pxDefaultSize: true,
59
- onClick: () => setModalTabOpen('installed-fonts'),
60
- children: __('Manage fonts')
69
+ }, font.slug))
61
70
  })]
62
- }) : /*#__PURE__*/_jsxs(_Fragment, {
63
- children: [__('No fonts installed.'), /*#__PURE__*/_jsx(Button, {
64
- className: "edit-site-global-styles-font-families__add-fonts",
65
- variant: "secondary",
66
- __next40pxDefaultSize: true,
67
- onClick: () => setModalTabOpen('upload-fonts'),
68
- children: __('Add fonts')
71
+ }), !hasFonts && /*#__PURE__*/_jsxs(VStack, {
72
+ children: [/*#__PURE__*/_jsx(Subtitle, {
73
+ level: 3,
74
+ children: __('Fonts')
75
+ }), /*#__PURE__*/_jsx(Text, {
76
+ as: "p",
77
+ children: hasInstalledFonts ? __('No fonts activated.') : __('No fonts installed.')
69
78
  })]
79
+ }), /*#__PURE__*/_jsx(Button, {
80
+ className: "edit-site-global-styles-font-families__manage-fonts",
81
+ variant: "secondary",
82
+ __next40pxDefaultSize: true,
83
+ onClick: () => {
84
+ // Reset notice when opening the modal.
85
+ setNotice(null);
86
+ setModalTabOpen(hasInstalledFonts ? 'installed-fonts' : 'upload-fonts');
87
+ },
88
+ children: hasInstalledFonts ? __('Manage fonts') : __('Add fonts')
70
89
  })]
71
90
  })]
72
91
  });
@@ -1 +1 @@
1
- {"version":3,"names":["__","__experimentalItemGroup","ItemGroup","__experimentalVStack","VStack","Button","privateApis","blockEditorPrivateApis","useContext","FontLibraryProvider","FontLibraryContext","FontLibraryModal","FontFamilyItem","Subtitle","setUIValuesNeeded","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","FontFamilies","modalTabOpen","setModalTabOpen","fontFamilies","themeFonts","theme","map","f","source","sort","a","b","name","localeCompare","customFonts","custom","hasFonts","length","children","onRequestClose","defaultTabId","spacing","level","isBordered","isSeparated","font","slug","className","variant","__next40pxDefaultSize","onClick","props"],"sources":["@wordpress/edit-site/src/components/global-styles/font-families.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontLibraryProvider, {\n\tFontLibraryContext,\n} from './font-library-modal/context';\nimport FontLibraryModal from './font-library-modal';\nimport FontFamilyItem from './font-family-item';\nimport Subtitle from './subtitle';\nimport { setUIValuesNeeded } from './font-library-modal/utils';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction FontFamilies() {\n\tconst { modalTabOpen, setModalTabOpen } = useContext( FontLibraryContext );\n\tconst [ fontFamilies ] = useGlobalSetting( 'typography.fontFamilies' );\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst hasFonts = 0 < customFonts.length || 0 < themeFonts.length;\n\n\treturn (\n\t\t<>\n\t\t\t{ !! modalTabOpen && (\n\t\t\t\t<FontLibraryModal\n\t\t\t\t\tonRequestClose={ () => setModalTabOpen( null ) }\n\t\t\t\t\tdefaultTabId={ modalTabOpen }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<VStack spacing={ 2 }>\n\t\t\t\t<Subtitle level={ 3 }>{ __( 'Fonts' ) }</Subtitle>\n\t\t\t\t{ hasFonts ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ customFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontFamilyItem\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t{ themeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontFamilyItem\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-font-families__manage-fonts\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetModalTabOpen( 'installed-fonts' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage fonts' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ __( 'No fonts installed.' ) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-font-families__add-fonts\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tonClick={ () => setModalTabOpen( 'upload-fonts' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Add fonts' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default ( { ...props } ) => (\n\t<FontLibraryProvider>\n\t\t<FontFamilies { ...props } />\n\t</FontLibraryProvider>\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","_x","__experimentalText","Text","__experimentalItemGroup","ItemGroup","__experimentalVStack","VStack","Button","privateApis","blockEditorPrivateApis","useContext","FontLibraryProvider","FontLibraryContext","FontLibraryModal","FontFamilyItem","Subtitle","setUIValuesNeeded","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","FontFamilies","baseCustomFonts","modalTabOpen","setModalTabOpen","setNotice","fontFamilies","baseFontFamilies","undefined","themeFonts","theme","map","f","source","sort","a","b","name","localeCompare","customFonts","custom","hasFonts","length","hasInstalledFonts","children","onRequestClose","defaultTabId","spacing","level","isBordered","isSeparated","font","slug","as","className","variant","__next40pxDefaultSize","onClick","props"],"sources":["@wordpress/edit-site/src/components/global-styles/font-families.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\t__experimentalText as Text,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontLibraryProvider, {\n\tFontLibraryContext,\n} from './font-library-modal/context';\nimport FontLibraryModal from './font-library-modal';\nimport FontFamilyItem from './font-family-item';\nimport Subtitle from './subtitle';\nimport { setUIValuesNeeded } from './font-library-modal/utils';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction FontFamilies() {\n\tconst { baseCustomFonts, modalTabOpen, setModalTabOpen, setNotice } =\n\t\tuseContext( FontLibraryContext );\n\tconst [ fontFamilies ] = useGlobalSetting( 'typography.fontFamilies' );\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst hasFonts = 0 < customFonts.length || 0 < themeFonts.length;\n\n\tconst hasInstalledFonts =\n\t\thasFonts ||\n\t\tbaseFontFamilies?.theme?.length > 0 ||\n\t\tbaseCustomFonts?.length > 0;\n\n\treturn (\n\t\t<>\n\t\t\t{ !! modalTabOpen && (\n\t\t\t\t<FontLibraryModal\n\t\t\t\t\tonRequestClose={ () => setModalTabOpen( null ) }\n\t\t\t\t\tdefaultTabId={ modalTabOpen }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t{ themeFonts.length > 0 && (\n\t\t\t\t\t<VStack>\n\t\t\t\t\t\t<Subtitle level={ 3 }>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts provided by the theme. */\n\t\t\t\t\t\t\t\t_x( 'Theme', 'font source' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</Subtitle>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ themeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontFamilyItem\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t{ customFonts.length > 0 && (\n\t\t\t\t\t<VStack>\n\t\t\t\t\t\t<Subtitle level={ 3 }>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts installed by the user. */\n\t\t\t\t\t\t\t\t_x( 'Custom', 'font source' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</Subtitle>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ customFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontFamilyItem\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t{ ! hasFonts && (\n\t\t\t\t\t<VStack>\n\t\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Fonts' ) }</Subtitle>\n\t\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t\t{ hasInstalledFonts\n\t\t\t\t\t\t\t\t? __( 'No fonts activated.' )\n\t\t\t\t\t\t\t\t: __( 'No fonts installed.' ) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"edit-site-global-styles-font-families__manage-fonts\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t// Reset notice when opening the modal.\n\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\tsetModalTabOpen(\n\t\t\t\t\t\t\thasInstalledFonts\n\t\t\t\t\t\t\t\t? 'installed-fonts'\n\t\t\t\t\t\t\t\t: 'upload-fonts'\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ hasInstalledFonts\n\t\t\t\t\t\t? __( 'Manage fonts' )\n\t\t\t\t\t\t: __( 'Add fonts' ) }\n\t\t\t\t</Button>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default ( { ...props } ) => (\n\t<FontLibraryProvider>\n\t\t<FontFamilies { ...props } />\n\t</FontLibraryProvider>\n);\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import { useContext, useEffect, useState, useMemo, createInterpolateElement } fr
5
5
  import { __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorToParentButton as NavigatorToParentButton, __experimentalHeading as Heading, Notice, SelectControl, FlexItem, Flex, Button, DropdownMenu, SearchControl, ProgressBar } from '@wordpress/components';
6
6
  import { debounce } from '@wordpress/compose';
7
7
  import { sprintf, __, _x } from '@wordpress/i18n';
8
- import { moreVertical, chevronLeft } from '@wordpress/icons';
8
+ import { moreVertical, chevronLeft, chevronRight } from '@wordpress/icons';
9
9
 
10
10
  /**
11
11
  * Internal dependencies
@@ -315,40 +315,33 @@ function FontCollection({
315
315
  })]
316
316
  }), selectedFont && /*#__PURE__*/_jsx(Flex, {
317
317
  justify: "flex-end",
318
- className: "font-library-modal__tabpanel-layout__footer",
318
+ className: "font-library-modal__footer",
319
319
  children: /*#__PURE__*/_jsx(Button, {
320
320
  variant: "primary",
321
321
  onClick: handleInstall,
322
322
  isBusy: isInstalling,
323
323
  disabled: fontsToInstall.length === 0 || isInstalling,
324
- __experimentalIsFocusable: true,
324
+ accessibleWhenDisabled: true,
325
325
  children: __('Install')
326
326
  })
327
- }), !selectedFont && /*#__PURE__*/_jsxs(Flex, {
327
+ }), !selectedFont && /*#__PURE__*/_jsxs(HStack, {
328
+ spacing: 4,
328
329
  justify: "center",
329
- className: "font-library-modal__tabpanel-layout__footer",
330
+ className: "font-library-modal__footer",
330
331
  children: [/*#__PURE__*/_jsx(Button, {
331
- label: __('First page'),
332
- size: "compact",
333
- onClick: () => setPage(1),
334
- disabled: page === 1,
335
- __experimentalIsFocusable: true,
336
- children: /*#__PURE__*/_jsx("span", {
337
- children: "\xAB"
338
- })
339
- }), /*#__PURE__*/_jsx(Button, {
340
332
  label: __('Previous page'),
341
333
  size: "compact",
342
334
  onClick: () => setPage(page - 1),
343
335
  disabled: page === 1,
344
- __experimentalIsFocusable: true,
345
- children: /*#__PURE__*/_jsx("span", {
346
- children: "\u2039"
347
- })
336
+ showTooltip: true,
337
+ accessibleWhenDisabled: true,
338
+ icon: chevronLeft,
339
+ tooltipPosition: "top"
348
340
  }), /*#__PURE__*/_jsx(HStack, {
349
341
  justify: "flex-start",
350
342
  expanded: false,
351
343
  spacing: 2,
344
+ className: "font-library-modal__page-selection",
352
345
  children: createInterpolateElement(sprintf(
353
346
  // translators: %s: Total number of pages.
354
347
  _x('Page <CurrentPageControl /> of %s', 'paging'), totalPages), {
@@ -371,19 +364,9 @@ function FontCollection({
371
364
  size: "compact",
372
365
  onClick: () => setPage(page + 1),
373
366
  disabled: page === totalPages,
374
- __experimentalIsFocusable: true,
375
- children: /*#__PURE__*/_jsx("span", {
376
- children: "\u203A"
377
- })
378
- }), /*#__PURE__*/_jsx(Button, {
379
- label: __('Last page'),
380
- size: "compact",
381
- onClick: () => setPage(totalPages),
382
- disabled: page === totalPages,
383
- __experimentalIsFocusable: true,
384
- children: /*#__PURE__*/_jsx("span", {
385
- children: "\xBB"
386
- })
367
+ accessibleWhenDisabled: true,
368
+ icon: chevronRight,
369
+ tooltipPosition: "top"
387
370
  })]
388
371
  })]
389
372
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","useEffect","useState","useMemo","createInterpolateElement","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalHeading","Heading","Notice","SelectControl","FlexItem","Flex","Button","DropdownMenu","SearchControl","ProgressBar","debounce","sprintf","__","_x","moreVertical","chevronLeft","FontLibraryContext","FontCard","filterFonts","toggleFont","getFontsOutline","isFontFontFaceInOutline","GoogleFontsConfirmDialog","downloadFontFaceAssets","sortFontFaces","CollectionFontVariant","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_CATEGORY","slug","name","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","notice","setNotice","selectedCollection","find","collection","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","_selectedCollection$f","font_families","collectionCategories","categories","fonts","isLoading","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","error","getSortedFontFaces","fontStyle","fontWeight","ActionsComponent","icon","label","popoverProps","position","controls","title","onClick","className","children","initialPath","path","justify","level","size","description","margin","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","role","font_family_settings","navigatorPath","status","onRemove","spacing","i","selected","variant","isBusy","disabled","__experimentalIsFocusable","expanded","CurrentPageControl","options","Array","newPage","parseInt"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalHeading as Heading,\n\tNotice,\n\tSelectControl,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tDropdownMenu,\n\tSearchControl,\n\tProgressBar,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { moreVertical, chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport { toggleFont } from './utils/toggleFont';\nimport {\n\tgetFontsOutline,\n\tisFontFontFaceInOutline,\n} from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { downloadFontFaceAssets } from './utils';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport CollectionFontVariant from './collection-font-variant';\n\nconst DEFAULT_CATEGORY = {\n\tslug: 'all',\n\tname: _x( 'All', 'font categories' ),\n};\n\nconst LOCAL_STORAGE_ITEM = 'wp-font-library-google-fonts-permission';\nconst MIN_WINDOW_HEIGHT = 500;\n\nfunction FontCollection( { slug } ) {\n\tconst requiresPermission = slug === 'google-fonts';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn window.localStorage.getItem( LOCAL_STORAGE_ITEM ) === 'true';\n\t};\n\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst {\n\t\tcollections,\n\t\tgetFontCollection,\n\t\tinstallFonts,\n\t\tisInstalling,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.slug === slug\n\t);\n\n\tuseEffect( () => {\n\t\tconst handleStorage = () => {\n\t\t\tsetRenderConfirmDialog(\n\t\t\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t\t\t);\n\t\t};\n\t\thandleStorage();\n\t\twindow.addEventListener( 'storage', handleStorage );\n\t\treturn () => window.removeEventListener( 'storage', handleStorage );\n\t}, [ slug, requiresPermission ] );\n\n\tconst revokeAccess = () => {\n\t\twindow.localStorage.setItem( LOCAL_STORAGE_ITEM, 'false' );\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( slug );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tif ( ! notice ) {\n\t\t\t\t\tsetNotice( {\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ slug, getFontCollection, setNotice, notice ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ slug, setNotice ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.font_families ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\tconst isLoading = ! selectedCollection?.font_families && ! notice;\n\n\t// NOTE: The height of the font library modal unavailable to use for rendering font family items is roughly 417px\n\t// The height of each font family item is 61px.\n\tconst windowHeight = Math.max( window.innerHeight, MIN_WINDOW_HEIGHT );\n\tconst pageSize = Math.floor( ( windowHeight - 417 ) / 61 );\n\tconst totalPages = Math.ceil( fonts.length / pageSize );\n\tconst itemsStart = ( page - 1 ) * pageSize;\n\tconst itemsLimit = page * pageSize;\n\tconst items = fonts.slice( itemsStart, itemsLimit );\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst handleInstall = async () => {\n\t\tsetNotice( null );\n\n\t\tconst fontFamily = fontsToInstall[ 0 ];\n\n\t\ttry {\n\t\t\tif ( fontFamily?.fontFace ) {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tfontFamily.fontFace.map( async ( fontFace ) => {\n\t\t\t\t\t\tif ( fontFace.src ) {\n\t\t\t\t\t\t\tfontFace.file = await downloadFontFaceAssets(\n\t\t\t\t\t\t\t\tfontFace.src\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}\n\t\t} catch ( error ) {\n\t\t\t// If any of the fonts fail to download,\n\t\t\t// show an error notice and stop the request from being sent.\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Error installing the fonts, could not be downloaded.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFonts( [ fontFamily ] );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\t\tresetFontsToInstall();\n\t};\n\n\tconst getSortedFontFaces = ( fontFamily ) => {\n\t\tif ( ! fontFamily ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! fontFamily.fontFace || ! fontFamily.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: fontFamily.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( fontFamily.fontFace );\n\t};\n\n\tif ( renderConfirmDialog ) {\n\t\treturn <GoogleFontsConfirmDialog />;\n\t}\n\n\tconst ActionsComponent = () => {\n\t\tif ( slug !== 'google-fonts' || renderConfirmDialog || selectedFont ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tposition: 'bottom left',\n\t\t\t\t} }\n\t\t\t\tcontrols={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: __( 'Revoke access to Google Fonts' ),\n\t\t\t\t\t\tonClick: revokeAccess,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isLoading && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isLoading && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath=\"/\"\n\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.name }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.description }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t<ActionsComponent />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Flex>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__search\"\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t</Flex>\n\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\n\t\t\t\t\t\t\t{ !! selectedCollection?.font_families?.length &&\n\t\t\t\t\t\t\t\t! fonts.length && (\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'No fonts found. Try with a different search term'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ items.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings.slug\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\tfont={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedFont(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }{ ' ' }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedFont( null );\n\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ selectedFont?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __( 'Select font variants to install.' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getSortedFontFaces( selectedFont ).map(\n\t\t\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\t\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant={\n\t\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.slug,\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.fontFace\n\t\t\t\t\t\t\t\t\t\t\t\t\t? face\n\t\t\t\t\t\t\t\t\t\t\t\t\t: null, // If the font has no fontFace, we want to check if the font is in the outline\n\t\t\t\t\t\t\t\t\t\t\t\tfontToInstallOutline\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</VStack>\n\t\t\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t{ selectedFont && (\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ handleInstall }\n\t\t\t\t\t\t\t\tisBusy={ isInstalling }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tfontsToInstall.length === 0 || isInstalling\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Install' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! selectedFont && (\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'First page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>«</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page - 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>‹</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Total number of pages.\n\t\t\t\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t\t\t\t'Page <CurrentPageControl /> of %s',\n\t\t\t\t\t\t\t\t\t\t\t'paging'\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tCurrentPageControl: (\n\t\t\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Current page'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ page }\n\t\t\t\t\t\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t\t\t\t\t\t...Array( totalPages ),\n\t\t\t\t\t\t\t\t\t\t\t\t].map( ( e, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newPage ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetPage(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt( newPage )\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</HStack>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page + 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>›</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Last page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( totalPages ) }\n\t\t\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>»</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useContext","useEffect","useState","useMemo","createInterpolateElement","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalHeading","Heading","Notice","SelectControl","FlexItem","Flex","Button","DropdownMenu","SearchControl","ProgressBar","debounce","sprintf","__","_x","moreVertical","chevronLeft","chevronRight","FontLibraryContext","FontCard","filterFonts","toggleFont","getFontsOutline","isFontFontFaceInOutline","GoogleFontsConfirmDialog","downloadFontFaceAssets","sortFontFaces","CollectionFontVariant","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_CATEGORY","slug","name","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","notice","setNotice","selectedCollection","find","collection","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","_selectedCollection$f","font_families","collectionCategories","categories","fonts","isLoading","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","error","getSortedFontFaces","fontStyle","fontWeight","ActionsComponent","icon","label","popoverProps","position","controls","title","onClick","className","children","initialPath","path","justify","level","size","description","margin","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","role","font_family_settings","navigatorPath","status","onRemove","spacing","i","selected","variant","isBusy","disabled","accessibleWhenDisabled","showTooltip","tooltipPosition","expanded","CurrentPageControl","options","Array","newPage","parseInt"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalHeading as Heading,\n\tNotice,\n\tSelectControl,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tDropdownMenu,\n\tSearchControl,\n\tProgressBar,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { moreVertical, chevronLeft, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport { toggleFont } from './utils/toggleFont';\nimport {\n\tgetFontsOutline,\n\tisFontFontFaceInOutline,\n} from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { downloadFontFaceAssets } from './utils';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport CollectionFontVariant from './collection-font-variant';\n\nconst DEFAULT_CATEGORY = {\n\tslug: 'all',\n\tname: _x( 'All', 'font categories' ),\n};\n\nconst LOCAL_STORAGE_ITEM = 'wp-font-library-google-fonts-permission';\nconst MIN_WINDOW_HEIGHT = 500;\n\nfunction FontCollection( { slug } ) {\n\tconst requiresPermission = slug === 'google-fonts';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn window.localStorage.getItem( LOCAL_STORAGE_ITEM ) === 'true';\n\t};\n\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst {\n\t\tcollections,\n\t\tgetFontCollection,\n\t\tinstallFonts,\n\t\tisInstalling,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.slug === slug\n\t);\n\n\tuseEffect( () => {\n\t\tconst handleStorage = () => {\n\t\t\tsetRenderConfirmDialog(\n\t\t\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t\t\t);\n\t\t};\n\t\thandleStorage();\n\t\twindow.addEventListener( 'storage', handleStorage );\n\t\treturn () => window.removeEventListener( 'storage', handleStorage );\n\t}, [ slug, requiresPermission ] );\n\n\tconst revokeAccess = () => {\n\t\twindow.localStorage.setItem( LOCAL_STORAGE_ITEM, 'false' );\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( slug );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tif ( ! notice ) {\n\t\t\t\t\tsetNotice( {\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ slug, getFontCollection, setNotice, notice ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ slug, setNotice ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.font_families ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\tconst isLoading = ! selectedCollection?.font_families && ! notice;\n\n\t// NOTE: The height of the font library modal unavailable to use for rendering font family items is roughly 417px\n\t// The height of each font family item is 61px.\n\tconst windowHeight = Math.max( window.innerHeight, MIN_WINDOW_HEIGHT );\n\tconst pageSize = Math.floor( ( windowHeight - 417 ) / 61 );\n\tconst totalPages = Math.ceil( fonts.length / pageSize );\n\tconst itemsStart = ( page - 1 ) * pageSize;\n\tconst itemsLimit = page * pageSize;\n\tconst items = fonts.slice( itemsStart, itemsLimit );\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst handleInstall = async () => {\n\t\tsetNotice( null );\n\n\t\tconst fontFamily = fontsToInstall[ 0 ];\n\n\t\ttry {\n\t\t\tif ( fontFamily?.fontFace ) {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tfontFamily.fontFace.map( async ( fontFace ) => {\n\t\t\t\t\t\tif ( fontFace.src ) {\n\t\t\t\t\t\t\tfontFace.file = await downloadFontFaceAssets(\n\t\t\t\t\t\t\t\tfontFace.src\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}\n\t\t} catch ( error ) {\n\t\t\t// If any of the fonts fail to download,\n\t\t\t// show an error notice and stop the request from being sent.\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Error installing the fonts, could not be downloaded.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFonts( [ fontFamily ] );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\t\tresetFontsToInstall();\n\t};\n\n\tconst getSortedFontFaces = ( fontFamily ) => {\n\t\tif ( ! fontFamily ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! fontFamily.fontFace || ! fontFamily.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: fontFamily.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( fontFamily.fontFace );\n\t};\n\n\tif ( renderConfirmDialog ) {\n\t\treturn <GoogleFontsConfirmDialog />;\n\t}\n\n\tconst ActionsComponent = () => {\n\t\tif ( slug !== 'google-fonts' || renderConfirmDialog || selectedFont ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tposition: 'bottom left',\n\t\t\t\t} }\n\t\t\t\tcontrols={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: __( 'Revoke access to Google Fonts' ),\n\t\t\t\t\t\tonClick: revokeAccess,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isLoading && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isLoading && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath=\"/\"\n\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.name }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.description }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t<ActionsComponent />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Flex>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__search\"\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t</Flex>\n\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\n\t\t\t\t\t\t\t{ !! selectedCollection?.font_families?.length &&\n\t\t\t\t\t\t\t\t! fonts.length && (\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'No fonts found. Try with a different search term'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ items.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings.slug\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\tfont={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedFont(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }{ ' ' }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedFont( null );\n\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ selectedFont?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __( 'Select font variants to install.' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getSortedFontFaces( selectedFont ).map(\n\t\t\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\t\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant={\n\t\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.slug,\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.fontFace\n\t\t\t\t\t\t\t\t\t\t\t\t\t? face\n\t\t\t\t\t\t\t\t\t\t\t\t\t: null, // If the font has no fontFace, we want to check if the font is in the outline\n\t\t\t\t\t\t\t\t\t\t\t\tfontToInstallOutline\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</VStack>\n\t\t\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t{ selectedFont && (\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ handleInstall }\n\t\t\t\t\t\t\t\tisBusy={ isInstalling }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tfontsToInstall.length === 0 || isInstalling\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Install' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! selectedFont && (\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page - 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__page-selection\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Total number of pages.\n\t\t\t\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t\t\t\t'Page <CurrentPageControl /> of %s',\n\t\t\t\t\t\t\t\t\t\t\t'paging'\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tCurrentPageControl: (\n\t\t\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Current page'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ page }\n\t\t\t\t\t\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t\t\t\t\t\t...Array( totalPages ),\n\t\t\t\t\t\t\t\t\t\t\t\t].map( ( e, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newPage ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetPage(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt( newPage )\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</HStack>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page + 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":"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","ignoreList":[]}
@@ -44,10 +44,10 @@ function FontLibraryModal({
44
44
  setNotice
45
45
  } = useContext(FontLibraryContext);
46
46
  const canUserCreate = useSelect(select => {
47
- const {
48
- canUser
49
- } = select(coreStore);
50
- return canUser('create', 'font-families');
47
+ return select(coreStore).canUser('create', {
48
+ kind: 'postType',
49
+ name: 'wp_font_family'
50
+ });
51
51
  }, []);
52
52
  const tabs = [DEFAULT_TAB];
53
53
  if (canUserCreate) {
@@ -1 +1 @@
1
- {"version":3,"names":["__","_x","Modal","privateApis","componentsPrivateApis","store","coreStore","useSelect","useContext","InstalledFonts","FontCollection","UploadFonts","FontLibraryContext","unlock","jsx","_jsx","jsxs","_jsxs","Tabs","DEFAULT_TAB","id","title","UPLOAD_TAB","tabsFromCollections","collections","map","slug","name","length","FontLibraryModal","onRequestClose","defaultTabId","setNotice","canUserCreate","select","canUser","tabs","push","onSelect","isFullScreen","className","children","TabList","Tab","tabId","contents","TabPanel","focusable"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InstalledFonts from './installed-fonts';\nimport FontCollection from './font-collection';\nimport UploadFonts from './upload-fonts';\nimport { FontLibraryContext } from './context';\nimport { unlock } from '../../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst DEFAULT_TAB = {\n\tid: 'installed-fonts',\n\ttitle: _x( 'Library', 'Font library' ),\n};\n\nconst UPLOAD_TAB = {\n\tid: 'upload-fonts',\n\ttitle: __( 'Upload' ),\n};\n\nconst tabsFromCollections = ( collections ) =>\n\tcollections.map( ( { slug, name } ) => ( {\n\t\tid: slug,\n\t\ttitle:\n\t\t\tcollections.length === 1 && slug === 'google-fonts'\n\t\t\t\t? __( 'Install Fonts' )\n\t\t\t\t: name,\n\t} ) );\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tdefaultTabId = 'installed-fonts',\n} ) {\n\tconst { collections, setNotice } = useContext( FontLibraryContext );\n\tconst canUserCreate = useSelect( ( select ) => {\n\t\tconst { canUser } = select( coreStore );\n\t\treturn canUser( 'create', 'font-families' );\n\t}, [] );\n\n\tconst tabs = [ DEFAULT_TAB ];\n\n\tif ( canUserCreate ) {\n\t\ttabs.push( UPLOAD_TAB );\n\t\ttabs.push( ...tabsFromCollections( collections || [] ) );\n\t}\n\n\t// Reset notice when new tab is selected.\n\tconst onSelect = () => {\n\t\tsetNotice( null );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Fonts' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tisFullScreen\n\t\t\tclassName=\"font-library-modal\"\n\t\t>\n\t\t\t<div className=\"font-library-modal__tabs\">\n\t\t\t\t<Tabs defaultTabId={ defaultTabId } onSelect={ onSelect }>\n\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t{ tabs.map( ( { id, title } ) => (\n\t\t\t\t\t\t\t<Tabs.Tab key={ id } tabId={ id }>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( { id } ) => {\n\t\t\t\t\t\tlet contents;\n\t\t\t\t\t\tswitch ( id ) {\n\t\t\t\t\t\t\tcase 'upload-fonts':\n\t\t\t\t\t\t\t\tcontents = <UploadFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\t\t\tcontents = <InstalledFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tcontents = <FontCollection slug={ id } />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\t\ttabId={ id }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contents }\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","_x","Modal","privateApis","componentsPrivateApis","store","coreStore","useSelect","useContext","InstalledFonts","FontCollection","UploadFonts","FontLibraryContext","unlock","jsx","_jsx","jsxs","_jsxs","Tabs","DEFAULT_TAB","id","title","UPLOAD_TAB","tabsFromCollections","collections","map","slug","name","length","FontLibraryModal","onRequestClose","defaultTabId","setNotice","canUserCreate","select","canUser","kind","tabs","push","onSelect","isFullScreen","className","children","TabList","Tab","tabId","contents","TabPanel","focusable"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InstalledFonts from './installed-fonts';\nimport FontCollection from './font-collection';\nimport UploadFonts from './upload-fonts';\nimport { FontLibraryContext } from './context';\nimport { unlock } from '../../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst DEFAULT_TAB = {\n\tid: 'installed-fonts',\n\ttitle: _x( 'Library', 'Font library' ),\n};\n\nconst UPLOAD_TAB = {\n\tid: 'upload-fonts',\n\ttitle: __( 'Upload' ),\n};\n\nconst tabsFromCollections = ( collections ) =>\n\tcollections.map( ( { slug, name } ) => ( {\n\t\tid: slug,\n\t\ttitle:\n\t\t\tcollections.length === 1 && slug === 'google-fonts'\n\t\t\t\t? __( 'Install Fonts' )\n\t\t\t\t: name,\n\t} ) );\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tdefaultTabId = 'installed-fonts',\n} ) {\n\tconst { collections, setNotice } = useContext( FontLibraryContext );\n\tconst canUserCreate = useSelect( ( select ) => {\n\t\treturn select( coreStore ).canUser( 'create', {\n\t\t\tkind: 'postType',\n\t\t\tname: 'wp_font_family',\n\t\t} );\n\t}, [] );\n\n\tconst tabs = [ DEFAULT_TAB ];\n\n\tif ( canUserCreate ) {\n\t\ttabs.push( UPLOAD_TAB );\n\t\ttabs.push( ...tabsFromCollections( collections || [] ) );\n\t}\n\n\t// Reset notice when new tab is selected.\n\tconst onSelect = () => {\n\t\tsetNotice( null );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Fonts' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tisFullScreen\n\t\t\tclassName=\"font-library-modal\"\n\t\t>\n\t\t\t<div className=\"font-library-modal__tabs\">\n\t\t\t\t<Tabs defaultTabId={ defaultTabId } onSelect={ onSelect }>\n\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t{ tabs.map( ( { id, title } ) => (\n\t\t\t\t\t\t\t<Tabs.Tab key={ id } tabId={ id }>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( { id } ) => {\n\t\t\t\t\t\tlet contents;\n\t\t\t\t\t\tswitch ( id ) {\n\t\t\t\t\t\t\tcase 'upload-fonts':\n\t\t\t\t\t\t\t\tcontents = <UploadFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\t\t\tcontents = <InstalledFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tcontents = <FontCollection slug={ id } />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\t\ttabId={ id }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contents }\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { Button, __experimentalConfirmDialog as ConfirmDialog, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorToParentButton as NavigatorToParentButton, __experimentalUseNavigator as useNavigator, __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Flex, Notice, ProgressBar } from '@wordpress/components';
4
+ import { Button, __experimentalConfirmDialog as ConfirmDialog, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorToParentButton as NavigatorToParentButton, __experimentalUseNavigator as useNavigator, __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Flex, Notice, ProgressBar, CheckboxControl } from '@wordpress/components';
5
5
  import { useEntityRecord, store as coreStore } from '@wordpress/core-data';
6
6
  import { useSelect } from '@wordpress/data';
7
7
  import { useContext, useEffect, useState } from '@wordpress/element';
8
- import { __, sprintf } from '@wordpress/i18n';
8
+ import { __, _x, sprintf } from '@wordpress/i18n';
9
9
  import { chevronLeft } from '@wordpress/icons';
10
10
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
11
11
 
@@ -16,7 +16,7 @@ import { FontLibraryContext } from './context';
16
16
  import FontCard from './font-card';
17
17
  import LibraryFontVariant from './library-font-variant';
18
18
  import { sortFontFaces } from './utils/sort-font-faces';
19
- import { setUIValuesNeeded } from './utils';
19
+ import { setUIValuesNeeded, loadFontFaceInBrowser, unloadFontFaceInBrowser, getDisplaySrcFromFontFace } from './utils';
20
20
  import { unlock } from '../../../lock-unlock';
21
21
  import { jsx as _jsx } from "react/jsx-runtime";
22
22
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -25,6 +25,7 @@ const {
25
25
  useGlobalSetting
26
26
  } = unlock(blockEditorPrivateApis);
27
27
  function InstalledFonts() {
28
+ var _libraryFontSelected$;
28
29
  const {
29
30
  baseCustomFonts,
30
31
  libraryFontSelected,
@@ -36,9 +37,9 @@ function InstalledFonts() {
36
37
  saveFontFamilies,
37
38
  getFontFacesActivated,
38
39
  notice,
39
- setNotice,
40
- fontFamilies
40
+ setNotice
41
41
  } = useContext(FontLibraryContext);
42
+ const [fontFamilies, setFontFamilies] = useGlobalSetting('typography.fontFamilies');
42
43
  const [isConfirmDeleteOpen, setIsConfirmDeleteOpen] = useState(false);
43
44
  const [baseFontFamilies] = useGlobalSetting('typography.fontFamilies', undefined, 'base');
44
45
  const globalStylesId = useSelect(select => {
@@ -61,7 +62,11 @@ function InstalledFonts() {
61
62
  const {
62
63
  canUser
63
64
  } = select(coreStore);
64
- return customFontFamilyId && canUser('delete', 'font-families', customFontFamilyId);
65
+ return customFontFamilyId && canUser('delete', {
66
+ kind: 'postType',
67
+ name: 'wp_font_family',
68
+ id: customFontFamilyId
69
+ });
65
70
  }, [customFontFamilyId]);
66
71
  const shouldDisplayDeleteButton = !!libraryFontSelected && libraryFontSelected?.source !== 'theme' && canUserDelete;
67
72
  const handleUninstallClick = () => {
@@ -90,6 +95,37 @@ function InstalledFonts() {
90
95
  handleSetLibraryFontSelected(libraryFontSelected);
91
96
  refreshLibrary();
92
97
  }, []);
98
+
99
+ // Get activated fonts count.
100
+ const activeFontsCount = libraryFontSelected ? getFontFacesActivated(libraryFontSelected.slug, libraryFontSelected.source).length : 0;
101
+ const selectedFontsCount = (_libraryFontSelected$ = libraryFontSelected?.fontFace?.length) !== null && _libraryFontSelected$ !== void 0 ? _libraryFontSelected$ : libraryFontSelected?.fontFamily ? 1 : 0;
102
+
103
+ // Check if any fonts are selected.
104
+ const isIndeterminate = activeFontsCount > 0 && activeFontsCount !== selectedFontsCount;
105
+
106
+ // Check if all fonts are selected.
107
+ const isSelectAllChecked = activeFontsCount === selectedFontsCount;
108
+
109
+ // Toggle select all fonts.
110
+ const toggleSelectAll = () => {
111
+ var _fontFamilies$library;
112
+ const initialFonts = (_fontFamilies$library = fontFamilies?.[libraryFontSelected.source]?.filter(f => f.slug !== libraryFontSelected.slug)) !== null && _fontFamilies$library !== void 0 ? _fontFamilies$library : [];
113
+ const newFonts = isSelectAllChecked ? initialFonts : [...initialFonts, libraryFontSelected];
114
+ setFontFamilies({
115
+ ...fontFamilies,
116
+ [libraryFontSelected.source]: newFonts
117
+ });
118
+ if (libraryFontSelected.fontFace) {
119
+ libraryFontSelected.fontFace.forEach(face => {
120
+ if (isSelectAllChecked) {
121
+ unloadFontFaceInBrowser(face, 'all');
122
+ } else {
123
+ loadFontFaceInBrowser(face, getDisplaySrcFromFontFace(face?.src), 'all');
124
+ }
125
+ });
126
+ }
127
+ };
128
+ const hasFonts = baseThemeFonts.length > 0 || baseCustomFonts.length > 0;
93
129
  return /*#__PURE__*/_jsxs("div", {
94
130
  className: "font-library-modal__tabpanel-layout",
95
131
  children: [isResolvingLibrary && /*#__PURE__*/_jsx("div", {
@@ -106,14 +142,18 @@ function InstalledFonts() {
106
142
  status: notice.type,
107
143
  onRemove: () => setNotice(null),
108
144
  children: notice.message
109
- }), baseCustomFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
145
+ }), !hasFonts && /*#__PURE__*/_jsx(Text, {
146
+ as: "p",
147
+ children: __('No fonts installed.')
148
+ }), baseThemeFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
110
149
  children: [/*#__PURE__*/_jsx("h2", {
111
150
  className: "font-library-modal__fonts-title",
112
- children: __('Installed Fonts')
151
+ children: /* translators: Heading for a list of fonts provided by the theme. */
152
+ _x('Theme', 'font source')
113
153
  }), /*#__PURE__*/_jsx("ul", {
114
154
  role: "list",
115
155
  className: "font-library-modal__fonts-list",
116
- children: baseCustomFonts.map(font => /*#__PURE__*/_jsx("li", {
156
+ children: baseThemeFonts.map(font => /*#__PURE__*/_jsx("li", {
117
157
  className: "font-library-modal__fonts-list-item",
118
158
  children: /*#__PURE__*/_jsx(FontCard, {
119
159
  font: font,
@@ -125,14 +165,15 @@ function InstalledFonts() {
125
165
  })
126
166
  }, font.slug))
127
167
  })]
128
- }), baseThemeFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
168
+ }), baseCustomFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
129
169
  children: [/*#__PURE__*/_jsx("h2", {
130
170
  className: "font-library-modal__fonts-title",
131
- children: __('Theme Fonts')
171
+ children: /* translators: Heading for a list of fonts installed by the user. */
172
+ _x('Custom', 'font source')
132
173
  }), /*#__PURE__*/_jsx("ul", {
133
174
  role: "list",
134
175
  className: "font-library-modal__fonts-list",
135
- children: baseThemeFonts.map(font => /*#__PURE__*/_jsx("li", {
176
+ children: baseCustomFonts.map(font => /*#__PURE__*/_jsx("li", {
136
177
  className: "font-library-modal__fonts-list-item",
137
178
  children: /*#__PURE__*/_jsx(FontCard, {
138
179
  font: font,
@@ -188,7 +229,14 @@ function InstalledFonts() {
188
229
  margin: 4
189
230
  }), /*#__PURE__*/_jsxs(VStack, {
190
231
  spacing: 0,
191
- children: [/*#__PURE__*/_jsx(Spacer, {
232
+ children: [/*#__PURE__*/_jsx(CheckboxControl, {
233
+ className: "font-library-modal__select-all",
234
+ label: __('Select all'),
235
+ checked: isSelectAllChecked,
236
+ onChange: toggleSelectAll,
237
+ indeterminate: isIndeterminate,
238
+ __nextHasNoMarginBottom: true
239
+ }), /*#__PURE__*/_jsx(Spacer, {
192
240
  margin: 8
193
241
  }), getFontFacesToDisplay(libraryFontSelected).map((face, i) => /*#__PURE__*/_jsx(LibraryFontVariant, {
194
242
  font: libraryFontSelected,
@@ -198,7 +246,7 @@ function InstalledFonts() {
198
246
  })]
199
247
  }), /*#__PURE__*/_jsxs(HStack, {
200
248
  justify: "flex-end",
201
- className: "font-library-modal__tabpanel-layout__footer",
249
+ className: "font-library-modal__footer",
202
250
  children: [isInstalling && /*#__PURE__*/_jsx(ProgressBar, {}), shouldDisplayDeleteButton && /*#__PURE__*/_jsx(Button, {
203
251
  isDestructive: true,
204
252
  variant: "tertiary",
@@ -210,7 +258,7 @@ function InstalledFonts() {
210
258
  saveFontFamilies(fontFamilies);
211
259
  },
212
260
  disabled: !fontFamiliesHasChanges,
213
- __experimentalIsFocusable: true,
261
+ accessibleWhenDisabled: true,
214
262
  children: __('Update')
215
263
  })]
216
264
  })]