@wordpress/edit-site 5.19.0 → 5.19.2

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 (448) hide show
  1. package/build/components/add-new-pattern/index.js +3 -3
  2. package/build/components/add-new-pattern/index.js.map +1 -1
  3. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +73 -0
  4. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  5. package/build/components/block-editor/block-editor-provider/index.js +31 -0
  6. package/build/components/block-editor/block-editor-provider/index.js.map +1 -0
  7. package/build/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  8. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  9. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +76 -0
  10. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  11. package/build/components/block-editor/index.js +2 -9
  12. package/build/components/block-editor/index.js.map +1 -1
  13. package/build/components/block-editor/site-editor-canvas.js +1 -1
  14. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  15. package/build/components/create-template-part-modal/index.js +8 -12
  16. package/build/components/create-template-part-modal/index.js.map +1 -1
  17. package/build/components/editor/index.js +4 -1
  18. package/build/components/editor/index.js.map +1 -1
  19. package/build/components/global-styles/font-families.js +2 -1
  20. package/build/components/global-styles/font-families.js.map +1 -1
  21. package/build/components/global-styles/font-family-item.js +2 -2
  22. package/build/components/global-styles/font-family-item.js.map +1 -1
  23. package/build/components/global-styles/font-library-modal/collection-font-details.js +49 -0
  24. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  25. package/build/components/global-styles/font-library-modal/collection-font-variant.js +55 -0
  26. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  27. package/build/components/global-styles/font-library-modal/context.js +26 -2
  28. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  29. package/build/components/global-styles/font-library-modal/font-card.js +7 -4
  30. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  31. package/build/components/global-styles/font-library-modal/font-collection.js +172 -0
  32. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  33. package/build/components/global-styles/font-library-modal/font-demo.js +30 -13
  34. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  35. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +41 -0
  36. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  37. package/build/components/global-styles/font-library-modal/index.js +25 -7
  38. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  39. package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  40. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  41. package/build/components/global-styles/font-library-modal/library-font-card.js +0 -5
  42. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  43. package/build/components/global-styles/font-library-modal/library-font-details.js +2 -1
  44. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  45. package/build/components/global-styles/font-library-modal/resolvers.js +16 -0
  46. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  47. package/build/components/global-styles/font-library-modal/tab-layout.js +2 -2
  48. package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -1
  49. package/build/components/global-styles/font-library-modal/utils/constants.js +1 -7
  50. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  51. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +21 -0
  52. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  53. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +20 -0
  54. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  55. package/build/components/global-styles/font-library-modal/utils/index.js +2 -52
  56. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  57. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +76 -0
  58. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  59. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js +36 -0
  60. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  61. package/build/components/global-styles/screen-typography.js +1 -1
  62. package/build/components/global-styles/screen-typography.js.map +1 -1
  63. package/build/components/header-edit-mode/document-actions/index.js +9 -8
  64. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  65. package/build/components/header-edit-mode/index.js +4 -1
  66. package/build/components/header-edit-mode/index.js.map +1 -1
  67. package/build/components/layout/index.js +5 -1
  68. package/build/components/layout/index.js.map +1 -1
  69. package/build/components/list/added-by.js +13 -8
  70. package/build/components/list/added-by.js.map +1 -1
  71. package/build/components/list/index.js +2 -1
  72. package/build/components/list/index.js.map +1 -1
  73. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  74. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  75. package/build/components/page-patterns/duplicate-menu-item.js +5 -5
  76. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  77. package/build/components/page-patterns/grid-item.js +5 -5
  78. package/build/components/page-patterns/grid-item.js.map +1 -1
  79. package/build/components/page-patterns/index.js +1 -1
  80. package/build/components/page-patterns/index.js.map +1 -1
  81. package/build/components/page-patterns/search-items.js +1 -1
  82. package/build/components/page-patterns/search-items.js.map +1 -1
  83. package/build/components/page-patterns/use-patterns.js +28 -34
  84. package/build/components/page-patterns/use-patterns.js.map +1 -1
  85. package/build/components/page-template-parts/add-new-template-part.js +3 -2
  86. package/build/components/page-template-parts/add-new-template-part.js.map +1 -1
  87. package/build/components/page-template-parts/index.js +2 -1
  88. package/build/components/page-template-parts/index.js.map +1 -1
  89. package/build/components/page-templates/index.js +3 -2
  90. package/build/components/page-templates/index.js.map +1 -1
  91. package/build/components/save-hub/index.js +2 -1
  92. package/build/components/save-hub/index.js.map +1 -1
  93. package/build/components/secondary-sidebar/list-view-sidebar.js +24 -17
  94. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  95. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +21 -3
  96. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  97. package/build/components/sidebar-edit-mode/page-panels/hooks.js +2 -1
  98. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  99. package/build/components/sidebar-edit-mode/settings-header/index.js +2 -6
  100. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  101. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  102. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  103. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  104. package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  105. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +2 -1
  106. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  107. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  108. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  109. package/build/components/sidebar-navigation-screen-page/page-details.js +2 -1
  110. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  111. package/build/components/sidebar-navigation-screen-pages/index.js +5 -4
  112. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  113. package/build/components/sidebar-navigation-screen-pattern/index.js +2 -1
  114. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  115. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  116. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  117. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  118. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  119. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  120. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  121. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +8 -7
  122. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  123. package/build/components/sidebar-navigation-screen-patterns/index.js +3 -3
  124. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  125. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +7 -2
  126. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  127. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  128. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  129. package/build/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  130. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  131. package/build/components/sidebar-navigation-screen-templates/index.js +4 -3
  132. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  133. package/build/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  134. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  135. package/build/components/start-template-options/index.js +20 -2
  136. package/build/components/start-template-options/index.js.map +1 -1
  137. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  138. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  139. package/build/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  140. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  141. package/build/components/template-actions/index.js +2 -1
  142. package/build/components/template-actions/index.js.map +1 -1
  143. package/build/components/template-actions/rename-menu-item.js +8 -3
  144. package/build/components/template-actions/rename-menu-item.js.map +1 -1
  145. package/build/hooks/commands/use-edit-mode-commands.js +4 -3
  146. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  147. package/build/hooks/navigation-menu-edit.js +2 -1
  148. package/build/hooks/navigation-menu-edit.js.map +1 -1
  149. package/build/hooks/template-part-edit.js +2 -1
  150. package/build/hooks/template-part-edit.js.map +1 -1
  151. package/build/store/actions.js +10 -9
  152. package/build/store/actions.js.map +1 -1
  153. package/build/store/constants.js +1 -9
  154. package/build/store/constants.js.map +1 -1
  155. package/build/store/private-actions.js +21 -1
  156. package/build/store/private-actions.js.map +1 -1
  157. package/build/store/private-selectors.js +23 -0
  158. package/build/store/private-selectors.js.map +1 -1
  159. package/build/store/reducer.js +19 -1
  160. package/build/store/reducer.js.map +1 -1
  161. package/build/store/selectors.js +3 -2
  162. package/build/store/selectors.js.map +1 -1
  163. package/build/utils/constants.js +22 -3
  164. package/build/utils/constants.js.map +1 -1
  165. package/build/utils/is-template-removable.js +1 -1
  166. package/build/utils/is-template-removable.js.map +1 -1
  167. package/build/utils/is-template-revertable.js +1 -1
  168. package/build/utils/is-template-revertable.js.map +1 -1
  169. package/build/utils/template-part-create.js +6 -1
  170. package/build/utils/template-part-create.js.map +1 -1
  171. package/build-module/components/add-new-pattern/index.js +3 -3
  172. package/build-module/components/add-new-pattern/index.js.map +1 -1
  173. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +65 -0
  174. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
  175. package/build-module/components/block-editor/block-editor-provider/index.js +23 -0
  176. package/build-module/components/block-editor/block-editor-provider/index.js.map +1 -0
  177. package/build-module/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  178. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
  179. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +70 -0
  180. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
  181. package/build-module/components/block-editor/index.js +1 -8
  182. package/build-module/components/block-editor/index.js.map +1 -1
  183. package/build-module/components/block-editor/site-editor-canvas.js +2 -2
  184. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  185. package/build-module/components/create-template-part-modal/index.js +8 -12
  186. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  187. package/build-module/components/editor/index.js +4 -1
  188. package/build-module/components/editor/index.js.map +1 -1
  189. package/build-module/components/global-styles/font-families.js +3 -2
  190. package/build-module/components/global-styles/font-families.js.map +1 -1
  191. package/build-module/components/global-styles/font-family-item.js +2 -2
  192. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  193. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +40 -0
  194. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
  195. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  196. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
  197. package/build-module/components/global-styles/font-library-modal/context.js +27 -3
  198. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  199. package/build-module/components/global-styles/font-library-modal/font-card.js +8 -5
  200. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  201. package/build-module/components/global-styles/font-library-modal/font-collection.js +164 -0
  202. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -0
  203. package/build-module/components/global-styles/font-library-modal/font-demo.js +30 -13
  204. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  205. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +33 -0
  206. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
  207. package/build-module/components/global-styles/font-library-modal/index.js +26 -7
  208. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  209. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  210. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  211. package/build-module/components/global-styles/font-library-modal/library-font-card.js +0 -5
  212. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  213. package/build-module/components/global-styles/font-library-modal/library-font-details.js +2 -1
  214. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  215. package/build-module/components/global-styles/font-library-modal/resolvers.js +14 -0
  216. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  217. package/build-module/components/global-styles/font-library-modal/tab-layout.js +2 -2
  218. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -1
  219. package/build-module/components/global-styles/font-library-modal/utils/constants.js +1 -6
  220. package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  221. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +15 -0
  222. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
  223. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +13 -0
  224. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
  225. package/build-module/components/global-styles/font-library-modal/utils/index.js +2 -51
  226. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  227. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +68 -0
  228. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
  229. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js +30 -0
  230. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
  231. package/build-module/components/global-styles/screen-typography.js +1 -1
  232. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  233. package/build-module/components/header-edit-mode/document-actions/index.js +9 -8
  234. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  235. package/build-module/components/header-edit-mode/index.js +4 -1
  236. package/build-module/components/header-edit-mode/index.js.map +1 -1
  237. package/build-module/components/layout/index.js +5 -1
  238. package/build-module/components/layout/index.js.map +1 -1
  239. package/build-module/components/list/added-by.js +13 -8
  240. package/build-module/components/list/added-by.js.map +1 -1
  241. package/build-module/components/list/index.js +2 -1
  242. package/build-module/components/list/index.js.map +1 -1
  243. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
  244. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  245. package/build-module/components/page-patterns/duplicate-menu-item.js +5 -5
  246. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  247. package/build-module/components/page-patterns/grid-item.js +5 -5
  248. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  249. package/build-module/components/page-patterns/index.js +1 -1
  250. package/build-module/components/page-patterns/index.js.map +1 -1
  251. package/build-module/components/page-patterns/search-items.js +2 -2
  252. package/build-module/components/page-patterns/search-items.js.map +1 -1
  253. package/build-module/components/page-patterns/use-patterns.js +28 -35
  254. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  255. package/build-module/components/page-template-parts/add-new-template-part.js +3 -2
  256. package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -1
  257. package/build-module/components/page-template-parts/index.js +2 -1
  258. package/build-module/components/page-template-parts/index.js.map +1 -1
  259. package/build-module/components/page-templates/index.js +3 -2
  260. package/build-module/components/page-templates/index.js.map +1 -1
  261. package/build-module/components/save-hub/index.js +2 -1
  262. package/build-module/components/save-hub/index.js.map +1 -1
  263. package/build-module/components/secondary-sidebar/list-view-sidebar.js +26 -19
  264. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  265. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +21 -3
  266. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  267. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +2 -1
  268. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  269. package/build-module/components/sidebar-edit-mode/settings-header/index.js +2 -6
  270. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  271. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  272. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  273. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  274. package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
  275. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  276. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  277. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  278. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  279. package/build-module/components/sidebar-navigation-screen-page/page-details.js +2 -1
  280. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  281. package/build-module/components/sidebar-navigation-screen-pages/index.js +5 -4
  282. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  283. package/build-module/components/sidebar-navigation-screen-pattern/index.js +2 -1
  284. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  285. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
  286. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  287. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
  288. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  289. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  290. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  291. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +8 -7
  292. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  293. package/build-module/components/sidebar-navigation-screen-patterns/index.js +4 -4
  294. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  295. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +8 -3
  296. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  297. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
  298. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  299. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  300. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  301. package/build-module/components/sidebar-navigation-screen-templates/index.js +4 -3
  302. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  303. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
  304. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  305. package/build-module/components/start-template-options/index.js +20 -2
  306. package/build-module/components/start-template-options/index.js.map +1 -1
  307. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
  308. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  309. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
  310. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  311. package/build-module/components/template-actions/index.js +2 -1
  312. package/build-module/components/template-actions/index.js.map +1 -1
  313. package/build-module/components/template-actions/rename-menu-item.js +8 -3
  314. package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
  315. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -3
  316. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  317. package/build-module/hooks/navigation-menu-edit.js +2 -1
  318. package/build-module/hooks/navigation-menu-edit.js.map +1 -1
  319. package/build-module/hooks/template-part-edit.js +2 -1
  320. package/build-module/hooks/template-part-edit.js.map +1 -1
  321. package/build-module/store/actions.js +10 -10
  322. package/build-module/store/actions.js.map +1 -1
  323. package/build-module/store/constants.js +0 -4
  324. package/build-module/store/constants.js.map +1 -1
  325. package/build-module/store/private-actions.js +19 -0
  326. package/build-module/store/private-actions.js.map +1 -1
  327. package/build-module/store/private-selectors.js +22 -0
  328. package/build-module/store/private-selectors.js.map +1 -1
  329. package/build-module/store/reducer.js +18 -1
  330. package/build-module/store/reducer.js.map +1 -1
  331. package/build-module/store/selectors.js +3 -3
  332. package/build-module/store/selectors.js.map +1 -1
  333. package/build-module/utils/constants.js +17 -1
  334. package/build-module/utils/constants.js.map +1 -1
  335. package/build-module/utils/is-template-removable.js +2 -2
  336. package/build-module/utils/is-template-removable.js.map +1 -1
  337. package/build-module/utils/is-template-revertable.js +2 -2
  338. package/build-module/utils/is-template-revertable.js.map +1 -1
  339. package/build-module/utils/template-part-create.js +6 -1
  340. package/build-module/utils/template-part-create.js.map +1 -1
  341. package/build-style/style-rtl.css +23 -0
  342. package/build-style/style.css +23 -0
  343. package/package.json +40 -40
  344. package/src/components/add-new-pattern/index.js +3 -3
  345. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +70 -0
  346. package/src/components/block-editor/block-editor-provider/index.js +29 -0
  347. package/src/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
  348. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +87 -0
  349. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +77 -0
  350. package/src/components/block-editor/index.js +1 -14
  351. package/src/components/block-editor/site-editor-canvas.js +5 -2
  352. package/src/components/create-template-part-modal/index.js +11 -12
  353. package/src/components/editor/index.js +6 -2
  354. package/src/components/global-styles/font-families.js +5 -1
  355. package/src/components/global-styles/font-family-item.js +2 -2
  356. package/src/components/global-styles/font-library-modal/collection-font-details.js +56 -0
  357. package/src/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
  358. package/src/components/global-styles/font-library-modal/context.js +33 -2
  359. package/src/components/global-styles/font-library-modal/font-card.js +9 -4
  360. package/src/components/global-styles/font-library-modal/font-collection.js +257 -0
  361. package/src/components/global-styles/font-library-modal/font-demo.js +36 -10
  362. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +50 -0
  363. package/src/components/global-styles/font-library-modal/index.js +30 -5
  364. package/src/components/global-styles/font-library-modal/installed-fonts.js +1 -1
  365. package/src/components/global-styles/font-library-modal/library-font-card.js +1 -8
  366. package/src/components/global-styles/font-library-modal/library-font-details.js +2 -3
  367. package/src/components/global-styles/font-library-modal/resolvers.js +16 -0
  368. package/src/components/global-styles/font-library-modal/style.scss +26 -0
  369. package/src/components/global-styles/font-library-modal/tab-layout.js +2 -2
  370. package/src/components/global-styles/font-library-modal/utils/constants.js +1 -9
  371. package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +18 -0
  372. package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +21 -0
  373. package/src/components/global-styles/font-library-modal/utils/index.js +9 -69
  374. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +86 -0
  375. package/src/components/global-styles/font-library-modal/utils/sort-font-faces.js +33 -0
  376. package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +69 -0
  377. package/src/components/global-styles/font-library-modal/utils/test/fonts-outline.spec.js +109 -0
  378. package/src/components/global-styles/font-library-modal/utils/test/{getPreviewStyle.spec.js → preview-styles.spec.js} +49 -9
  379. package/src/components/global-styles/font-library-modal/utils/test/sort-font-faces.js +74 -0
  380. package/src/components/global-styles/screen-typography.js +4 -1
  381. package/src/components/header-edit-mode/document-actions/index.js +17 -8
  382. package/src/components/header-edit-mode/index.js +2 -1
  383. package/src/components/layout/index.js +10 -1
  384. package/src/components/list/added-by.js +29 -11
  385. package/src/components/list/index.js +7 -1
  386. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -8
  387. package/src/components/page-patterns/duplicate-menu-item.js +5 -5
  388. package/src/components/page-patterns/grid-item.js +5 -5
  389. package/src/components/page-patterns/index.js +1 -1
  390. package/src/components/page-patterns/search-items.js +7 -1
  391. package/src/components/page-patterns/use-patterns.js +190 -134
  392. package/src/components/page-template-parts/add-new-template-part.js +5 -2
  393. package/src/components/page-template-parts/index.js +2 -1
  394. package/src/components/page-templates/index.js +3 -2
  395. package/src/components/save-hub/index.js +2 -1
  396. package/src/components/secondary-sidebar/list-view-sidebar.js +31 -26
  397. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +48 -20
  398. package/src/components/sidebar-edit-mode/page-panels/hooks.js +9 -4
  399. package/src/components/sidebar-edit-mode/page-panels/style.scss +6 -0
  400. package/src/components/sidebar-edit-mode/settings-header/index.js +4 -7
  401. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +9 -2
  402. package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
  403. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
  404. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
  405. package/src/components/sidebar-navigation-screen-page/page-details.js +2 -1
  406. package/src/components/sidebar-navigation-screen-pages/index.js +5 -4
  407. package/src/components/sidebar-navigation-screen-pattern/index.js +2 -1
  408. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +8 -2
  409. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +7 -1
  410. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
  411. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +18 -8
  412. package/src/components/sidebar-navigation-screen-patterns/index.js +8 -4
  413. package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +16 -3
  414. package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +12 -2
  415. package/src/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
  416. package/src/components/sidebar-navigation-screen-templates/index.js +4 -3
  417. package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -2
  418. package/src/components/start-template-options/index.js +39 -2
  419. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -4
  420. package/src/components/sync-state-with-url/use-sync-path-with-url.js +8 -3
  421. package/src/components/template-actions/index.js +2 -1
  422. package/src/components/template-actions/rename-menu-item.js +8 -3
  423. package/src/hooks/commands/use-edit-mode-commands.js +4 -3
  424. package/src/hooks/navigation-menu-edit.js +2 -1
  425. package/src/hooks/template-part-edit.js +2 -1
  426. package/src/store/actions.js +18 -10
  427. package/src/store/constants.js +0 -5
  428. package/src/store/private-actions.js +19 -0
  429. package/src/store/private-selectors.js +22 -0
  430. package/src/store/reducer.js +18 -0
  431. package/src/store/selectors.js +6 -3
  432. package/src/store/test/reducer.js +18 -0
  433. package/src/utils/constants.js +17 -1
  434. package/src/utils/is-template-removable.js +2 -2
  435. package/src/utils/is-template-revertable.js +2 -2
  436. package/src/utils/template-part-create.js +6 -1
  437. package/build/components/block-editor/get-block-editor-provider.js +0 -35
  438. package/build/components/block-editor/get-block-editor-provider.js.map +0 -1
  439. package/build/components/block-editor/providers/default-block-editor-provider.js +0 -49
  440. package/build/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  441. package/build/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  442. package/build-module/components/block-editor/get-block-editor-provider.js +0 -28
  443. package/build-module/components/block-editor/get-block-editor-provider.js.map +0 -1
  444. package/build-module/components/block-editor/providers/default-block-editor-provider.js +0 -41
  445. package/build-module/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
  446. package/build-module/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
  447. package/src/components/block-editor/get-block-editor-provider.js +0 -29
  448. package/src/components/block-editor/providers/default-block-editor-provider.js +0 -44
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _element = require("@wordpress/element");
9
+ var _components = require("@wordpress/components");
10
+ var _compose = require("@wordpress/compose");
11
+ var _i18n = require("@wordpress/i18n");
12
+ var _icons = require("@wordpress/icons");
13
+ var _tabLayout = _interopRequireDefault(require("./tab-layout"));
14
+ var _context = require("./context");
15
+ var _fontsGrid = _interopRequireDefault(require("./fonts-grid"));
16
+ var _fontCard = _interopRequireDefault(require("./font-card"));
17
+ var _filterFonts = _interopRequireDefault(require("./utils/filter-fonts"));
18
+ var _collectionFontDetails = _interopRequireDefault(require("./collection-font-details"));
19
+ var _toggleFont = require("./utils/toggleFont");
20
+ var _fontsOutline = require("./utils/fonts-outline");
21
+ var _googleFontsConfirmDialog = _interopRequireDefault(require("./google-fonts-confirm-dialog"));
22
+ /**
23
+ * WordPress dependencies
24
+ */
25
+
26
+ /**
27
+ * Internal dependencies
28
+ */
29
+
30
+ const DEFAULT_CATEGORY = {
31
+ id: 'all',
32
+ name: (0, _i18n.__)('All')
33
+ };
34
+ function FontCollection({
35
+ id
36
+ }) {
37
+ var _selectedCollection$d2;
38
+ const requiresPermission = id === 'default-font-collection';
39
+ const getGoogleFontsPermissionFromStorage = () => {
40
+ return window.localStorage.getItem('wp-font-library-default-font-collection-permission') === 'true';
41
+ };
42
+ const [selectedFont, setSelectedFont] = (0, _element.useState)(null);
43
+ const [fontsToInstall, setFontsToInstall] = (0, _element.useState)([]);
44
+ const [filters, setFilters] = (0, _element.useState)({});
45
+ const [renderConfirmDialog, setRenderConfirmDialog] = (0, _element.useState)(requiresPermission && !getGoogleFontsPermissionFromStorage());
46
+ const {
47
+ collections,
48
+ getFontCollection
49
+ } = (0, _element.useContext)(_context.FontLibraryContext);
50
+ const selectedCollection = collections.find(collection => collection.id === id);
51
+ (0, _element.useEffect)(() => {
52
+ const handleStorage = () => {
53
+ setRenderConfirmDialog(requiresPermission && !getGoogleFontsPermissionFromStorage());
54
+ };
55
+ handleStorage();
56
+ window.addEventListener('storage', handleStorage);
57
+ return () => window.removeEventListener('storage', handleStorage);
58
+ }, [id, requiresPermission]);
59
+ (0, _element.useEffect)(() => {
60
+ getFontCollection(id);
61
+ resetFilters();
62
+ }, [id, getFontCollection]);
63
+ (0, _element.useEffect)(() => {
64
+ setSelectedFont(null);
65
+ }, [id]);
66
+ const collectionFonts = (0, _element.useMemo)(() => {
67
+ var _selectedCollection$d;
68
+ return (_selectedCollection$d = selectedCollection?.data?.fontFamilies) !== null && _selectedCollection$d !== void 0 ? _selectedCollection$d : [];
69
+ }, [selectedCollection]);
70
+ const collectionCategories = (_selectedCollection$d2 = selectedCollection?.data?.categories) !== null && _selectedCollection$d2 !== void 0 ? _selectedCollection$d2 : [];
71
+ const categories = [DEFAULT_CATEGORY, ...collectionCategories];
72
+ const fonts = (0, _element.useMemo)(() => (0, _filterFonts.default)(collectionFonts, filters), [collectionFonts, filters]);
73
+ const handleCategoryFilter = category => {
74
+ setFilters({
75
+ ...filters,
76
+ category
77
+ });
78
+ };
79
+ const handleUpdateSearchInput = value => {
80
+ setFilters({
81
+ ...filters,
82
+ search: value
83
+ });
84
+ };
85
+ const debouncedUpdateSearchInput = (0, _compose.debounce)(handleUpdateSearchInput, 300);
86
+ const resetFilters = () => {
87
+ setFilters({});
88
+ };
89
+ const resetSearch = () => {
90
+ setFilters({
91
+ ...filters,
92
+ search: ''
93
+ });
94
+ };
95
+ const handleUnselectFont = () => {
96
+ setSelectedFont(null);
97
+ };
98
+ const handleToggleVariant = (font, face) => {
99
+ const newFontsToInstall = (0, _toggleFont.toggleFont)(font, face, fontsToInstall);
100
+ setFontsToInstall(newFontsToInstall);
101
+ };
102
+ const fontToInstallOutline = (0, _fontsOutline.getFontsOutline)(fontsToInstall);
103
+ const resetFontsToInstall = () => {
104
+ setFontsToInstall([]);
105
+ };
106
+ return (0, _element.createElement)(_tabLayout.default, {
107
+ title: !selectedFont ? selectedCollection.name : selectedFont.name,
108
+ description: !selectedFont ? selectedCollection.description : (0, _i18n.__)('Select font variants to install.'),
109
+ handleBack: !!selectedFont && handleUnselectFont,
110
+ footer: fontsToInstall.length > 0 && (0, _element.createElement)(Footer, {
111
+ fontsToInstall: fontsToInstall,
112
+ resetFontsToInstall: resetFontsToInstall
113
+ })
114
+ }, renderConfirmDialog && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalSpacer, {
115
+ margin: 8
116
+ }), (0, _element.createElement)(_googleFontsConfirmDialog.default, null)), !renderConfirmDialog && !selectedCollection.data && (0, _element.createElement)(_components.Spinner, null), !renderConfirmDialog && !selectedFont && (0, _element.createElement)(_components.Flex, null, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.__experimentalInputControl, {
117
+ value: filters.search,
118
+ placeholder: (0, _i18n.__)('Font name…'),
119
+ label: (0, _i18n.__)('Search'),
120
+ onChange: debouncedUpdateSearchInput,
121
+ prefix: (0, _element.createElement)(_components.Icon, {
122
+ icon: _icons.search
123
+ }),
124
+ suffix: filters?.search ? (0, _element.createElement)(_components.Icon, {
125
+ icon: _icons.closeSmall,
126
+ onClick: resetSearch
127
+ }) : null
128
+ })), (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.SelectControl, {
129
+ label: (0, _i18n.__)('Category'),
130
+ value: filters.category,
131
+ onChange: handleCategoryFilter
132
+ }, categories && categories.map(category => (0, _element.createElement)("option", {
133
+ value: category.id,
134
+ key: category.id
135
+ }, category.name))))), (0, _element.createElement)(_components.__experimentalSpacer, {
136
+ margin: 4
137
+ }), !renderConfirmDialog && !selectedCollection?.data?.fontFamilies && (0, _element.createElement)(_components.Spinner, null), !renderConfirmDialog && !!selectedCollection?.data?.fontFamilies?.length && !fonts.length && (0, _element.createElement)(_components.__experimentalText, null, (0, _i18n.__)('No fonts found. Try with a different seach term')), !renderConfirmDialog && selectedFont && (0, _element.createElement)(_collectionFontDetails.default, {
138
+ font: selectedFont,
139
+ handleToggleVariant: handleToggleVariant,
140
+ fontToInstallOutline: fontToInstallOutline
141
+ }), !renderConfirmDialog && !selectedFont && (0, _element.createElement)(_fontsGrid.default, null, fonts.map(font => (0, _element.createElement)(_fontCard.default, {
142
+ key: font.slug,
143
+ font: font,
144
+ onClick: () => {
145
+ setSelectedFont(font);
146
+ }
147
+ }))));
148
+ }
149
+ function Footer({
150
+ fontsToInstall,
151
+ resetFontsToInstall
152
+ }) {
153
+ const {
154
+ installFonts,
155
+ isInstalling
156
+ } = (0, _element.useContext)(_context.FontLibraryContext);
157
+ const handleInstall = async () => {
158
+ await installFonts(fontsToInstall);
159
+ resetFontsToInstall();
160
+ };
161
+ return (0, _element.createElement)(_components.Flex, {
162
+ justify: "flex-end"
163
+ }, (0, _element.createElement)(_components.Button, {
164
+ variant: "primary",
165
+ onClick: handleInstall,
166
+ isBusy: isInstalling,
167
+ disabled: isInstalling
168
+ }, (0, _i18n.__)('Install')));
169
+ }
170
+ var _default = FontCollection;
171
+ exports.default = _default;
172
+ //# sourceMappingURL=font-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_components","_compose","_i18n","_icons","_tabLayout","_interopRequireDefault","_context","_fontsGrid","_fontCard","_filterFonts","_collectionFontDetails","_toggleFont","_fontsOutline","_googleFontsConfirmDialog","DEFAULT_CATEGORY","id","name","__","FontCollection","_selectedCollection$d2","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","useState","fontsToInstall","setFontsToInstall","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","useContext","FontLibraryContext","selectedCollection","find","collection","useEffect","handleStorage","addEventListener","removeEventListener","resetFilters","collectionFonts","useMemo","_selectedCollection$d","data","fontFamilies","collectionCategories","categories","fonts","filterFonts","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","debounce","resetSearch","handleUnselectFont","handleToggleVariant","font","face","newFontsToInstall","toggleFont","fontToInstallOutline","getFontsOutline","resetFontsToInstall","createElement","default","title","description","handleBack","footer","length","Footer","Fragment","__experimentalSpacer","margin","Spinner","Flex","FlexItem","__experimentalInputControl","placeholder","label","onChange","prefix","Icon","icon","suffix","closeSmall","onClick","SelectControl","map","key","__experimentalText","slug","installFonts","isInstalling","handleInstall","justify","Button","variant","isBusy","disabled","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext, useEffect, useState, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalInputControl as InputControl,\n\t__experimentalText as Text,\n\tSelectControl,\n\tSpinner,\n\tIcon,\n\tFlexItem,\n\tFlex,\n\tButton,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { search, closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TabLayout from './tab-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport CollectionFontDetails from './collection-font-details';\nimport { toggleFont } from './utils/toggleFont';\nimport { getFontsOutline } from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\n\nconst DEFAULT_CATEGORY = {\n\tid: 'all',\n\tname: __( 'All' ),\n};\nfunction FontCollection( { id } ) {\n\tconst requiresPermission = id === 'default-font-collection';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn (\n\t\t\twindow.localStorage.getItem(\n\t\t\t\t'wp-font-library-default-font-collection-permission'\n\t\t\t) === 'true'\n\t\t);\n\t};\n\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst { collections, getFontCollection } = useContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.id === id\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}, [ id, requiresPermission ] );\n\n\tuseEffect( () => {\n\t\tgetFontCollection( id );\n\t\tresetFilters();\n\t}, [ id, getFontCollection ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t}, [ id ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.data?.fontFamilies ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.data?.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 handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetFilters( { ...filters, search: '' } );\n\t};\n\n\tconst handleUnselectFont = () => {\n\t\tsetSelectedFont( null );\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\treturn (\n\t\t<TabLayout\n\t\t\ttitle={\n\t\t\t\t! selectedFont ? selectedCollection.name : selectedFont.name\n\t\t\t}\n\t\t\tdescription={\n\t\t\t\t! selectedFont\n\t\t\t\t\t? selectedCollection.description\n\t\t\t\t\t: __( 'Select font variants to install.' )\n\t\t\t}\n\t\t\thandleBack={ !! selectedFont && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\tfontsToInstall.length > 0 && (\n\t\t\t\t\t<Footer\n\t\t\t\t\t\tfontsToInstall={ fontsToInstall }\n\t\t\t\t\t\tresetFontsToInstall={ resetFontsToInstall }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ renderConfirmDialog && (\n\t\t\t\t<>\n\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t<GoogleFontsConfirmDialog />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedCollection.data && (\n\t\t\t\t<Spinner />\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\tprefix={ <Icon icon={ search } /> }\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\tfilters?.search ? (\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\t\tonClick={ resetSearch }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\tvalue={ category.id }\n\t\t\t\t\t\t\t\t\t\tkey={ category.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\n\t\t\t<Spacer margin={ 4 } />\n\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t! selectedCollection?.data?.fontFamilies && <Spinner /> }\n\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t!! selectedCollection?.data?.fontFamilies?.length &&\n\t\t\t\t! fonts.length && (\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'No fonts found. Try with a different seach term'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && selectedFont && (\n\t\t\t\t<CollectionFontDetails\n\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\tfontToInstallOutline={ fontToInstallOutline }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<FontsGrid>\n\t\t\t\t\t{ fonts.map( ( font ) => (\n\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetSelectedFont( font );\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</FontsGrid>\n\t\t\t) }\n\t\t</TabLayout>\n\t);\n}\n\nfunction Footer( { fontsToInstall, resetFontsToInstall } ) {\n\tconst { installFonts, isInstalling } = useContext( FontLibraryContext );\n\n\tconst handleInstall = async () => {\n\t\tawait installFonts( fontsToInstall );\n\t\tresetFontsToInstall();\n\t};\n\n\treturn (\n\t\t<Flex justify=\"flex-end\">\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ handleInstall }\n\t\t\t\tisBusy={ isInstalling }\n\t\t\t\tdisabled={ isInstalling }\n\t\t\t>\n\t\t\t\t{ __( 'Install' ) }\n\t\t\t</Button>\n\t\t</Flex>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":"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"}
@@ -7,6 +7,7 @@ exports.default = void 0;
7
7
  var _element = require("@wordpress/element");
8
8
  var _components = require("@wordpress/components");
9
9
  var _context = require("./context");
10
+ var _previewStyles = require("./utils/preview-styles");
10
11
  /**
11
12
  * WordPress dependencies
12
13
  */
@@ -15,7 +16,16 @@ var _context = require("./context");
15
16
  * Internal dependencies
16
17
  */
17
18
 
19
+ function getPreviewUrl(fontFace) {
20
+ if (fontFace.preview) {
21
+ return fontFace.preview;
22
+ }
23
+ if (fontFace.src) {
24
+ return Array.isArray(fontFace.src) ? fontFace.src[0] : fontFace.src;
25
+ }
26
+ }
18
27
  function FontFaceDemo({
28
+ customPreviewUrl,
19
29
  fontFace,
20
30
  text,
21
31
  style = {}
@@ -26,21 +36,22 @@ function FontFaceDemo({
26
36
  const {
27
37
  loadFontFaceAsset
28
38
  } = (0, _element.useContext)(_context.FontLibraryContext);
29
- const {
30
- fontFamily,
31
- fontStyle,
32
- fontWeight
33
- } = fontFace;
34
- const demoStyle = {
35
- fontWeight,
36
- fontStyle,
37
- fontFamily,
39
+ const previewUrl = customPreviewUrl !== null && customPreviewUrl !== void 0 ? customPreviewUrl : getPreviewUrl(fontFace);
40
+ const isPreviewImage = previewUrl && previewUrl.match(/\.(png|jpg|jpeg|gif|svg)$/i);
41
+ const faceStyles = (0, _previewStyles.getFacePreviewStyle)(fontFace);
42
+ const textDemoStyle = {
43
+ whiteSpace: 'nowrap',
38
44
  flexShrink: 0,
39
45
  fontSize: '18px',
40
46
  opacity: isAssetLoaded ? '1' : '0',
41
47
  transition: 'opacity 0.3s ease-in-out',
48
+ ...faceStyles,
42
49
  ...style
43
50
  };
51
+ const imageDemoStyle = {
52
+ height: '23px',
53
+ width: 'auto'
54
+ };
44
55
  (0, _element.useEffect)(() => {
45
56
  const observer = new window.IntersectionObserver(([entry]) => {
46
57
  setIsIntersecting(entry.isIntersecting);
@@ -51,7 +62,7 @@ function FontFaceDemo({
51
62
  (0, _element.useEffect)(() => {
52
63
  const loadAsset = async () => {
53
64
  if (isIntersecting) {
54
- if (fontFace.src) {
65
+ if (!isPreviewImage && fontFace.src) {
55
66
  await loadFontFaceAsset(fontFace);
56
67
  }
57
68
  setIsAssetLoaded(true);
@@ -59,10 +70,16 @@ function FontFaceDemo({
59
70
  };
60
71
  loadAsset();
61
72
  }, [fontFace, isIntersecting, loadFontFaceAsset]);
62
- return (0, _element.createElement)(_components.__experimentalText, {
63
- style: demoStyle,
73
+ return (0, _element.createElement)("div", {
64
74
  ref: ref
65
- }, text);
75
+ }, isPreviewImage ? (0, _element.createElement)("img", {
76
+ src: previewUrl,
77
+ loading: "lazy",
78
+ alt: text,
79
+ style: imageDemoStyle
80
+ }) : (0, _element.createElement)(_components.__experimentalText, {
81
+ style: textDemoStyle
82
+ }, text));
66
83
  }
67
84
  var _default = FontFaceDemo;
68
85
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_components","_context","FontFaceDemo","fontFace","text","style","ref","useRef","isIntersecting","setIsIntersecting","useState","isAssetLoaded","setIsAssetLoaded","loadFontFaceAsset","useContext","FontLibraryContext","fontFamily","fontStyle","fontWeight","demoStyle","flexShrink","fontSize","opacity","transition","useEffect","observer","window","IntersectionObserver","entry","observe","current","disconnect","loadAsset","src","createElement","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-demo.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalText as Text } from '@wordpress/components';\nimport { useContext, useEffect, useState, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\n\nfunction FontFaceDemo( { fontFace, text, style = {} } ) {\n\tconst ref = useRef( null );\n\tconst [ isIntersecting, setIsIntersecting ] = useState( false );\n\tconst [ isAssetLoaded, setIsAssetLoaded ] = useState( false );\n\tconst { loadFontFaceAsset } = useContext( FontLibraryContext );\n\tconst { fontFamily, fontStyle, fontWeight } = fontFace;\n\n\tconst demoStyle = {\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tfontFamily,\n\t\tflexShrink: 0,\n\t\tfontSize: '18px',\n\t\topacity: isAssetLoaded ? '1' : '0',\n\t\ttransition: 'opacity 0.3s ease-in-out',\n\t\t...style,\n\t};\n\n\tuseEffect( () => {\n\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\tsetIsIntersecting( entry.isIntersecting );\n\t\t}, {} );\n\t\tobserver.observe( ref.current );\n\t\treturn () => observer.disconnect();\n\t}, [ ref ] );\n\n\tuseEffect( () => {\n\t\tconst loadAsset = async () => {\n\t\t\tif ( isIntersecting ) {\n\t\t\t\tif ( fontFace.src ) {\n\t\t\t\t\tawait loadFontFaceAsset( fontFace );\n\t\t\t\t}\n\t\t\t\tsetIsAssetLoaded( true );\n\t\t\t}\n\t\t};\n\t\tloadAsset();\n\t}, [ fontFace, isIntersecting, loadFontFaceAsset ] );\n\n\treturn (\n\t\t<Text style={ demoStyle } ref={ ref }>\n\t\t\t{ text }\n\t\t</Text>\n\t);\n}\n\nexport default FontFaceDemo;\n"],"mappings":";;;;;;AAIA,IAAAA,QAAA,GAAAC,OAAA;AADA,IAAAC,WAAA,GAAAD,OAAA;AAMA,IAAAE,QAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,SAASG,YAAYA,CAAE;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,KAAK,GAAG,CAAC;AAAE,CAAC,EAAG;EACvD,MAAMC,GAAG,GAAG,IAAAC,eAAM,EAAE,IAAK,CAAC;EAC1B,MAAM,CAAEC,cAAc,EAAEC,iBAAiB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAC/D,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAG,IAAAF,iBAAQ,EAAE,KAAM,CAAC;EAC7D,MAAM;IAAEG;EAAkB,CAAC,GAAG,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EAC9D,MAAM;IAAEC,UAAU;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGf,QAAQ;EAEtD,MAAMgB,SAAS,GAAG;IACjBD,UAAU;IACVD,SAAS;IACTD,UAAU;IACVI,UAAU,EAAE,CAAC;IACbC,QAAQ,EAAE,MAAM;IAChBC,OAAO,EAAEX,aAAa,GAAG,GAAG,GAAG,GAAG;IAClCY,UAAU,EAAE,0BAA0B;IACtC,GAAGlB;EACJ,CAAC;EAED,IAAAmB,kBAAS,EAAE,MAAM;IAChB,MAAMC,QAAQ,GAAG,IAAIC,MAAM,CAACC,oBAAoB,CAAE,CAAE,CAAEC,KAAK,CAAE,KAAM;MAClEnB,iBAAiB,CAAEmB,KAAK,CAACpB,cAAe,CAAC;IAC1C,CAAC,EAAE,CAAC,CAAE,CAAC;IACPiB,QAAQ,CAACI,OAAO,CAAEvB,GAAG,CAACwB,OAAQ,CAAC;IAC/B,OAAO,MAAML,QAAQ,CAACM,UAAU,CAAC,CAAC;EACnC,CAAC,EAAE,CAAEzB,GAAG,CAAG,CAAC;EAEZ,IAAAkB,kBAAS,EAAE,MAAM;IAChB,MAAMQ,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC7B,IAAKxB,cAAc,EAAG;QACrB,IAAKL,QAAQ,CAAC8B,GAAG,EAAG;UACnB,MAAMpB,iBAAiB,CAAEV,QAAS,CAAC;QACpC;QACAS,gBAAgB,CAAE,IAAK,CAAC;MACzB;IACD,CAAC;IACDoB,SAAS,CAAC,CAAC;EACZ,CAAC,EAAE,CAAE7B,QAAQ,EAAEK,cAAc,EAAEK,iBAAiB,CAAG,CAAC;EAEpD,OACC,IAAAf,QAAA,CAAAoC,aAAA,EAAClC,WAAA,CAAAmC,kBAAI;IAAC9B,KAAK,EAAGc,SAAW;IAACb,GAAG,EAAGA;EAAK,GAClCF,IACG,CAAC;AAET;AAAC,IAAAgC,QAAA,GAEclC,YAAY;AAAAmC,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_element","require","_components","_context","_previewStyles","getPreviewUrl","fontFace","preview","src","Array","isArray","FontFaceDemo","customPreviewUrl","text","style","ref","useRef","isIntersecting","setIsIntersecting","useState","isAssetLoaded","setIsAssetLoaded","loadFontFaceAsset","useContext","FontLibraryContext","previewUrl","isPreviewImage","match","faceStyles","getFacePreviewStyle","textDemoStyle","whiteSpace","flexShrink","fontSize","opacity","transition","imageDemoStyle","height","width","useEffect","observer","window","IntersectionObserver","entry","observe","current","disconnect","loadAsset","createElement","loading","alt","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-demo.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalText as Text } from '@wordpress/components';\nimport { useContext, useEffect, useState, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport { getFacePreviewStyle } from './utils/preview-styles';\n\nfunction getPreviewUrl( fontFace ) {\n\tif ( fontFace.preview ) {\n\t\treturn fontFace.preview;\n\t}\n\tif ( fontFace.src ) {\n\t\treturn Array.isArray( fontFace.src ) ? fontFace.src[ 0 ] : fontFace.src;\n\t}\n}\n\nfunction FontFaceDemo( { customPreviewUrl, fontFace, text, style = {} } ) {\n\tconst ref = useRef( null );\n\tconst [ isIntersecting, setIsIntersecting ] = useState( false );\n\tconst [ isAssetLoaded, setIsAssetLoaded ] = useState( false );\n\tconst { loadFontFaceAsset } = useContext( FontLibraryContext );\n\n\tconst previewUrl = customPreviewUrl ?? getPreviewUrl( fontFace );\n\tconst isPreviewImage =\n\t\tpreviewUrl && previewUrl.match( /\\.(png|jpg|jpeg|gif|svg)$/i );\n\n\tconst faceStyles = getFacePreviewStyle( fontFace );\n\tconst textDemoStyle = {\n\t\twhiteSpace: 'nowrap',\n\t\tflexShrink: 0,\n\t\tfontSize: '18px',\n\t\topacity: isAssetLoaded ? '1' : '0',\n\t\ttransition: 'opacity 0.3s ease-in-out',\n\t\t...faceStyles,\n\t\t...style,\n\t};\n\tconst imageDemoStyle = {\n\t\theight: '23px',\n\t\twidth: 'auto',\n\t};\n\n\tuseEffect( () => {\n\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\tsetIsIntersecting( entry.isIntersecting );\n\t\t}, {} );\n\t\tobserver.observe( ref.current );\n\t\treturn () => observer.disconnect();\n\t}, [ ref ] );\n\n\tuseEffect( () => {\n\t\tconst loadAsset = async () => {\n\t\t\tif ( isIntersecting ) {\n\t\t\t\tif ( ! isPreviewImage && fontFace.src ) {\n\t\t\t\t\tawait loadFontFaceAsset( fontFace );\n\t\t\t\t}\n\t\t\t\tsetIsAssetLoaded( true );\n\t\t\t}\n\t\t};\n\t\tloadAsset();\n\t}, [ fontFace, isIntersecting, loadFontFaceAsset ] );\n\n\treturn (\n\t\t<div ref={ ref }>\n\t\t\t{ isPreviewImage ? (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ previewUrl }\n\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t\talt={ text }\n\t\t\t\t\tstyle={ imageDemoStyle }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Text style={ textDemoStyle }>{ text }</Text>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontFaceDemo;\n"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _element = require("@wordpress/element");
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _components = require("@wordpress/components");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ function GoogleFontsConfirmDialog() {
15
+ const handleConfirm = () => {
16
+ // eslint-disable-next-line no-undef
17
+ window.localStorage.setItem('wp-font-library-default-font-collection-permission', 'true');
18
+ window.dispatchEvent(new Event('storage'));
19
+ };
20
+ return (0, _element.createElement)("div", {
21
+ className: "font-library__google-fonts-confirm"
22
+ }, (0, _element.createElement)(_components.Card, null, (0, _element.createElement)(_components.CardBody, null, (0, _element.createElement)(_components.__experimentalText, {
23
+ as: "h3"
24
+ }, "Connect to Google Fonts"), (0, _element.createElement)(_components.__experimentalSpacer, {
25
+ margin: 6
26
+ }), (0, _element.createElement)(_components.__experimentalText, {
27
+ as: "p"
28
+ }, (0, _i18n.__)('To install fonts from Google you must give permission to connect directly to Google servers. The fonts you install will be downloaded from Google and stored on your site. Your site will then use these locally-hosted fonts.')), (0, _element.createElement)(_components.__experimentalSpacer, {
29
+ margin: 3
30
+ }), (0, _element.createElement)(_components.__experimentalText, {
31
+ as: "p"
32
+ }, (0, _i18n.__)('You can alternatively upload files directly on the Library tab.')), (0, _element.createElement)(_components.__experimentalSpacer, {
33
+ margin: 6
34
+ }), (0, _element.createElement)(_components.Button, {
35
+ variant: "primary",
36
+ onClick: handleConfirm
37
+ }, (0, _i18n.__)('Allow access to Google Fonts')))));
38
+ }
39
+ var _default = GoogleFontsConfirmDialog;
40
+ exports.default = _default;
41
+ //# sourceMappingURL=google-fonts-confirm-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_components","GoogleFontsConfirmDialog","handleConfirm","window","localStorage","setItem","dispatchEvent","Event","_element","createElement","className","Card","CardBody","__experimentalText","as","__experimentalSpacer","margin","__","Button","variant","onClick","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tCard,\n\tCardBody,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\nfunction GoogleFontsConfirmDialog() {\n\tconst handleConfirm = () => {\n\t\t// eslint-disable-next-line no-undef\n\t\twindow.localStorage.setItem(\n\t\t\t'wp-font-library-default-font-collection-permission',\n\t\t\t'true'\n\t\t);\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library__google-fonts-confirm\">\n\t\t\t<Card>\n\t\t\t\t<CardBody>\n\t\t\t\t\t<Text as=\"h3\">Connect to Google Fonts</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'To install fonts from Google you must give permission to connect directly to Google servers. The fonts you install will be downloaded from Google and stored on your site. Your site will then use these locally-hosted fonts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 3 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'You can alternatively upload files directly on the Library tab.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Button variant=\"primary\" onClick={ handleConfirm }>\n\t\t\t\t\t\t{ __( 'Allow access to Google Fonts' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</CardBody>\n\t\t\t</Card>\n\t\t</div>\n\t);\n}\n\nexport default GoogleFontsConfirmDialog;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAUA,SAASE,wBAAwBA,CAAA,EAAG;EACnC,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC3B;IACAC,MAAM,CAACC,YAAY,CAACC,OAAO,CAC1B,oDAAoD,EACpD,MACD,CAAC;IACDF,MAAM,CAACG,aAAa,CAAE,IAAIC,KAAK,CAAE,SAAU,CAAE,CAAC;EAC/C,CAAC;EAED,OACC,IAAAC,QAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAoC,GAClD,IAAAF,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAW,IAAI,QACJ,IAAAH,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAY,QAAQ,QACR,IAAAJ,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAa,kBAAI;IAACC,EAAE,EAAC;EAAI,GAAC,yBAA6B,CAAC,EAC5C,IAAAN,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAe,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAR,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAa,kBAAI;IAACC,EAAE,EAAC;EAAG,GACT,IAAAG,QAAE,EACH,gOACD,CACK,CAAC,EACP,IAAAT,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAe,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAR,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAa,kBAAI;IAACC,EAAE,EAAC;EAAG,GACT,IAAAG,QAAE,EACH,iEACD,CACK,CAAC,EACP,IAAAT,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAe,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAR,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAkB,MAAM;IAACC,OAAO,EAAC,SAAS;IAACC,OAAO,EAAGlB;EAAe,GAChD,IAAAe,QAAE,EAAE,8BAA+B,CAC9B,CACC,CACL,CACF,CAAC;AAER;AAAC,IAAAI,QAAA,GAEcpB,wBAAwB;AAAAqB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -9,7 +9,8 @@ var _element = require("@wordpress/element");
9
9
  var _i18n = require("@wordpress/i18n");
10
10
  var _components = require("@wordpress/components");
11
11
  var _installedFonts = _interopRequireDefault(require("./installed-fonts"));
12
- var _constants = require("./utils/constants");
12
+ var _fontCollection = _interopRequireDefault(require("./font-collection"));
13
+ var _context = require("./context");
13
14
  /**
14
15
  * WordPress dependencies
15
16
  */
@@ -18,27 +19,44 @@ var _constants = require("./utils/constants");
18
19
  * Internal dependencies
19
20
  */
20
21
 
22
+ const INSTALLED_FONTS_TAB = {
23
+ name: 'installed-fonts',
24
+ title: (0, _i18n.__)('Library'),
25
+ className: 'installed-fonts'
26
+ };
27
+ const tabsFromCollections = collections => collections.map(({
28
+ id,
29
+ name
30
+ }) => ({
31
+ name: id,
32
+ title: collections.length === 1 && id === 'default-font-collection' ? (0, _i18n.__)('Install Fonts') : name,
33
+ className: 'collection'
34
+ }));
21
35
  function FontLibraryModal({
22
36
  onRequestClose,
23
37
  initialTabName = 'installed-fonts'
24
38
  }) {
39
+ const {
40
+ collections
41
+ } = (0, _element.useContext)(_context.FontLibraryContext);
42
+ const tabs = [INSTALLED_FONTS_TAB, ...tabsFromCollections(collections || [])];
25
43
  return (0, _element.createElement)(_components.Modal, {
26
44
  title: (0, _i18n.__)('Fonts'),
27
45
  onRequestClose: onRequestClose,
28
46
  isFullScreen: true,
29
- className: "font-library-modal",
30
- style: {
31
- width: '65vw'
32
- }
47
+ className: "font-library-modal"
33
48
  }, (0, _element.createElement)(_components.TabPanel, {
34
49
  className: "font-library-modal__tab-panel",
35
50
  initialTabName: initialTabName,
36
- tabs: _constants.MODAL_TABS
51
+ tabs: tabs
37
52
  }, tab => {
38
53
  switch (tab.name) {
39
54
  case 'installed-fonts':
40
- default:
41
55
  return (0, _element.createElement)(_installedFonts.default, null);
56
+ default:
57
+ return (0, _element.createElement)(_fontCollection.default, {
58
+ id: tab.name
59
+ });
42
60
  }
43
61
  }));
44
62
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_installedFonts","_interopRequireDefault","_constants","FontLibraryModal","onRequestClose","initialTabName","_element","createElement","Modal","title","__","isFullScreen","className","style","width","TabPanel","tabs","MODAL_TABS","tab","name","default","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Modal, TabPanel } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport InstalledFonts from './installed-fonts';\nimport { MODAL_TABS } from './utils/constants';\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tinitialTabName = 'installed-fonts',\n} ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Fonts' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tisFullScreen={ true }\n\t\t\tclassName=\"font-library-modal\"\n\t\t\tstyle={ { width: '65vw' } }\n\t\t>\n\t\t\t<TabPanel\n\t\t\t\tclassName=\"font-library-modal__tab-panel\"\n\t\t\t\tinitialTabName={ initialTabName }\n\t\t\t\ttabs={ MODAL_TABS }\n\t\t\t>\n\t\t\t\t{ ( tab ) => {\n\t\t\t\t\tswitch ( tab.name ) {\n\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn <InstalledFonts />;\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t</TabPanel>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,eAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAIA,SAASK,gBAAgBA,CAAE;EAC1BC,cAAc;EACdC,cAAc,GAAG;AAClB,CAAC,EAAG;EACH,OACC,IAAAC,QAAA,CAAAC,aAAA,EAACR,WAAA,CAAAS,KAAK;IACLC,KAAK,EAAG,IAAAC,QAAE,EAAE,OAAQ,CAAG;IACvBN,cAAc,EAAGA,cAAgB;IACjCO,YAAY,EAAG,IAAM;IACrBC,SAAS,EAAC,oBAAoB;IAC9BC,KAAK,EAAG;MAAEC,KAAK,EAAE;IAAO;EAAG,GAE3B,IAAAR,QAAA,CAAAC,aAAA,EAACR,WAAA,CAAAgB,QAAQ;IACRH,SAAS,EAAC,+BAA+B;IACzCP,cAAc,EAAGA,cAAgB;IACjCW,IAAI,EAAGC;EAAY,GAEfC,GAAG,IAAM;IACZ,QAASA,GAAG,CAACC,IAAI;MAChB,KAAK,iBAAiB;MACtB;QACC,OAAO,IAAAb,QAAA,CAAAC,aAAA,EAACP,eAAA,CAAAoB,OAAc,MAAE,CAAC;IAC3B;EACD,CACS,CACJ,CAAC;AAEV;AAAC,IAAAC,QAAA,GAEclB,gBAAgB;AAAAmB,OAAA,CAAAF,OAAA,GAAAC,QAAA"}
1
+ {"version":3,"names":["_element","require","_i18n","_components","_installedFonts","_interopRequireDefault","_fontCollection","_context","INSTALLED_FONTS_TAB","name","title","__","className","tabsFromCollections","collections","map","id","length","FontLibraryModal","onRequestClose","initialTabName","useContext","FontLibraryContext","tabs","createElement","Modal","isFullScreen","TabPanel","tab","default","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Modal, TabPanel } from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InstalledFonts from './installed-fonts';\nimport FontCollection from './font-collection';\nimport { FontLibraryContext } from './context';\n\nconst INSTALLED_FONTS_TAB = {\n\tname: 'installed-fonts',\n\ttitle: __( 'Library' ),\n\tclassName: 'installed-fonts',\n};\n\nconst tabsFromCollections = ( collections ) =>\n\tcollections.map( ( { id, name } ) => ( {\n\t\tname: id,\n\t\ttitle:\n\t\t\tcollections.length === 1 && id === 'default-font-collection'\n\t\t\t\t? __( 'Install Fonts' )\n\t\t\t\t: name,\n\t\tclassName: 'collection',\n\t} ) );\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tinitialTabName = 'installed-fonts',\n} ) {\n\tconst { collections } = useContext( FontLibraryContext );\n\n\tconst tabs = [\n\t\tINSTALLED_FONTS_TAB,\n\t\t...tabsFromCollections( collections || [] ),\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<TabPanel\n\t\t\t\tclassName=\"font-library-modal__tab-panel\"\n\t\t\t\tinitialTabName={ initialTabName }\n\t\t\t\ttabs={ tabs }\n\t\t\t>\n\t\t\t\t{ ( tab ) => {\n\t\t\t\t\tswitch ( tab.name ) {\n\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\t\treturn <InstalledFonts />;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn <FontCollection id={ tab.name } />;\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t</TabPanel>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n"],"mappings":";;;;;;;AAKA,IAAAA,QAAA,GAAAC,OAAA;AAFA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAMA,IAAAG,eAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAZA;AACA;AACA;;AAKA;AACA;AACA;;AAKA,MAAMO,mBAAmB,GAAG;EAC3BC,IAAI,EAAE,iBAAiB;EACvBC,KAAK,EAAE,IAAAC,QAAE,EAAE,SAAU,CAAC;EACtBC,SAAS,EAAE;AACZ,CAAC;AAED,MAAMC,mBAAmB,GAAKC,WAAW,IACxCA,WAAW,CAACC,GAAG,CAAE,CAAE;EAAEC,EAAE;EAAEP;AAAK,CAAC,MAAQ;EACtCA,IAAI,EAAEO,EAAE;EACRN,KAAK,EACJI,WAAW,CAACG,MAAM,KAAK,CAAC,IAAID,EAAE,KAAK,yBAAyB,GACzD,IAAAL,QAAE,EAAE,eAAgB,CAAC,GACrBF,IAAI;EACRG,SAAS,EAAE;AACZ,CAAC,CAAG,CAAC;AAEN,SAASM,gBAAgBA,CAAE;EAC1BC,cAAc;EACdC,cAAc,GAAG;AAClB,CAAC,EAAG;EACH,MAAM;IAAEN;EAAY,CAAC,GAAG,IAAAO,mBAAU,EAAEC,2BAAmB,CAAC;EAExD,MAAMC,IAAI,GAAG,CACZf,mBAAmB,EACnB,GAAGK,mBAAmB,CAAEC,WAAW,IAAI,EAAG,CAAC,CAC3C;EAED,OACC,IAAAd,QAAA,CAAAwB,aAAA,EAACrB,WAAA,CAAAsB,KAAK;IACLf,KAAK,EAAG,IAAAC,QAAE,EAAE,OAAQ,CAAG;IACvBQ,cAAc,EAAGA,cAAgB;IACjCO,YAAY;IACZd,SAAS,EAAC;EAAoB,GAE9B,IAAAZ,QAAA,CAAAwB,aAAA,EAACrB,WAAA,CAAAwB,QAAQ;IACRf,SAAS,EAAC,+BAA+B;IACzCQ,cAAc,EAAGA,cAAgB;IACjCG,IAAI,EAAGA;EAAM,GAETK,GAAG,IAAM;IACZ,QAASA,GAAG,CAACnB,IAAI;MAChB,KAAK,iBAAiB;QACrB,OAAO,IAAAT,QAAA,CAAAwB,aAAA,EAACpB,eAAA,CAAAyB,OAAc,MAAE,CAAC;MAC1B;QACC,OAAO,IAAA7B,QAAA,CAAAwB,aAAA,EAAClB,eAAA,CAAAuB,OAAc;UAACb,EAAE,EAAGY,GAAG,CAACnB;QAAM,CAAE,CAAC;IAC3C;EACD,CACS,CACJ,CAAC;AAEV;AAAC,IAAAqB,QAAA,GAEcZ,gBAAgB;AAAAa,OAAA,CAAAF,OAAA,GAAAC,QAAA"}
@@ -84,9 +84,9 @@ function InstalledFonts() {
84
84
  onClick: () => {
85
85
  handleSelectFont(font);
86
86
  }
87
- })))), baseThemeFonts.length > 0 && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalSpacer, {
87
+ }))), (0, _element.createElement)(_components.__experimentalSpacer, {
88
88
  margin: 8
89
- }), (0, _element.createElement)(_fontsGrid.default, {
89
+ })), baseThemeFonts.length > 0 && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_fontsGrid.default, {
90
90
  title: (0, _i18n.__)('Theme Fonts')
91
91
  }, baseThemeFonts.map(font => (0, _element.createElement)(_libraryFontCard.default, {
92
92
  font: font,
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_components","_tabLayout","_interopRequireDefault","_context","_fontsGrid","_libraryFontDetails","_libraryFontCard","_localFonts","_confirmDeleteDialog","_lockUnlock","ProgressBar","unlock","componentsPrivateApis","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFont","isResolvingLibrary","useContext","FontLibraryContext","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","handleUnselectFont","handleSelectFont","font","handleConfirmUninstall","result","handleUninstallClick","handleCancelUninstall","tabDescription","__","shouldDisplayDeleteButton","source","useEffect","createElement","default","title","name","description","handleBack","footer","Footer","Fragment","Spinner","length","__experimentalSpacer","margin","map","key","slug","onClick","saveFontFamilies","fontFamiliesHasChanges","isInstalling","__experimentalHStack","justify","Button","variant","disabled","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport {\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TabLayout from './tab-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport LibraryFontDetails from './library-font-details';\nimport LibraryFontCard from './library-font-card';\nimport LocalFonts from './local-fonts';\nimport ConfirmDeleteDialog from './confirm-delete-dialog';\nimport { unlock } from '../../../lock-unlock';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFont,\n\t\tisResolvingLibrary,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\n\tconst handleUnselectFont = () => {\n\t\thandleSetLibraryFontSelected( null );\n\t};\n\n\tconst handleSelectFont = ( font ) => {\n\t\thandleSetLibraryFontSelected( font );\n\t};\n\n\tconst handleConfirmUninstall = async () => {\n\t\tconst result = await uninstallFont( libraryFontSelected );\n\t\t// If the font was succesfully uninstalled it is unselected\n\t\tif ( result ) {\n\t\t\thandleUnselectFont();\n\t\t}\n\t\tsetIsConfirmDeleteOpen( false );\n\t};\n\n\tconst handleUninstallClick = async () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsConfirmDeleteOpen( false );\n\t};\n\n\tconst tabDescription = !! libraryFontSelected\n\t\t? __(\n\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t )\n\t\t: null;\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected && libraryFontSelected?.source !== 'theme';\n\n\tuseEffect( () => {\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<TabLayout\n\t\t\ttitle={ libraryFontSelected?.name || '' }\n\t\t\tdescription={ tabDescription }\n\t\t\thandleBack={ !! libraryFontSelected && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\t<Footer\n\t\t\t\t\tshouldDisplayDeleteButton={ shouldDisplayDeleteButton }\n\t\t\t\t\thandleUninstallClick={ handleUninstallClick }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<ConfirmDeleteDialog\n\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t/>\n\n\t\t\t{ ! libraryFontSelected && (\n\t\t\t\t<>\n\t\t\t\t\t{ isResolvingLibrary && <Spinner /> }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t<FontsGrid>\n\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\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</FontsGrid>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t<FontsGrid title={ __( 'Theme Fonts' ) }>\n\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\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</FontsGrid>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t<LocalFonts />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ libraryFontSelected && (\n\t\t\t\t<LibraryFontDetails\n\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</TabLayout>\n\t);\n}\n\nfunction Footer( { shouldDisplayDeleteButton, handleUninstallClick } ) {\n\tconst { saveFontFamilies, fontFamiliesHasChanges, isInstalling } =\n\t\tuseContext( FontLibraryContext );\n\treturn (\n\t\t<HStack justify=\"space-between\">\n\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t<div>\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ handleUninstallClick }>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ saveFontFamilies }\n\t\t\t>\n\t\t\t\t{ __( 'Update' ) }\n\t\t\t</Button>\n\t\t</HStack>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_i18n","_components","_tabLayout","_interopRequireDefault","_context","_fontsGrid","_libraryFontDetails","_libraryFontCard","_localFonts","_confirmDeleteDialog","_lockUnlock","ProgressBar","unlock","componentsPrivateApis","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFont","isResolvingLibrary","useContext","FontLibraryContext","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","handleUnselectFont","handleSelectFont","font","handleConfirmUninstall","result","handleUninstallClick","handleCancelUninstall","tabDescription","__","shouldDisplayDeleteButton","source","useEffect","createElement","default","title","name","description","handleBack","footer","Footer","Fragment","Spinner","length","__experimentalSpacer","margin","map","key","slug","onClick","saveFontFamilies","fontFamiliesHasChanges","isInstalling","__experimentalHStack","justify","Button","variant","disabled","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport {\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TabLayout from './tab-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport LibraryFontDetails from './library-font-details';\nimport LibraryFontCard from './library-font-card';\nimport LocalFonts from './local-fonts';\nimport ConfirmDeleteDialog from './confirm-delete-dialog';\nimport { unlock } from '../../../lock-unlock';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFont,\n\t\tisResolvingLibrary,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\n\tconst handleUnselectFont = () => {\n\t\thandleSetLibraryFontSelected( null );\n\t};\n\n\tconst handleSelectFont = ( font ) => {\n\t\thandleSetLibraryFontSelected( font );\n\t};\n\n\tconst handleConfirmUninstall = async () => {\n\t\tconst result = await uninstallFont( libraryFontSelected );\n\t\t// If the font was succesfully uninstalled it is unselected\n\t\tif ( result ) {\n\t\t\thandleUnselectFont();\n\t\t}\n\t\tsetIsConfirmDeleteOpen( false );\n\t};\n\n\tconst handleUninstallClick = async () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsConfirmDeleteOpen( false );\n\t};\n\n\tconst tabDescription = !! libraryFontSelected\n\t\t? __(\n\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t )\n\t\t: null;\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected && libraryFontSelected?.source !== 'theme';\n\n\tuseEffect( () => {\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<TabLayout\n\t\t\ttitle={ libraryFontSelected?.name || '' }\n\t\t\tdescription={ tabDescription }\n\t\t\thandleBack={ !! libraryFontSelected && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\t<Footer\n\t\t\t\t\tshouldDisplayDeleteButton={ shouldDisplayDeleteButton }\n\t\t\t\t\thandleUninstallClick={ handleUninstallClick }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<ConfirmDeleteDialog\n\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t/>\n\n\t\t\t{ ! libraryFontSelected && (\n\t\t\t\t<>\n\t\t\t\t\t{ isResolvingLibrary && <Spinner /> }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t<FontsGrid>\n\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\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</FontsGrid>\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<FontsGrid title={ __( 'Theme Fonts' ) }>\n\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\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</FontsGrid>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t<LocalFonts />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ libraryFontSelected && (\n\t\t\t\t<LibraryFontDetails\n\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</TabLayout>\n\t);\n}\n\nfunction Footer( { shouldDisplayDeleteButton, handleUninstallClick } ) {\n\tconst { saveFontFamilies, fontFamiliesHasChanges, isInstalling } =\n\t\tuseContext( FontLibraryContext );\n\treturn (\n\t\t<HStack justify=\"space-between\">\n\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t<div>\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ handleUninstallClick }>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ saveFontFamilies }\n\t\t\t>\n\t\t\t\t{ __( 'Update' ) }\n\t\t\t</Button>\n\t\t</HStack>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":";;;;;;;AAIA,IAAAA,QAAA,GAAAC,OAAA;AADA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAWA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAF,sBAAA,CAAAJ,OAAA;AACA,IAAAO,mBAAA,GAAAH,sBAAA,CAAAJ,OAAA;AACA,IAAAQ,gBAAA,GAAAJ,sBAAA,CAAAJ,OAAA;AACA,IAAAS,WAAA,GAAAL,sBAAA,CAAAJ,OAAA;AACA,IAAAU,oBAAA,GAAAN,sBAAA,CAAAJ,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AAvBA;AACA;AACA;;AAWA;AACA;AACA;;AASA,MAAM;EAAEY;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEvD,SAASC,cAAcA,CAAA,EAAG;EACzB,MAAM;IACLC,eAAe;IACfC,mBAAmB;IACnBC,cAAc;IACdC,4BAA4B;IAC5BC,cAAc;IACdC,aAAa;IACbC;EACD,CAAC,GAAG,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EACpC,MAAM,CAAEC,mBAAmB,EAAEC,sBAAsB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAEzE,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;IAChCT,4BAA4B,CAAE,IAAK,CAAC;EACrC,CAAC;EAED,MAAMU,gBAAgB,GAAKC,IAAI,IAAM;IACpCX,4BAA4B,CAAEW,IAAK,CAAC;EACrC,CAAC;EAED,MAAMC,sBAAsB,GAAG,MAAAA,CAAA,KAAY;IAC1C,MAAMC,MAAM,GAAG,MAAMX,aAAa,CAAEJ,mBAAoB,CAAC;IACzD;IACA,IAAKe,MAAM,EAAG;MACbJ,kBAAkB,CAAC,CAAC;IACrB;IACAF,sBAAsB,CAAE,KAAM,CAAC;EAChC,CAAC;EAED,MAAMO,oBAAoB,GAAG,MAAAA,CAAA,KAAY;IACxCP,sBAAsB,CAAE,IAAK,CAAC;EAC/B,CAAC;EAED,MAAMQ,qBAAqB,GAAGA,CAAA,KAAM;IACnCR,sBAAsB,CAAE,KAAM,CAAC;EAChC,CAAC;EAED,MAAMS,cAAc,GAAG,CAAC,CAAElB,mBAAmB,GAC1C,IAAAmB,QAAE,EACF,wFACA,CAAC,GACD,IAAI;EAEP,MAAMC,yBAAyB,GAC9B,CAAC,CAAEpB,mBAAmB,IAAIA,mBAAmB,EAAEqB,MAAM,KAAK,OAAO;EAElE,IAAAC,kBAAS,EAAE,MAAM;IAChBnB,cAAc,CAAC,CAAC;EACjB,CAAC,EAAE,EAAG,CAAC;EAEP,OACC,IAAArB,QAAA,CAAAyC,aAAA,EAACrC,UAAA,CAAAsC,OAAS;IACTC,KAAK,EAAGzB,mBAAmB,EAAE0B,IAAI,IAAI,EAAI;IACzCC,WAAW,EAAGT,cAAgB;IAC9BU,UAAU,EAAG,CAAC,CAAE5B,mBAAmB,IAAIW,kBAAoB;IAC3DkB,MAAM,EACL,IAAA/C,QAAA,CAAAyC,aAAA,EAACO,MAAM;MACNV,yBAAyB,EAAGA,yBAA2B;MACvDJ,oBAAoB,EAAGA;IAAsB,CAC7C;EACD,GAED,IAAAlC,QAAA,CAAAyC,aAAA,EAAC9B,oBAAA,CAAA+B,OAAmB;IACnBX,IAAI,EAAGb,mBAAqB;IAC5BQ,mBAAmB,EAAGA,mBAAqB;IAC3CM,sBAAsB,EAAGA,sBAAwB;IACjDG,qBAAqB,EAAGA;EAAuB,CAC/C,CAAC,EAEA,CAAEjB,mBAAmB,IACtB,IAAAlB,QAAA,CAAAyC,aAAA,EAAAzC,QAAA,CAAAiD,QAAA,QACG1B,kBAAkB,IAAI,IAAAvB,QAAA,CAAAyC,aAAA,EAACtC,WAAA,CAAA+C,OAAO,MAAE,CAAC,EACjCjC,eAAe,CAACkC,MAAM,GAAG,CAAC,IAC3B,IAAAnD,QAAA,CAAAyC,aAAA,EAAAzC,QAAA,CAAAiD,QAAA,QACC,IAAAjD,QAAA,CAAAyC,aAAA,EAACtC,WAAA,CAAAiD,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAArD,QAAA,CAAAyC,aAAA,EAAClC,UAAA,CAAAmC,OAAS,QACPzB,eAAe,CAACqC,GAAG,CAAIvB,IAAI,IAC5B,IAAA/B,QAAA,CAAAyC,aAAA,EAAChC,gBAAA,CAAAiC,OAAe;IACfX,IAAI,EAAGA,IAAM;IACbwB,GAAG,EAAGxB,IAAI,CAACyB,IAAM;IACjBC,OAAO,EAAGA,CAAA,KAAM;MACf3B,gBAAgB,CAAEC,IAAK,CAAC;IACzB;EAAG,CACH,CACA,CACQ,CAAC,EACZ,IAAA/B,QAAA,CAAAyC,aAAA,EAACtC,WAAA,CAAAiD,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CACrB,CACF,EAEClC,cAAc,CAACgC,MAAM,GAAG,CAAC,IAC1B,IAAAnD,QAAA,CAAAyC,aAAA,EAAAzC,QAAA,CAAAiD,QAAA,QACC,IAAAjD,QAAA,CAAAyC,aAAA,EAAClC,UAAA,CAAAmC,OAAS;IAACC,KAAK,EAAG,IAAAN,QAAE,EAAE,aAAc;EAAG,GACrClB,cAAc,CAACmC,GAAG,CAAIvB,IAAI,IAC3B,IAAA/B,QAAA,CAAAyC,aAAA,EAAChC,gBAAA,CAAAiC,OAAe;IACfX,IAAI,EAAGA,IAAM;IACbwB,GAAG,EAAGxB,IAAI,CAACyB,IAAM;IACjBC,OAAO,EAAGA,CAAA,KAAM;MACf3B,gBAAgB,CAAEC,IAAK,CAAC;IACzB;EAAG,CACH,CACA,CACQ,CACV,CACF,EAED,IAAA/B,QAAA,CAAAyC,aAAA,EAACtC,WAAA,CAAAiD,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAArD,QAAA,CAAAyC,aAAA,EAAC/B,WAAA,CAAAgC,OAAU,MAAE,CACZ,CACF,EAECxB,mBAAmB,IACpB,IAAAlB,QAAA,CAAAyC,aAAA,EAACjC,mBAAA,CAAAkC,OAAkB;IAClBX,IAAI,EAAGb,mBAAqB;IAC5BQ,mBAAmB,EAAGA,mBAAqB;IAC3CM,sBAAsB,EAAGA,sBAAwB;IACjDG,qBAAqB,EAAGA;EAAuB,CAC/C,CAEQ,CAAC;AAEd;AAEA,SAASa,MAAMA,CAAE;EAAEV,yBAAyB;EAAEJ;AAAqB,CAAC,EAAG;EACtE,MAAM;IAAEwB,gBAAgB;IAAEC,sBAAsB;IAAEC;EAAa,CAAC,GAC/D,IAAApC,mBAAU,EAAEC,2BAAmB,CAAC;EACjC,OACC,IAAAzB,QAAA,CAAAyC,aAAA,EAACtC,WAAA,CAAA0D,oBAAM;IAACC,OAAO,EAAC;EAAe,GAC5BF,YAAY,IAAI,IAAA5D,QAAA,CAAAyC,aAAA,EAAC5B,WAAW,MAAE,CAAC,EACjC,IAAAb,QAAA,CAAAyC,aAAA,eACGH,yBAAyB,IAC1B,IAAAtC,QAAA,CAAAyC,aAAA,EAACtC,WAAA,CAAA4D,MAAM;IAACC,OAAO,EAAC,UAAU;IAACP,OAAO,EAAGvB;EAAsB,GACxD,IAAAG,QAAE,EAAE,QAAS,CACR,CAEL,CAAC,EACN,IAAArC,QAAA,CAAAyC,aAAA,EAACtC,WAAA,CAAA4D,MAAM;IACNE,QAAQ,EAAG,CAAEN,sBAAwB;IACrCK,OAAO,EAAC,SAAS;IACjBP,OAAO,EAAGC;EAAkB,GAE1B,IAAArB,QAAE,EAAE,QAAS,CACR,CACD,CAAC;AAEX;AAAC,IAAA6B,QAAA,GAEclD,cAAc;AAAAmD,OAAA,CAAAzB,OAAA,GAAAwB,QAAA"}
@@ -7,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _element = require("@wordpress/element");
9
9
  var _i18n = require("@wordpress/i18n");
10
- var _components = require("@wordpress/components");
11
- var _icons = require("@wordpress/icons");
12
10
  var _fontCard = _interopRequireDefault(require("./font-card"));
13
11
  var _context = require("./context");
14
12
  /**
@@ -33,9 +31,6 @@ function LibraryFontCard({
33
31
  return (0, _element.createElement)(_fontCard.default, {
34
32
  font: font,
35
33
  variantsText: variantsText,
36
- actionHandler: (0, _element.createElement)(_components.Icon, {
37
- icon: _icons.chevronRight
38
- }),
39
34
  ...props
40
35
  });
41
36
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_components","_icons","_fontCard","_interopRequireDefault","_context","LibraryFontCard","font","props","getFontFacesActivated","useContext","FontLibraryContext","variantsInstalled","fontFace","length","variantsActive","slug","source","variantsText","sprintf","__","createElement","default","actionHandler","Icon","icon","chevronRight","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-card.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useContext } from '@wordpress/element';\nimport { Icon } from '@wordpress/components';\nimport { chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport FontCard from './font-card';\nimport { FontLibraryContext } from './context';\n\nfunction LibraryFontCard( { font, ...props } ) {\n\tconst { getFontFacesActivated } = useContext( FontLibraryContext );\n\n\tconst variantsInstalled = font.fontFace?.length || 1;\n\tconst variantsActive = getFontFacesActivated(\n\t\tfont.slug,\n\t\tfont.source\n\t).length;\n\tconst variantsText = sprintf(\n\t\t/* translators: %1$d: Active font variants, %2$d: Total font variants */\n\t\t__( '%1$s/%2$s variants active' ),\n\t\tvariantsActive,\n\t\tvariantsInstalled\n\t);\n\n\treturn (\n\t\t<FontCard\n\t\t\tfont={ font }\n\t\t\tvariantsText={ variantsText }\n\t\t\tactionHandler={ <Icon icon={ chevronRight } /> }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nexport default LibraryFontCard;\n"],"mappings":";;;;;;;AAIA,IAAAA,QAAA,GAAAC,OAAA;AADA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAKA,IAAAI,SAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAZA;AACA;AACA;;AAMA;AACA;AACA;;AAIA,SAASO,eAAeA,CAAE;EAAEC,IAAI;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC9C,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EAElE,MAAMC,iBAAiB,GAAGL,IAAI,CAACM,QAAQ,EAAEC,MAAM,IAAI,CAAC;EACpD,MAAMC,cAAc,GAAGN,qBAAqB,CAC3CF,IAAI,CAACS,IAAI,EACTT,IAAI,CAACU,MACN,CAAC,CAACH,MAAM;EACR,MAAMI,YAAY,GAAG,IAAAC,aAAO,GAC3B;EACA,IAAAC,QAAE,EAAE,2BAA4B,CAAC,EACjCL,cAAc,EACdH,iBACD,CAAC;EAED,OACC,IAAAd,QAAA,CAAAuB,aAAA,EAAClB,SAAA,CAAAmB,OAAQ;IACRf,IAAI,EAAGA,IAAM;IACbW,YAAY,EAAGA,YAAc;IAC7BK,aAAa,EAAG,IAAAzB,QAAA,CAAAuB,aAAA,EAACpB,WAAA,CAAAuB,IAAI;MAACC,IAAI,EAAGC;IAAc,CAAE,CAAG;IAAA,GAC3ClB;EAAK,CACV,CAAC;AAEJ;AAAC,IAAAmB,QAAA,GAEcrB,eAAe;AAAAsB,OAAA,CAAAN,OAAA,GAAAK,QAAA"}
1
+ {"version":3,"names":["_element","require","_i18n","_fontCard","_interopRequireDefault","_context","LibraryFontCard","font","props","getFontFacesActivated","useContext","FontLibraryContext","variantsInstalled","fontFace","length","variantsActive","slug","source","variantsText","sprintf","__","createElement","default","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-card.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontCard from './font-card';\nimport { FontLibraryContext } from './context';\n\nfunction LibraryFontCard( { font, ...props } ) {\n\tconst { getFontFacesActivated } = useContext( FontLibraryContext );\n\n\tconst variantsInstalled = font.fontFace?.length || 1;\n\tconst variantsActive = getFontFacesActivated(\n\t\tfont.slug,\n\t\tfont.source\n\t).length;\n\tconst variantsText = sprintf(\n\t\t/* translators: %1$d: Active font variants, %2$d: Total font variants */\n\t\t__( '%1$s/%2$s variants active' ),\n\t\tvariantsActive,\n\t\tvariantsInstalled\n\t);\n\n\treturn (\n\t\t<FontCard font={ font } variantsText={ variantsText } { ...props } />\n\t);\n}\n\nexport default LibraryFontCard;\n"],"mappings":";;;;;;;AAIA,IAAAA,QAAA,GAAAC,OAAA;AADA,IAAAC,KAAA,GAAAD,OAAA;AAMA,IAAAE,SAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAIA,SAASK,eAAeA,CAAE;EAAEC,IAAI;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC9C,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EAElE,MAAMC,iBAAiB,GAAGL,IAAI,CAACM,QAAQ,EAAEC,MAAM,IAAI,CAAC;EACpD,MAAMC,cAAc,GAAGN,qBAAqB,CAC3CF,IAAI,CAACS,IAAI,EACTT,IAAI,CAACU,MACN,CAAC,CAACH,MAAM;EACR,MAAMI,YAAY,GAAG,IAAAC,aAAO,GAC3B;EACA,IAAAC,QAAE,EAAE,2BAA4B,CAAC,EACjCL,cAAc,EACdH,iBACD,CAAC;EAED,OACC,IAAAZ,QAAA,CAAAqB,aAAA,EAAClB,SAAA,CAAAmB,OAAQ;IAACf,IAAI,EAAGA,IAAM;IAACW,YAAY,EAAGA,YAAc;IAAA,GAAMV;EAAK,CAAI,CAAC;AAEvE;AAAC,IAAAe,QAAA,GAEcjB,eAAe;AAAAkB,OAAA,CAAAF,OAAA,GAAAC,QAAA"}
@@ -8,6 +8,7 @@ exports.default = void 0;
8
8
  var _element = require("@wordpress/element");
9
9
  var _components = require("@wordpress/components");
10
10
  var _libraryFontVariant = _interopRequireDefault(require("./library-font-variant"));
11
+ var _sortFontFaces = require("./utils/sort-font-faces");
11
12
  /**
12
13
  * WordPress dependencies
13
14
  */
@@ -19,7 +20,7 @@ var _libraryFontVariant = _interopRequireDefault(require("./library-font-variant
19
20
  function LibraryFontDetails({
20
21
  font
21
22
  }) {
22
- const fontFaces = font.fontFace && font.fontFace.length ? font.fontFace.sort((a, b) => a.fontWeight > b.fontWeight ? 1 : -1) : [{
23
+ const fontFaces = font.fontFace && font.fontFace.length ? (0, _sortFontFaces.sortFontFaces)(font.fontFace) : [{
23
24
  fontFamily: font.fontFamily,
24
25
  fontStyle: 'normal',
25
26
  fontWeight: '400'
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_libraryFontVariant","_interopRequireDefault","LibraryFontDetails","font","fontFaces","fontFace","length","sort","a","b","fontWeight","fontFamily","fontStyle","_element","createElement","Fragment","__experimentalSpacer","margin","__experimentalVStack","spacing","map","face","i","default","key","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport LibraryFontVariant from './library-font-variant';\n\nfunction LibraryFontDetails( { font } ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? font.fontFace.sort( ( a, b ) =>\n\t\t\t\t\ta.fontWeight > b.fontWeight ? 1 : -1\n\t\t\t )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default LibraryFontDetails;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,mBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGA,SAASG,kBAAkBA,CAAE;EAAEC;AAAK,CAAC,EAAG;EACvC,MAAMC,SAAS,GACdD,IAAI,CAACE,QAAQ,IAAIF,IAAI,CAACE,QAAQ,CAACC,MAAM,GAClCH,IAAI,CAACE,QAAQ,CAACE,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAC1BD,CAAC,CAACE,UAAU,GAAGD,CAAC,CAACC,UAAU,GAAG,CAAC,GAAG,CAAC,CACnC,CAAC,GACD,CACA;IACCC,UAAU,EAAER,IAAI,CAACQ,UAAU;IAC3BC,SAAS,EAAE,QAAQ;IACnBF,UAAU,EAAE;EACb,CAAC,CACA;EAEL,OACC,IAAAG,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAE,QAAA,QACC,IAAAF,QAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAkB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAJ,QAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAoB,oBAAM;IAACC,OAAO,EAAG;EAAG,GACpB,IAAAN,QAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAkB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACrBb,SAAS,CAACgB,GAAG,CAAE,CAAEC,IAAI,EAAEC,CAAC,KACzB,IAAAT,QAAA,CAAAC,aAAA,EAACd,mBAAA,CAAAuB,OAAkB;IAClBpB,IAAI,EAAGA,IAAM;IACbkB,IAAI,EAAGA,IAAM;IACbG,GAAG,EAAI,OAAOF,CAAG;EAAG,CACpB,CACA,CACK,CAAC,EACT,IAAAT,QAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAkB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CACrB,CAAC;AAEL;AAAC,IAAAQ,QAAA,GAEcvB,kBAAkB;AAAAwB,OAAA,CAAAH,OAAA,GAAAE,QAAA"}
1
+ {"version":3,"names":["_components","require","_libraryFontVariant","_interopRequireDefault","_sortFontFaces","LibraryFontDetails","font","fontFaces","fontFace","length","sortFontFaces","fontFamily","fontStyle","fontWeight","_element","createElement","Fragment","__experimentalSpacer","margin","__experimentalVStack","spacing","map","face","i","default","key","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\n\nfunction LibraryFontDetails( { font } ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? sortFontFaces( font.fontFace )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default LibraryFontDetails;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,mBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAZA;AACA;AACA;;AAMA;AACA;AACA;;AAIA,SAASI,kBAAkBA,CAAE;EAAEC;AAAK,CAAC,EAAG;EACvC,MAAMC,SAAS,GACdD,IAAI,CAACE,QAAQ,IAAIF,IAAI,CAACE,QAAQ,CAACC,MAAM,GAClC,IAAAC,4BAAa,EAAEJ,IAAI,CAACE,QAAS,CAAC,GAC9B,CACA;IACCG,UAAU,EAAEL,IAAI,CAACK,UAAU;IAC3BC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE;EACb,CAAC,CACA;EAEL,OACC,IAAAC,QAAA,CAAAC,aAAA,EAAAD,QAAA,CAAAE,QAAA,QACC,IAAAF,QAAA,CAAAC,aAAA,EAACf,WAAA,CAAAiB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAJ,QAAA,CAAAC,aAAA,EAACf,WAAA,CAAAmB,oBAAM;IAACC,OAAO,EAAG;EAAG,GACpB,IAAAN,QAAA,CAAAC,aAAA,EAACf,WAAA,CAAAiB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACrBX,SAAS,CAACc,GAAG,CAAE,CAAEC,IAAI,EAAEC,CAAC,KACzB,IAAAT,QAAA,CAAAC,aAAA,EAACb,mBAAA,CAAAsB,OAAkB;IAClBlB,IAAI,EAAGA,IAAM;IACbgB,IAAI,EAAGA,IAAM;IACbG,GAAG,EAAI,OAAOF,CAAG;EAAG,CACpB,CACA,CACK,CAAC,EACT,IAAAT,QAAA,CAAAC,aAAA,EAACf,WAAA,CAAAiB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CACrB,CAAC;AAEL;AAAC,IAAAQ,QAAA,GAEcrB,kBAAkB;AAAAsB,OAAA,CAAAH,OAAA,GAAAE,QAAA"}
@@ -4,6 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ exports.fetchFontCollection = fetchFontCollection;
8
+ exports.fetchFontCollections = fetchFontCollections;
7
9
  exports.fetchInstallFonts = fetchInstallFonts;
8
10
  exports.fetchUninstallFonts = fetchUninstallFonts;
9
11
  var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
@@ -34,4 +36,18 @@ async function fetchUninstallFonts(fonts) {
34
36
  };
35
37
  return (0, _apiFetch.default)(config);
36
38
  }
39
+ async function fetchFontCollections() {
40
+ const config = {
41
+ path: '/wp/v2/fonts/collections',
42
+ method: 'GET'
43
+ };
44
+ return (0, _apiFetch.default)(config);
45
+ }
46
+ async function fetchFontCollection(id) {
47
+ const config = {
48
+ path: `/wp/v2/fonts/collections/${id}`,
49
+ method: 'GET'
50
+ };
51
+ return (0, _apiFetch.default)(config);
52
+ }
37
53
  //# sourceMappingURL=resolvers.js.map