@wordpress/edit-site 5.26.0 → 5.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +139 -36
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/editor-canvas-container/index.js +1 -1
  5. package/build/components/editor-canvas-container/index.js.map +1 -1
  6. package/build/components/global-styles/font-families.js +3 -2
  7. package/build/components/global-styles/font-families.js.map +1 -1
  8. package/build/components/global-styles/font-family-item.js +3 -4
  9. package/build/components/global-styles/font-family-item.js.map +1 -1
  10. package/build/components/global-styles/font-library-modal/context.js +80 -41
  11. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  12. package/build/components/global-styles/font-library-modal/font-collection.js +49 -22
  13. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/fonts-grid.js +4 -1
  15. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/index.js +4 -4
  17. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/installed-fonts.js +16 -8
  19. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/library-font-card.js +1 -1
  21. package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  23. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/local-fonts.js +13 -4
  25. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/resolvers.js +49 -20
  27. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/tab-panel-layout.js +6 -2
  29. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
  31. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/utils/index.js +103 -17
  33. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
  35. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  36. package/build/components/global-styles/screen-block.js +10 -0
  37. package/build/components/global-styles/screen-block.js.map +1 -1
  38. package/build/components/global-styles/screen-typography.js +4 -1
  39. package/build/components/global-styles/screen-typography.js.map +1 -1
  40. package/build/components/layout/hooks.js +6 -5
  41. package/build/components/layout/hooks.js.map +1 -1
  42. package/build/components/layout/index.js +19 -28
  43. package/build/components/layout/index.js.map +1 -1
  44. package/build/components/layout/router.js +135 -0
  45. package/build/components/layout/router.js.map +1 -0
  46. package/build/components/page-pages/index.js +92 -69
  47. package/build/components/page-pages/index.js.map +1 -1
  48. package/build/components/page-patterns/dataviews-pattern-actions.js +11 -6
  49. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  50. package/build/components/page-patterns/index.js +295 -15
  51. package/build/components/page-patterns/index.js.map +1 -1
  52. package/build/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +51 -23
  53. package/build/components/page-templates-template-parts/actions.js.map +1 -0
  54. package/build/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
  55. package/build/components/page-templates-template-parts/index.js +395 -0
  56. package/build/components/page-templates-template-parts/index.js.map +1 -0
  57. package/build/components/preferences-modal/index.js +9 -134
  58. package/build/components/preferences-modal/index.js.map +1 -1
  59. package/build/components/revisions/index.js +1 -1
  60. package/build/components/revisions/index.js.map +1 -1
  61. package/build/components/save-button/index.js +4 -2
  62. package/build/components/save-button/index.js.map +1 -1
  63. package/build/components/save-panel/index.js +6 -5
  64. package/build/components/save-panel/index.js.map +1 -1
  65. package/build/components/sidebar/index.js +3 -1
  66. package/build/components/sidebar/index.js.map +1 -1
  67. package/build/components/sidebar-dataviews/dataview-item.js +3 -1
  68. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  69. package/build/components/sidebar-dataviews/default-views.js +4 -2
  70. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  71. package/build/components/sidebar-dataviews/index.js +2 -2
  72. package/build/components/sidebar-dataviews/index.js.map +1 -1
  73. package/build/components/sidebar-navigation-screen/index.js +8 -7
  74. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  75. package/build/components/sidebar-navigation-screen-pages/index.js +2 -10
  76. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  77. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +26 -3
  78. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
  79. package/build/components/sidebar-navigation-screen-templates/index.js +63 -8
  80. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  81. package/build/components/sidebar-navigation-screen-templates-browse/content.js +76 -0
  82. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
  83. package/build/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
  84. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  85. package/build/components/site-hub/index.js +3 -1
  86. package/build/components/site-hub/index.js.map +1 -1
  87. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -12
  88. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  89. package/build/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
  90. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  91. package/build/hooks/commands/use-edit-mode-commands.js +33 -5
  92. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  93. package/build/hooks/push-changes-to-global-styles/index.js +13 -6
  94. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  95. package/build/hooks/template-part-edit.js +7 -6
  96. package/build/hooks/template-part-edit.js.map +1 -1
  97. package/build/index.js +1 -1
  98. package/build/index.js.map +1 -1
  99. package/build/store/actions.js +11 -29
  100. package/build/store/actions.js.map +1 -1
  101. package/build/store/private-actions.js +85 -1
  102. package/build/store/private-actions.js.map +1 -1
  103. package/build/store/selectors.js +2 -2
  104. package/build/store/selectors.js.map +1 -1
  105. package/build/utils/get-is-list-page.js +1 -1
  106. package/build/utils/get-is-list-page.js.map +1 -1
  107. package/build/utils/use-actual-current-theme.js +32 -0
  108. package/build/utils/use-actual-current-theme.js.map +1 -0
  109. package/build-module/components/actions/index.js +139 -36
  110. package/build-module/components/actions/index.js.map +1 -1
  111. package/build-module/components/editor-canvas-container/index.js +1 -1
  112. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  113. package/build-module/components/global-styles/font-families.js +3 -2
  114. package/build-module/components/global-styles/font-families.js.map +1 -1
  115. package/build-module/components/global-styles/font-family-item.js +4 -5
  116. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  117. package/build-module/components/global-styles/font-library-modal/context.js +82 -42
  118. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  119. package/build-module/components/global-styles/font-library-modal/font-collection.js +49 -22
  120. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  121. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +4 -1
  122. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
  123. package/build-module/components/global-styles/font-library-modal/index.js +4 -4
  124. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  125. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +16 -8
  126. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  127. package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
  128. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
  129. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  130. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  131. package/build-module/components/global-styles/font-library-modal/local-fonts.js +13 -4
  132. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  133. package/build-module/components/global-styles/font-library-modal/resolvers.js +45 -18
  134. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  135. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +6 -2
  136. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  137. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
  138. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  139. package/build-module/components/global-styles/font-library-modal/utils/index.js +99 -16
  140. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  141. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
  142. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  143. package/build-module/components/global-styles/screen-block.js +10 -0
  144. package/build-module/components/global-styles/screen-block.js.map +1 -1
  145. package/build-module/components/global-styles/screen-typography.js +4 -1
  146. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  147. package/build-module/components/layout/hooks.js +6 -5
  148. package/build-module/components/layout/hooks.js.map +1 -1
  149. package/build-module/components/layout/index.js +19 -28
  150. package/build-module/components/layout/index.js.map +1 -1
  151. package/build-module/components/layout/router.js +127 -0
  152. package/build-module/components/layout/router.js.map +1 -0
  153. package/build-module/components/page-pages/index.js +91 -70
  154. package/build-module/components/page-pages/index.js.map +1 -1
  155. package/build-module/components/page-patterns/dataviews-pattern-actions.js +11 -6
  156. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  157. package/build-module/components/page-patterns/index.js +296 -16
  158. package/build-module/components/page-patterns/index.js.map +1 -1
  159. package/build-module/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +52 -24
  160. package/build-module/components/page-templates-template-parts/actions.js.map +1 -0
  161. package/build-module/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
  162. package/build-module/components/page-templates-template-parts/index.js +385 -0
  163. package/build-module/components/page-templates-template-parts/index.js.map +1 -0
  164. package/build-module/components/preferences-modal/index.js +12 -136
  165. package/build-module/components/preferences-modal/index.js.map +1 -1
  166. package/build-module/components/revisions/index.js +1 -1
  167. package/build-module/components/revisions/index.js.map +1 -1
  168. package/build-module/components/save-button/index.js +4 -2
  169. package/build-module/components/save-button/index.js.map +1 -1
  170. package/build-module/components/save-panel/index.js +7 -6
  171. package/build-module/components/save-panel/index.js.map +1 -1
  172. package/build-module/components/sidebar/index.js +3 -1
  173. package/build-module/components/sidebar/index.js.map +1 -1
  174. package/build-module/components/sidebar-dataviews/dataview-item.js +3 -1
  175. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  176. package/build-module/components/sidebar-dataviews/default-views.js +4 -2
  177. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  178. package/build-module/components/sidebar-dataviews/index.js +2 -2
  179. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  180. package/build-module/components/sidebar-navigation-screen/index.js +8 -7
  181. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  182. package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -10
  183. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  184. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +27 -4
  185. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
  186. package/build-module/components/sidebar-navigation-screen-templates/index.js +64 -9
  187. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  188. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +68 -0
  189. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
  190. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
  191. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  192. package/build-module/components/site-hub/index.js +3 -1
  193. package/build-module/components/site-hub/index.js.map +1 -1
  194. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -11
  195. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  196. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
  197. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  198. package/build-module/hooks/commands/use-edit-mode-commands.js +33 -5
  199. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  200. package/build-module/hooks/push-changes-to-global-styles/index.js +13 -6
  201. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  202. package/build-module/hooks/template-part-edit.js +7 -6
  203. package/build-module/hooks/template-part-edit.js.map +1 -1
  204. package/build-module/index.js +1 -1
  205. package/build-module/index.js.map +1 -1
  206. package/build-module/store/actions.js +13 -30
  207. package/build-module/store/actions.js.map +1 -1
  208. package/build-module/store/private-actions.js +83 -0
  209. package/build-module/store/private-actions.js.map +1 -1
  210. package/build-module/store/selectors.js +2 -2
  211. package/build-module/store/selectors.js.map +1 -1
  212. package/build-module/utils/get-is-list-page.js +1 -1
  213. package/build-module/utils/get-is-list-page.js.map +1 -1
  214. package/build-module/utils/use-actual-current-theme.js +24 -0
  215. package/build-module/utils/use-actual-current-theme.js.map +1 -0
  216. package/build-style/style-rtl.css +316 -215
  217. package/build-style/style.css +316 -215
  218. package/package.json +42 -42
  219. package/src/components/actions/index.js +236 -84
  220. package/src/components/editor-canvas-container/index.js +1 -1
  221. package/src/components/global-styles/font-families.js +14 -8
  222. package/src/components/global-styles/font-family-item.js +7 -4
  223. package/src/components/global-styles/font-library-modal/context.js +156 -50
  224. package/src/components/global-styles/font-library-modal/font-collection.js +56 -21
  225. package/src/components/global-styles/font-library-modal/fonts-grid.js +6 -2
  226. package/src/components/global-styles/font-library-modal/index.js +4 -4
  227. package/src/components/global-styles/font-library-modal/installed-fonts.js +18 -8
  228. package/src/components/global-styles/font-library-modal/library-font-card.js +2 -1
  229. package/src/components/global-styles/font-library-modal/library-font-variant.js +10 -9
  230. package/src/components/global-styles/font-library-modal/local-fonts.js +14 -4
  231. package/src/components/global-styles/font-library-modal/resolvers.js +50 -17
  232. package/src/components/global-styles/font-library-modal/style.scss +23 -35
  233. package/src/components/global-styles/font-library-modal/tab-panel-layout.js +30 -26
  234. package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +19 -2
  235. package/src/components/global-styles/font-library-modal/utils/index.js +136 -29
  236. package/src/components/global-styles/font-library-modal/utils/preview-styles.js +7 -3
  237. package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +40 -10
  238. package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +5 -5
  239. package/src/components/global-styles/screen-block.js +10 -0
  240. package/src/components/global-styles/screen-typography.js +9 -3
  241. package/src/components/global-styles/style.scss +4 -0
  242. package/src/components/header-edit-mode/style.scss +15 -5
  243. package/src/components/layout/hooks.js +6 -5
  244. package/src/components/layout/index.js +80 -96
  245. package/src/components/layout/router.js +121 -0
  246. package/src/components/layout/style.scss +13 -16
  247. package/src/components/page/style.scss +1 -8
  248. package/src/components/page-pages/index.js +142 -148
  249. package/src/components/page-pages/style.scss +41 -2
  250. package/src/components/page-patterns/dataviews-pattern-actions.js +11 -6
  251. package/src/components/page-patterns/index.js +392 -14
  252. package/src/components/page-patterns/style.scss +36 -2
  253. package/src/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +90 -37
  254. package/src/components/{page-templates → page-templates-template-parts}/index.js +198 -169
  255. package/src/components/page-templates-template-parts/style.scss +44 -0
  256. package/src/components/preferences-modal/index.js +8 -211
  257. package/src/components/revisions/index.js +1 -1
  258. package/src/components/save-button/index.js +7 -4
  259. package/src/components/save-panel/index.js +13 -12
  260. package/src/components/sidebar/index.js +4 -5
  261. package/src/components/sidebar-dataviews/dataview-item.js +2 -1
  262. package/src/components/sidebar-dataviews/default-views.js +4 -2
  263. package/src/components/sidebar-dataviews/index.js +8 -6
  264. package/src/components/sidebar-navigation-item/style.scss +1 -1
  265. package/src/components/sidebar-navigation-screen/index.js +19 -10
  266. package/src/components/sidebar-navigation-screen-pages/index.js +2 -10
  267. package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +32 -6
  268. package/src/components/sidebar-navigation-screen-templates/index.js +85 -28
  269. package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
  270. package/src/components/sidebar-navigation-screen-templates-browse/content.js +73 -0
  271. package/src/components/sidebar-navigation-screen-templates-browse/index.js +10 -1
  272. package/src/components/site-hub/index.js +4 -1
  273. package/src/components/site-hub/style.scss +1 -12
  274. package/src/components/site-icon/style.scss +1 -1
  275. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +40 -10
  276. package/src/components/sync-state-with-url/use-sync-path-with-url.js +32 -0
  277. package/src/hooks/commands/use-edit-mode-commands.js +50 -3
  278. package/src/hooks/push-changes-to-global-styles/index.js +29 -23
  279. package/src/hooks/template-part-edit.js +12 -12
  280. package/src/index.js +1 -1
  281. package/src/store/actions.js +17 -51
  282. package/src/store/private-actions.js +133 -0
  283. package/src/store/selectors.js +2 -4
  284. package/src/style.scss +2 -1
  285. package/src/utils/get-is-list-page.js +3 -2
  286. package/src/utils/use-actual-current-theme.js +27 -0
  287. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
  288. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
  289. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -71
  290. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
  291. package/build/components/page-main/index.js +0 -44
  292. package/build/components/page-main/index.js.map +0 -1
  293. package/build/components/page-patterns/dataviews-patterns.js +0 -307
  294. package/build/components/page-patterns/dataviews-patterns.js.map +0 -1
  295. package/build/components/page-template-parts/add-new-template-part.js.map +0 -1
  296. package/build/components/page-template-parts/index.js +0 -81
  297. package/build/components/page-template-parts/index.js.map +0 -1
  298. package/build/components/page-templates/index.js +0 -352
  299. package/build/components/page-templates/index.js.map +0 -1
  300. package/build/components/page-templates/template-actions.js.map +0 -1
  301. package/build/components/post-preview/index.js +0 -29
  302. package/build/components/post-preview/index.js.map +0 -1
  303. package/build/components/preferences-modal/enable-feature.js +0 -36
  304. package/build/components/preferences-modal/enable-feature.js.map +0 -1
  305. package/build/components/preferences-modal/enable-panel-option.js +0 -33
  306. package/build/components/preferences-modal/enable-panel-option.js.map +0 -1
  307. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -52
  308. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
  309. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -63
  310. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
  311. package/build-module/components/page-main/index.js +0 -36
  312. package/build-module/components/page-main/index.js.map +0 -1
  313. package/build-module/components/page-patterns/dataviews-patterns.js +0 -299
  314. package/build-module/components/page-patterns/dataviews-patterns.js.map +0 -1
  315. package/build-module/components/page-template-parts/add-new-template-part.js.map +0 -1
  316. package/build-module/components/page-template-parts/index.js +0 -73
  317. package/build-module/components/page-template-parts/index.js.map +0 -1
  318. package/build-module/components/page-templates/index.js +0 -344
  319. package/build-module/components/page-templates/index.js.map +0 -1
  320. package/build-module/components/page-templates/template-actions.js.map +0 -1
  321. package/build-module/components/post-preview/index.js +0 -21
  322. package/build-module/components/post-preview/index.js.map +0 -1
  323. package/build-module/components/preferences-modal/enable-feature.js +0 -29
  324. package/build-module/components/preferences-modal/enable-feature.js.map +0 -1
  325. package/build-module/components/preferences-modal/enable-panel-option.js +0 -26
  326. package/build-module/components/preferences-modal/enable-panel-option.js.map +0 -1
  327. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
  328. package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -62
  329. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +0 -271
  330. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +0 -58
  331. package/src/components/page-main/index.js +0 -38
  332. package/src/components/page-patterns/dataviews-patterns.js +0 -380
  333. package/src/components/page-template-parts/index.js +0 -99
  334. package/src/components/page-templates/style.scss +0 -13
  335. package/src/components/post-preview/index.js +0 -16
  336. package/src/components/preferences-modal/enable-feature.js +0 -31
  337. package/src/components/preferences-modal/enable-panel-option.js +0 -23
  338. /package/build/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
  339. /package/build-module/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
  340. /package/src/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","useEffect","useState","useMemo","__experimentalSpacer","Spacer","__experimentalInputControl","InputControl","__experimentalText","Text","SelectControl","Spinner","Icon","FlexItem","Flex","Button","Notice","debounce","__","search","closeSmall","TabPanelLayout","FontLibraryContext","FontsGrid","FontCard","filterFonts","CollectionFontDetails","toggleFont","getFontsOutline","GoogleFontsConfirmDialog","getNoticeFromInstallResponse","DEFAULT_CATEGORY","id","name","FontCollection","_selectedCollection$d2","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","notice","setNotice","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFont","selectedCollection","find","collection","handleStorage","addEventListener","removeEventListener","fetchFontCollection","resetFilters","e","type","message","duration","_notice$duration","timeout","setTimeout","clearTimeout","collectionFonts","_selectedCollection$d","data","fontFamilies","collectionCategories","categories","fonts","handleCategoryFilter","category","handleUpdateSearchInput","value","debouncedUpdateSearchInput","resetSearch","handleUnselectFont","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","handleInstall","response","installNotice","createElement","title","description","handleBack","footer","length","Footer","Fragment","margin","isDismissible","status","className","placeholder","label","onChange","prefix","icon","suffix","onClick","map","key","slug","isInstalling","justify","variant","isBusy","disabled"],"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\tNotice,\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 TabPanelLayout from './tab-panel-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';\nimport { getNoticeFromInstallResponse } from './utils/get-notice-from-response';\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 [ notice, setNotice ] = useState( null );\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, installFont } =\n\t\tuseContext( 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\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( id );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tsetNotice( {\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\tduration: 0, // Don't auto-hide.\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ id, getFontCollection ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ id ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice && notice?.duration !== 0 ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, notice.duration ?? 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\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\tconst handleInstall = async () => {\n\t\tconst response = await installFont( fontsToInstall[ 0 ] );\n\t\tconst installNotice = getNoticeFromInstallResponse( response );\n\t\tsetNotice( installNotice );\n\t\tresetFontsToInstall();\n\t};\n\n\treturn (\n\t\t<TabPanelLayout\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 handleInstall={ handleInstall } />\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{ notice && (\n\t\t\t\t<>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__font-collection__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t</>\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\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t! selectedCollection?.data?.fontFamilies &&\n\t\t\t\t! notice && <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 search 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</TabPanelLayout>\n\t);\n}\n\nfunction Footer( { handleInstall } ) {\n\tconst { isInstalling } = useContext( FontLibraryContext );\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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"}
1
+ {"version":3,"names":["useContext","useEffect","useState","useMemo","__experimentalSpacer","Spacer","__experimentalInputControl","InputControl","__experimentalText","Text","SelectControl","Spinner","Icon","FlexItem","Flex","Button","Notice","debounce","__","search","closeSmall","TabPanelLayout","FontLibraryContext","FontsGrid","FontCard","filterFonts","CollectionFontDetails","toggleFont","getFontsOutline","GoogleFontsConfirmDialog","downloadFontFaceAsset","DEFAULT_CATEGORY","slug","name","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","notice","setNotice","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFont","selectedCollection","find","collection","handleStorage","addEventListener","removeEventListener","fetchFontCollection","resetFilters","e","type","message","duration","_notice$duration","timeout","setTimeout","clearTimeout","collectionFonts","_selectedCollection$f","font_families","collectionCategories","categories","fonts","handleCategoryFilter","category","handleUpdateSearchInput","value","debouncedUpdateSearchInput","resetSearch","handleUnselectFont","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","error","createElement","title","description","handleBack","footer","length","Footer","Fragment","margin","isDismissible","status","className","placeholder","label","onChange","prefix","icon","suffix","onClick","key","font_family_settings","isInstalling","justify","variant","isBusy","disabled"],"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\tNotice,\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 TabPanelLayout from './tab-panel-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';\nimport { downloadFontFaceAsset } from './utils';\n\nconst DEFAULT_CATEGORY = {\n\tslug: 'all',\n\tname: __( 'All' ),\n};\nfunction FontCollection( { slug } ) {\n\tconst requiresPermission = slug === '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 [ notice, setNotice ] = useState( null );\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, installFont } =\n\t\tuseContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.slug === slug\n\t);\n\n\tuseEffect( () => {\n\t\tconst handleStorage = () => {\n\t\t\tsetRenderConfirmDialog(\n\t\t\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t\t\t);\n\t\t};\n\t\thandleStorage();\n\t\twindow.addEventListener( 'storage', handleStorage );\n\t\treturn () => window.removeEventListener( 'storage', handleStorage );\n\t}, [ slug, requiresPermission ] );\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( slug );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tsetNotice( {\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\tduration: 0, // Don't auto-hide.\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ slug, getFontCollection ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ slug ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice && notice?.duration !== 0 ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, notice.duration ?? 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.font_families ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\tconst 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\tconst handleInstall = async () => {\n\t\tconst fontFamily = fontsToInstall[ 0 ];\n\n\t\ttry {\n\t\t\tif ( fontFamily?.fontFace ) {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tfontFamily.fontFace.map( async ( fontFace ) => {\n\t\t\t\t\t\tif ( fontFace.src ) {\n\t\t\t\t\t\t\tfontFace.file = await downloadFontFaceAsset(\n\t\t\t\t\t\t\t\tfontFace.src\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\t// If any of the fonts fail to download,\n\t\t\t// show an error notice and stop the request from being sent.\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Error installing the fonts, could not be downloaded.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFont( fontFamily );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\t\tresetFontsToInstall();\n\t};\n\n\treturn (\n\t\t<TabPanelLayout\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 handleInstall={ handleInstall } />\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{ notice && (\n\t\t\t\t<>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__font-collection__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t</>\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.slug }\n\t\t\t\t\t\t\t\t\t\tkey={ category.slug }\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\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t! selectedCollection?.font_families &&\n\t\t\t\t! notice && <Spinner /> }\n\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t!! selectedCollection?.font_families?.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 search 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.font_family_settings.slug }\n\t\t\t\t\t\t\tfont={ font.font_family_settings }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetSelectedFont( font.font_family_settings );\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</TabPanelLayout>\n\t);\n}\n\nfunction Footer( { handleInstall } ) {\n\tconst { isInstalling } = useContext( FontLibraryContext );\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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"}
@@ -37,10 +37,13 @@ function FontsGrid({
37
37
  }, items.map((child, i) => {
38
38
  if (i === itemsLimit - 1) {
39
39
  return createElement("div", {
40
+ key: child.key,
40
41
  ref: setLastItem
41
42
  }, child);
42
43
  }
43
- return child;
44
+ return createElement("div", {
45
+ key: child.key
46
+ }, child);
44
47
  }))));
45
48
  }
46
49
  export default FontsGrid;
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","__experimentalText","Text","__experimentalSpacer","Spacer","useState","useEffect","FontsGrid","title","children","pageSize","lastItem","setLastItem","page","setPage","itemsLimit","items","slice","observer","window","IntersectionObserver","entry","isIntersecting","prevPage","observe","disconnect","createElement","className","spacing","Fragment","margin","map","child","i","ref"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/fonts-grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\nfunction FontsGrid( { title, children, pageSize = 32 } ) {\n\tconst [ lastItem, setLastItem ] = useState( null );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst itemsLimit = page * pageSize;\n\tconst items = children.slice( 0, itemsLimit );\n\n\tuseEffect( () => {\n\t\tif ( lastItem ) {\n\t\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\t\tif ( entry.isIntersecting ) {\n\t\t\t\t\tsetPage( ( prevPage ) => prevPage + 1 );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tobserver.observe( lastItem );\n\n\t\t\treturn () => observer.disconnect();\n\t\t}\n\t}, [ lastItem ] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__fonts-grid\">\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t{ title && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t{ items.map( ( child, i ) => {\n\t\t\t\t\t\tif ( i === itemsLimit - 1 ) {\n\t\t\t\t\t\t\treturn <div ref={ setLastItem }>{ child }</div>;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn child;\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default FontsGrid;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;AAExD,SAASC,SAASA,CAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,QAAQ,GAAG;AAAG,CAAC,EAAG;EACxD,MAAM,CAAEC,QAAQ,EAAEC,WAAW,CAAE,GAAGP,QAAQ,CAAE,IAAK,CAAC;EAClD,MAAM,CAAEQ,IAAI,EAAEC,OAAO,CAAE,GAAGT,QAAQ,CAAE,CAAE,CAAC;EACvC,MAAMU,UAAU,GAAGF,IAAI,GAAGH,QAAQ;EAClC,MAAMM,KAAK,GAAGP,QAAQ,CAACQ,KAAK,CAAE,CAAC,EAAEF,UAAW,CAAC;EAE7CT,SAAS,CAAE,MAAM;IAChB,IAAKK,QAAQ,EAAG;MACf,MAAMO,QAAQ,GAAG,IAAIC,MAAM,CAACC,oBAAoB,CAAE,CAAE,CAAEC,KAAK,CAAE,KAAM;QAClE,IAAKA,KAAK,CAACC,cAAc,EAAG;UAC3BR,OAAO,CAAIS,QAAQ,IAAMA,QAAQ,GAAG,CAAE,CAAC;QACxC;MACD,CAAE,CAAC;MAEHL,QAAQ,CAACM,OAAO,CAAEb,QAAS,CAAC;MAE5B,OAAO,MAAMO,QAAQ,CAACO,UAAU,CAAC,CAAC;IACnC;EACD,CAAC,EAAE,CAAEd,QAAQ,CAAG,CAAC;EAEjB,OACCe,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC9CD,aAAA,CAAC1B,MAAM;IAAC4B,OAAO,EAAG;EAAG,GAClBpB,KAAK,IACNkB,aAAA,CAAAG,QAAA,QACCH,aAAA,CAACxB,IAAI;IAACyB,SAAS,EAAC;EAA8B,GAC3CnB,KACG,CAAC,EACPkB,aAAA,CAACtB,MAAM;IAAC0B,MAAM,EAAG;EAAG,CAAE,CACrB,CACF,EACDJ,aAAA;IAAKC,SAAS,EAAC;EAAsC,GAClDX,KAAK,CAACe,GAAG,CAAE,CAAEC,KAAK,EAAEC,CAAC,KAAM;IAC5B,IAAKA,CAAC,KAAKlB,UAAU,GAAG,CAAC,EAAG;MAC3B,OAAOW,aAAA;QAAKQ,GAAG,EAAGtB;MAAa,GAAGoB,KAAY,CAAC;IAChD;IACA,OAAOA,KAAK;EACb,CAAE,CACE,CACE,CACJ,CAAC;AAER;AAEA,eAAezB,SAAS"}
1
+ {"version":3,"names":["__experimentalVStack","VStack","__experimentalText","Text","__experimentalSpacer","Spacer","useState","useEffect","FontsGrid","title","children","pageSize","lastItem","setLastItem","page","setPage","itemsLimit","items","slice","observer","window","IntersectionObserver","entry","isIntersecting","prevPage","observe","disconnect","createElement","className","spacing","Fragment","margin","map","child","i","key","ref"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/fonts-grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\nfunction FontsGrid( { title, children, pageSize = 32 } ) {\n\tconst [ lastItem, setLastItem ] = useState( null );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst itemsLimit = page * pageSize;\n\tconst items = children.slice( 0, itemsLimit );\n\n\tuseEffect( () => {\n\t\tif ( lastItem ) {\n\t\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\t\tif ( entry.isIntersecting ) {\n\t\t\t\t\tsetPage( ( prevPage ) => prevPage + 1 );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tobserver.observe( lastItem );\n\n\t\t\treturn () => observer.disconnect();\n\t\t}\n\t}, [ lastItem ] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__fonts-grid\">\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t{ title && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t{ items.map( ( child, i ) => {\n\t\t\t\t\t\tif ( i === itemsLimit - 1 ) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div key={ child.key } ref={ setLastItem }>\n\t\t\t\t\t\t\t\t\t{ child }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <div key={ child.key }>{ child }</div>;\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default FontsGrid;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;AAExD,SAASC,SAASA,CAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,QAAQ,GAAG;AAAG,CAAC,EAAG;EACxD,MAAM,CAAEC,QAAQ,EAAEC,WAAW,CAAE,GAAGP,QAAQ,CAAE,IAAK,CAAC;EAClD,MAAM,CAAEQ,IAAI,EAAEC,OAAO,CAAE,GAAGT,QAAQ,CAAE,CAAE,CAAC;EACvC,MAAMU,UAAU,GAAGF,IAAI,GAAGH,QAAQ;EAClC,MAAMM,KAAK,GAAGP,QAAQ,CAACQ,KAAK,CAAE,CAAC,EAAEF,UAAW,CAAC;EAE7CT,SAAS,CAAE,MAAM;IAChB,IAAKK,QAAQ,EAAG;MACf,MAAMO,QAAQ,GAAG,IAAIC,MAAM,CAACC,oBAAoB,CAAE,CAAE,CAAEC,KAAK,CAAE,KAAM;QAClE,IAAKA,KAAK,CAACC,cAAc,EAAG;UAC3BR,OAAO,CAAIS,QAAQ,IAAMA,QAAQ,GAAG,CAAE,CAAC;QACxC;MACD,CAAE,CAAC;MAEHL,QAAQ,CAACM,OAAO,CAAEb,QAAS,CAAC;MAE5B,OAAO,MAAMO,QAAQ,CAACO,UAAU,CAAC,CAAC;IACnC;EACD,CAAC,EAAE,CAAEd,QAAQ,CAAG,CAAC;EAEjB,OACCe,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC9CD,aAAA,CAAC1B,MAAM;IAAC4B,OAAO,EAAG;EAAG,GAClBpB,KAAK,IACNkB,aAAA,CAAAG,QAAA,QACCH,aAAA,CAACxB,IAAI;IAACyB,SAAS,EAAC;EAA8B,GAC3CnB,KACG,CAAC,EACPkB,aAAA,CAACtB,MAAM;IAAC0B,MAAM,EAAG;EAAG,CAAE,CACrB,CACF,EACDJ,aAAA;IAAKC,SAAS,EAAC;EAAsC,GAClDX,KAAK,CAACe,GAAG,CAAE,CAAEC,KAAK,EAAEC,CAAC,KAAM;IAC5B,IAAKA,CAAC,KAAKlB,UAAU,GAAG,CAAC,EAAG;MAC3B,OACCW,aAAA;QAAKQ,GAAG,EAAGF,KAAK,CAACE,GAAK;QAACC,GAAG,EAAGvB;MAAa,GACvCoB,KACE,CAAC;IAER;IACA,OAAON,aAAA;MAAKQ,GAAG,EAAGF,KAAK,CAACE;IAAK,GAAGF,KAAY,CAAC;EAC9C,CAAE,CACE,CACE,CACJ,CAAC;AAER;AAEA,eAAezB,SAAS"}
@@ -25,11 +25,11 @@ const DEFAULT_TABS = [{
25
25
  title: __('Upload')
26
26
  }];
27
27
  const tabsFromCollections = collections => collections.map(({
28
- id,
28
+ slug,
29
29
  name
30
30
  }) => ({
31
- id,
32
- title: collections.length === 1 && id === 'default-font-collection' ? __('Install Fonts') : name
31
+ id: slug,
32
+ title: collections.length === 1 && slug === 'default-font-collection' ? __('Install Fonts') : name
33
33
  }));
34
34
  function FontLibraryModal({
35
35
  onRequestClose,
@@ -67,7 +67,7 @@ function FontLibraryModal({
67
67
  break;
68
68
  default:
69
69
  contents = createElement(FontCollection, {
70
- id: id
70
+ slug: id
71
71
  });
72
72
  }
73
73
  return createElement(Tabs.TabPanel, {
@@ -1 +1 @@
1
- {"version":3,"names":["__","Modal","privateApis","componentsPrivateApis","useContext","InstalledFonts","FontCollection","UploadFonts","FontLibraryContext","unlock","Tabs","DEFAULT_TABS","id","title","tabsFromCollections","collections","map","name","length","FontLibraryModal","onRequestClose","initialTabId","tabs","createElement","isFullScreen","className","TabList","Tab","key","tabId","contents","TabPanel","focusable"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} 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 UploadFonts from './upload-fonts';\nimport { FontLibraryContext } from './context';\nimport { unlock } from '../../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst DEFAULT_TABS = [\n\t{\n\t\tid: 'installed-fonts',\n\t\ttitle: __( 'Library' ),\n\t},\n\t{\n\t\tid: 'upload-fonts',\n\t\ttitle: __( 'Upload' ),\n\t},\n];\n\nconst tabsFromCollections = ( collections ) =>\n\tcollections.map( ( { id, name } ) => ( {\n\t\tid,\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} ) );\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tinitialTabId = 'installed-fonts',\n} ) {\n\tconst { collections } = useContext( FontLibraryContext );\n\n\tconst tabs = [\n\t\t...DEFAULT_TABS,\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<div className=\"font-library-modal__tabs\">\n\t\t\t\t<Tabs initialTabId={ initialTabId }>\n\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t{ tabs.map( ( { id, title } ) => (\n\t\t\t\t\t\t\t<Tabs.Tab key={ id } tabId={ id }>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( { id } ) => {\n\t\t\t\t\t\tlet contents;\n\t\t\t\t\t\tswitch ( id ) {\n\t\t\t\t\t\t\tcase 'upload-fonts':\n\t\t\t\t\t\t\t\tcontents = <UploadFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\t\t\tcontents = <InstalledFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tcontents = <FontCollection id={ id } />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\t\ttabId={ id }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contents }\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,KAAK,EACLC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;AAC9B,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,WAAW,MAAM,gBAAgB;AACxC,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,MAAM;EAAEC;AAAK,CAAC,GAAGD,MAAM,CAAEN,qBAAsB,CAAC;AAEhD,MAAMQ,YAAY,GAAG,CACpB;EACCC,EAAE,EAAE,iBAAiB;EACrBC,KAAK,EAAEb,EAAE,CAAE,SAAU;AACtB,CAAC,EACD;EACCY,EAAE,EAAE,cAAc;EAClBC,KAAK,EAAEb,EAAE,CAAE,QAAS;AACrB,CAAC,CACD;AAED,MAAMc,mBAAmB,GAAKC,WAAW,IACxCA,WAAW,CAACC,GAAG,CAAE,CAAE;EAAEJ,EAAE;EAAEK;AAAK,CAAC,MAAQ;EACtCL,EAAE;EACFC,KAAK,EACJE,WAAW,CAACG,MAAM,KAAK,CAAC,IAAIN,EAAE,KAAK,yBAAyB,GACzDZ,EAAE,CAAE,eAAgB,CAAC,GACrBiB;AACL,CAAC,CAAG,CAAC;AAEN,SAASE,gBAAgBA,CAAE;EAC1BC,cAAc;EACdC,YAAY,GAAG;AAChB,CAAC,EAAG;EACH,MAAM;IAAEN;EAAY,CAAC,GAAGX,UAAU,CAAEI,kBAAmB,CAAC;EAExD,MAAMc,IAAI,GAAG,CACZ,GAAGX,YAAY,EACf,GAAGG,mBAAmB,CAAEC,WAAW,IAAI,EAAG,CAAC,CAC3C;EAED,OACCQ,aAAA,CAACtB,KAAK;IACLY,KAAK,EAAGb,EAAE,CAAE,OAAQ,CAAG;IACvBoB,cAAc,EAAGA,cAAgB;IACjCI,YAAY;IACZC,SAAS,EAAC;EAAoB,GAE9BF,aAAA;IAAKE,SAAS,EAAC;EAA0B,GACxCF,aAAA,CAACb,IAAI;IAACW,YAAY,EAAGA;EAAc,GAClCE,aAAA,CAACb,IAAI,CAACgB,OAAO,QACVJ,IAAI,CAACN,GAAG,CAAE,CAAE;IAAEJ,EAAE;IAAEC;EAAM,CAAC,KAC1BU,aAAA,CAACb,IAAI,CAACiB,GAAG;IAACC,GAAG,EAAGhB,EAAI;IAACiB,KAAK,EAAGjB;EAAI,GAC9BC,KACO,CACT,CACW,CAAC,EACbS,IAAI,CAACN,GAAG,CAAE,CAAE;IAAEJ;EAAG,CAAC,KAAM;IACzB,IAAIkB,QAAQ;IACZ,QAASlB,EAAE;MACV,KAAK,cAAc;QAClBkB,QAAQ,GAAGP,aAAA,CAAChB,WAAW,MAAE,CAAC;QAC1B;MACD,KAAK,iBAAiB;QACrBuB,QAAQ,GAAGP,aAAA,CAAClB,cAAc,MAAE,CAAC;QAC7B;MACD;QACCyB,QAAQ,GAAGP,aAAA,CAACjB,cAAc;UAACM,EAAE,EAAGA;QAAI,CAAE,CAAC;IACzC;IACA,OACCW,aAAA,CAACb,IAAI,CAACqB,QAAQ;MACbH,GAAG,EAAGhB,EAAI;MACViB,KAAK,EAAGjB,EAAI;MACZoB,SAAS,EAAG;IAAO,GAEjBF,QACY,CAAC;EAElB,CAAE,CACG,CACF,CACC,CAAC;AAEV;AAEA,eAAeX,gBAAgB"}
1
+ {"version":3,"names":["__","Modal","privateApis","componentsPrivateApis","useContext","InstalledFonts","FontCollection","UploadFonts","FontLibraryContext","unlock","Tabs","DEFAULT_TABS","id","title","tabsFromCollections","collections","map","slug","name","length","FontLibraryModal","onRequestClose","initialTabId","tabs","createElement","isFullScreen","className","TabList","Tab","key","tabId","contents","TabPanel","focusable"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} 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 UploadFonts from './upload-fonts';\nimport { FontLibraryContext } from './context';\nimport { unlock } from '../../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst DEFAULT_TABS = [\n\t{\n\t\tid: 'installed-fonts',\n\t\ttitle: __( 'Library' ),\n\t},\n\t{\n\t\tid: 'upload-fonts',\n\t\ttitle: __( 'Upload' ),\n\t},\n];\n\nconst tabsFromCollections = ( collections ) =>\n\tcollections.map( ( { slug, name } ) => ( {\n\t\tid: slug,\n\t\ttitle:\n\t\t\tcollections.length === 1 && slug === 'default-font-collection'\n\t\t\t\t? __( 'Install Fonts' )\n\t\t\t\t: name,\n\t} ) );\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tinitialTabId = 'installed-fonts',\n} ) {\n\tconst { collections } = useContext( FontLibraryContext );\n\n\tconst tabs = [\n\t\t...DEFAULT_TABS,\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<div className=\"font-library-modal__tabs\">\n\t\t\t\t<Tabs initialTabId={ initialTabId }>\n\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t{ tabs.map( ( { id, title } ) => (\n\t\t\t\t\t\t\t<Tabs.Tab key={ id } tabId={ id }>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( { id } ) => {\n\t\t\t\t\t\tlet contents;\n\t\t\t\t\t\tswitch ( id ) {\n\t\t\t\t\t\t\tcase 'upload-fonts':\n\t\t\t\t\t\t\t\tcontents = <UploadFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\t\t\tcontents = <InstalledFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tcontents = <FontCollection slug={ id } />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\t\ttabId={ id }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contents }\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,KAAK,EACLC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;AAC9B,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,WAAW,MAAM,gBAAgB;AACxC,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,MAAM;EAAEC;AAAK,CAAC,GAAGD,MAAM,CAAEN,qBAAsB,CAAC;AAEhD,MAAMQ,YAAY,GAAG,CACpB;EACCC,EAAE,EAAE,iBAAiB;EACrBC,KAAK,EAAEb,EAAE,CAAE,SAAU;AACtB,CAAC,EACD;EACCY,EAAE,EAAE,cAAc;EAClBC,KAAK,EAAEb,EAAE,CAAE,QAAS;AACrB,CAAC,CACD;AAED,MAAMc,mBAAmB,GAAKC,WAAW,IACxCA,WAAW,CAACC,GAAG,CAAE,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,MAAQ;EACxCN,EAAE,EAAEK,IAAI;EACRJ,KAAK,EACJE,WAAW,CAACI,MAAM,KAAK,CAAC,IAAIF,IAAI,KAAK,yBAAyB,GAC3DjB,EAAE,CAAE,eAAgB,CAAC,GACrBkB;AACL,CAAC,CAAG,CAAC;AAEN,SAASE,gBAAgBA,CAAE;EAC1BC,cAAc;EACdC,YAAY,GAAG;AAChB,CAAC,EAAG;EACH,MAAM;IAAEP;EAAY,CAAC,GAAGX,UAAU,CAAEI,kBAAmB,CAAC;EAExD,MAAMe,IAAI,GAAG,CACZ,GAAGZ,YAAY,EACf,GAAGG,mBAAmB,CAAEC,WAAW,IAAI,EAAG,CAAC,CAC3C;EAED,OACCS,aAAA,CAACvB,KAAK;IACLY,KAAK,EAAGb,EAAE,CAAE,OAAQ,CAAG;IACvBqB,cAAc,EAAGA,cAAgB;IACjCI,YAAY;IACZC,SAAS,EAAC;EAAoB,GAE9BF,aAAA;IAAKE,SAAS,EAAC;EAA0B,GACxCF,aAAA,CAACd,IAAI;IAACY,YAAY,EAAGA;EAAc,GAClCE,aAAA,CAACd,IAAI,CAACiB,OAAO,QACVJ,IAAI,CAACP,GAAG,CAAE,CAAE;IAAEJ,EAAE;IAAEC;EAAM,CAAC,KAC1BW,aAAA,CAACd,IAAI,CAACkB,GAAG;IAACC,GAAG,EAAGjB,EAAI;IAACkB,KAAK,EAAGlB;EAAI,GAC9BC,KACO,CACT,CACW,CAAC,EACbU,IAAI,CAACP,GAAG,CAAE,CAAE;IAAEJ;EAAG,CAAC,KAAM;IACzB,IAAImB,QAAQ;IACZ,QAASnB,EAAE;MACV,KAAK,cAAc;QAClBmB,QAAQ,GAAGP,aAAA,CAACjB,WAAW,MAAE,CAAC;QAC1B;MACD,KAAK,iBAAiB;QACrBwB,QAAQ,GAAGP,aAAA,CAACnB,cAAc,MAAE,CAAC;QAC7B;MACD;QACC0B,QAAQ,GAAGP,aAAA,CAAClB,cAAc;UAACW,IAAI,EAAGL;QAAI,CAAE,CAAC;IAC3C;IACA,OACCY,aAAA,CAACd,IAAI,CAACsB,QAAQ;MACbH,GAAG,EAAGjB,EAAI;MACVkB,KAAK,EAAGlB,EAAI;MACZqB,SAAS,EAAG;IAAO,GAEjBF,QACY,CAAC;EAElB,CAAE,CACG,CACF,CACC,CAAC;AAEV;AAEA,eAAeX,gBAAgB"}
@@ -15,7 +15,6 @@ import FontsGrid from './fonts-grid';
15
15
  import LibraryFontDetails from './library-font-details';
16
16
  import LibraryFontCard from './library-font-card';
17
17
  import ConfirmDeleteDialog from './confirm-delete-dialog';
18
- import { getNoticeFromUninstallResponse } from './utils/get-notice-from-response';
19
18
  import { unlock } from '../../../lock-unlock';
20
19
  const {
21
20
  ProgressBar
@@ -27,7 +26,7 @@ function InstalledFonts() {
27
26
  baseThemeFonts,
28
27
  handleSetLibraryFontSelected,
29
28
  refreshLibrary,
30
- uninstallFont,
29
+ uninstallFontFamily,
31
30
  isResolvingLibrary
32
31
  } = useContext(FontLibraryContext);
33
32
  const [isConfirmDeleteOpen, setIsConfirmDeleteOpen] = useState(false);
@@ -39,14 +38,22 @@ function InstalledFonts() {
39
38
  };
40
39
  const [notice, setNotice] = useState(null);
41
40
  const handleConfirmUninstall = async () => {
42
- const response = await uninstallFont(libraryFontSelected);
43
- const uninstallNotice = getNoticeFromUninstallResponse(response);
44
- setNotice(uninstallNotice);
45
- // If the font was succesfully uninstalled it is unselected
46
- if (!response?.errors?.length) {
41
+ try {
42
+ await uninstallFontFamily(libraryFontSelected);
43
+ setNotice({
44
+ type: 'success',
45
+ message: __('Font family uninstalled successfully.')
46
+ });
47
+
48
+ // If the font was succesfully uninstalled it is unselected.
47
49
  handleUnselectFont();
50
+ setIsConfirmDeleteOpen(false);
51
+ } catch (error) {
52
+ setNotice({
53
+ type: 'error',
54
+ message: __('There was an error uninstalling the font family. ') + error.message
55
+ });
48
56
  }
49
- setIsConfirmDeleteOpen(false);
50
57
  };
51
58
  const handleUninstallClick = async () => {
52
59
  setIsConfirmDeleteOpen(true);
@@ -57,6 +64,7 @@ function InstalledFonts() {
57
64
  const tabDescription = !!libraryFontSelected ? __('Choose font variants. Keep in mind that too many variants could make your site slower.') : null;
58
65
  const shouldDisplayDeleteButton = !!libraryFontSelected && libraryFontSelected?.source !== 'theme';
59
66
  useEffect(() => {
67
+ handleSelectFont(libraryFontSelected);
60
68
  refreshLibrary();
61
69
  // eslint-disable-next-line react-hooks/exhaustive-deps
62
70
  }, []);
@@ -1 +1 @@
1
- {"version":3,"names":["__","useContext","useEffect","useState","privateApis","componentsPrivateApis","__experimentalHStack","HStack","__experimentalSpacer","Spacer","Button","Spinner","Notice","FlexItem","TabPanelLayout","FontLibraryContext","FontsGrid","LibraryFontDetails","LibraryFontCard","ConfirmDeleteDialog","getNoticeFromUninstallResponse","unlock","ProgressBar","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFont","isResolvingLibrary","isConfirmDeleteOpen","setIsConfirmDeleteOpen","handleUnselectFont","handleSelectFont","font","notice","setNotice","handleConfirmUninstall","response","uninstallNotice","errors","length","handleUninstallClick","handleCancelUninstall","tabDescription","shouldDisplayDeleteButton","source","timeout","setTimeout","clearTimeout","createElement","title","name","description","handleBack","footer","Footer","Fragment","margin","isDismissible","status","type","className","message","map","key","slug","onClick","saveFontFamilies","fontFamiliesHasChanges","isInstalling","justify","variant","disabled"],"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\tNotice,\n\tFlexItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TabPanelLayout from './tab-panel-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport LibraryFontDetails from './library-font-details';\nimport LibraryFontCard from './library-font-card';\nimport ConfirmDeleteDialog from './confirm-delete-dialog';\nimport { getNoticeFromUninstallResponse } from './utils/get-notice-from-response';\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 [ notice, setNotice ] = useState( null );\n\n\tconst handleConfirmUninstall = async () => {\n\t\tconst response = await uninstallFont( libraryFontSelected );\n\t\tconst uninstallNotice = getNoticeFromUninstallResponse( response );\n\t\tsetNotice( uninstallNotice );\n\t\t// If the font was succesfully uninstalled it is unselected\n\t\tif ( ! response?.errors?.length ) {\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\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\treturn (\n\t\t<TabPanelLayout\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{ notice && (\n\t\t\t\t<>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__font-collection__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t</>\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\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</TabPanelLayout>\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":["__","useContext","useEffect","useState","privateApis","componentsPrivateApis","__experimentalHStack","HStack","__experimentalSpacer","Spacer","Button","Spinner","Notice","FlexItem","TabPanelLayout","FontLibraryContext","FontsGrid","LibraryFontDetails","LibraryFontCard","ConfirmDeleteDialog","unlock","ProgressBar","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isConfirmDeleteOpen","setIsConfirmDeleteOpen","handleUnselectFont","handleSelectFont","font","notice","setNotice","handleConfirmUninstall","type","message","error","handleUninstallClick","handleCancelUninstall","tabDescription","shouldDisplayDeleteButton","source","timeout","setTimeout","clearTimeout","createElement","title","name","description","handleBack","footer","Footer","Fragment","margin","isDismissible","status","className","length","map","key","slug","onClick","saveFontFamilies","fontFamiliesHasChanges","isInstalling","justify","variant","disabled"],"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\tNotice,\n\tFlexItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TabPanelLayout from './tab-panel-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport LibraryFontDetails from './library-font-details';\nimport LibraryFontCard from './library-font-card';\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\tuninstallFontFamily,\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 [ notice, setNotice ] = useState( null );\n\n\tconst handleConfirmUninstall = async () => {\n\t\ttry {\n\t\t\tawait uninstallFontFamily( libraryFontSelected );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\n\t\t\t// If the font was succesfully uninstalled it is unselected.\n\t\t\thandleUnselectFont();\n\t\t\tsetIsConfirmDeleteOpen( false );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\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\thandleSelectFont( libraryFontSelected );\n\t\trefreshLibrary();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\treturn (\n\t\t<TabPanelLayout\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{ notice && (\n\t\t\t\t<>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__font-collection__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t</>\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\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</TabPanelLayout>\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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"}
@@ -17,7 +17,7 @@ function LibraryFontCard({
17
17
  const {
18
18
  getFontFacesActivated
19
19
  } = useContext(FontLibraryContext);
20
- const variantsInstalled = font.fontFace?.length || 1;
20
+ const variantsInstalled = font?.fontFace?.length > 0 ? font.fontFace.length : 1;
21
21
  const variantsActive = getFontFacesActivated(font.slug, font.source).length;
22
22
  const variantsText = sprintf( /* translators: %1$d: Active font variants, %2$d: Total font variants */
23
23
  __('%1$s/%2$s variants active'), variantsActive, variantsInstalled);
@@ -1 +1 @@
1
- {"version":3,"names":["__","sprintf","useContext","FontCard","FontLibraryContext","LibraryFontCard","font","props","getFontFacesActivated","variantsInstalled","fontFace","length","variantsActive","slug","source","variantsText","createElement"],"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":";AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,kBAAkB,QAAQ,WAAW;AAE9C,SAASC,eAAeA,CAAE;EAAEC,IAAI;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC9C,MAAM;IAAEC;EAAsB,CAAC,GAAGN,UAAU,CAAEE,kBAAmB,CAAC;EAElE,MAAMK,iBAAiB,GAAGH,IAAI,CAACI,QAAQ,EAAEC,MAAM,IAAI,CAAC;EACpD,MAAMC,cAAc,GAAGJ,qBAAqB,CAC3CF,IAAI,CAACO,IAAI,EACTP,IAAI,CAACQ,MACN,CAAC,CAACH,MAAM;EACR,MAAMI,YAAY,GAAGd,OAAO,EAC3B;EACAD,EAAE,CAAE,2BAA4B,CAAC,EACjCY,cAAc,EACdH,iBACD,CAAC;EAED,OACCO,aAAA,CAACb,QAAQ;IAACG,IAAI,EAAGA,IAAM;IAACS,YAAY,EAAGA,YAAc;IAAA,GAAMR;EAAK,CAAI,CAAC;AAEvE;AAEA,eAAeF,eAAe"}
1
+ {"version":3,"names":["__","sprintf","useContext","FontCard","FontLibraryContext","LibraryFontCard","font","props","getFontFacesActivated","variantsInstalled","fontFace","length","variantsActive","slug","source","variantsText","createElement"],"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 =\n\t\tfont?.fontFace?.length > 0 ? 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":";AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,kBAAkB,QAAQ,WAAW;AAE9C,SAASC,eAAeA,CAAE;EAAEC,IAAI;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC9C,MAAM;IAAEC;EAAsB,CAAC,GAAGN,UAAU,CAAEE,kBAAmB,CAAC;EAElE,MAAMK,iBAAiB,GACtBH,IAAI,EAAEI,QAAQ,EAAEC,MAAM,GAAG,CAAC,GAAGL,IAAI,CAACI,QAAQ,CAACC,MAAM,GAAG,CAAC;EACtD,MAAMC,cAAc,GAAGJ,qBAAqB,CAC3CF,IAAI,CAACO,IAAI,EACTP,IAAI,CAACQ,MACN,CAAC,CAACH,MAAM;EACR,MAAMI,YAAY,GAAGd,OAAO,EAC3B;EACAD,EAAE,CAAE,2BAA4B,CAAC,EACjCY,cAAc,EACdH,iBACD,CAAC;EAED,OACCO,aAAA,CAACb,QAAQ;IAACG,IAAI,EAAGA,IAAM;IAACS,YAAY,EAAGA,YAAc;IAAA,GAAMR;EAAK,CAAI,CAAC;AAEvE;AAEA,eAAeF,eAAe"}
@@ -20,9 +20,9 @@ function LibraryFontVariant({
20
20
  isFontActivated,
21
21
  toggleActivateFont
22
22
  } = useContext(FontLibraryContext);
23
- const isIstalled = font?.fontFace ? isFontActivated(font.slug, face.fontStyle, face.fontWeight, font.source) : isFontActivated(font.slug, null, null, font.source);
23
+ const isIstalled = font?.fontFace?.length > 0 ? isFontActivated(font.slug, face.fontStyle, face.fontWeight, font.source) : isFontActivated(font.slug, null, null, font.source);
24
24
  const handleToggleActivation = () => {
25
- if (font?.fontFace) {
25
+ if (font?.fontFace?.length > 0) {
26
26
  toggleActivateFont(font, face);
27
27
  return;
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","CheckboxControl","Flex","privateApis","componentsPrivateApis","getFontFaceVariantName","FontLibraryContext","FontFaceDemo","unlock","LibraryFontVariant","face","font","isFontActivated","toggleActivateFont","isIstalled","fontFace","slug","fontStyle","fontWeight","source","handleToggleActivation","displayName","name","kebabCase","checkboxId","createElement","className","htmlFor","justify","align","gap","text","checked","onChange","__nextHasNoMarginBottom","id","label"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport { FontLibraryContext } from './context';\nimport FontFaceDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nfunction LibraryFontVariant( { face, font } ) {\n\tconst { isFontActivated, toggleActivateFont } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst isIstalled = font?.fontFace\n\t\t? isFontActivated(\n\t\t\t\tfont.slug,\n\t\t\t\tface.fontStyle,\n\t\t\t\tface.fontWeight,\n\t\t\t\tfont.source\n\t\t )\n\t\t: isFontActivated( font.slug, null, null, font.source );\n\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace ) {\n\t\t\ttoggleActivateFont( font, face );\n\t\t\treturn;\n\t\t}\n\t\ttoggleActivateFont( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<label\n\t\t\tclassName=\"font-library-modal__library-font-variant\"\n\t\t\thtmlFor={ checkboxId }\n\t\t>\n\t\t\t<Flex justify=\"space-between\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<FontFaceDemo fontFace={ face } text={ displayName } />\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ isIstalled }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t\tlabel={ false }\n\t\t\t\t/>\n\t\t\t</Flex>\n\t\t</label>\n\t);\n}\n\nexport default LibraryFontVariant;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,oBAAoB;AAC/C,SACCC,eAAe,EACfC,IAAI,EACJC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;;AAE9B;AACA;AACA;AACA,SAASC,sBAAsB,QAAQ,SAAS;AAChD,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,OAAOC,YAAY,MAAM,aAAa;AACtC,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,SAASC,kBAAkBA,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAmB,CAAC,GAC5Cb,UAAU,CAAEM,kBAAmB,CAAC;EAEjC,MAAMQ,UAAU,GAAGH,IAAI,EAAEI,QAAQ,GAC9BH,eAAe,CACfD,IAAI,CAACK,IAAI,EACTN,IAAI,CAACO,SAAS,EACdP,IAAI,CAACQ,UAAU,EACfP,IAAI,CAACQ,MACL,CAAC,GACDP,eAAe,CAAED,IAAI,CAACK,IAAI,EAAE,IAAI,EAAE,IAAI,EAAEL,IAAI,CAACQ,MAAO,CAAC;EAExD,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACpC,IAAKT,IAAI,EAAEI,QAAQ,EAAG;MACrBF,kBAAkB,CAAEF,IAAI,EAAED,IAAK,CAAC;MAChC;IACD;IACAG,kBAAkB,CAAEF,IAAK,CAAC;EAC3B,CAAC;EAED,MAAMU,WAAW,GAAGV,IAAI,CAACW,IAAI,GAAG,GAAG,GAAGjB,sBAAsB,CAAEK,IAAK,CAAC;EACpE,MAAM;IAAEa;EAAU,CAAC,GAAGf,MAAM,CAAEJ,qBAAsB,CAAC;EACrD,MAAMoB,UAAU,GAAGD,SAAS,CAC1B,GAAGZ,IAAI,CAACK,IAAM,IAAIX,sBAAsB,CAAEK,IAAK,CAAG,EACpD,CAAC;EAED,OACCe,aAAA;IACCC,SAAS,EAAC,0CAA0C;IACpDC,OAAO,EAAGH;EAAY,GAEtBC,aAAA,CAACvB,IAAI;IAAC0B,OAAO,EAAC,eAAe;IAACC,KAAK,EAAC,QAAQ;IAACC,GAAG,EAAC;EAAM,GACtDL,aAAA,CAAClB,YAAY;IAACQ,QAAQ,EAAGL,IAAM;IAACqB,IAAI,EAAGV;EAAa,CAAE,CAAC,EACvDI,aAAA,CAACxB,eAAe;IACf+B,OAAO,EAAGlB,UAAY;IACtBmB,QAAQ,EAAGb,sBAAwB;IACnCc,uBAAuB,EAAG,IAAM;IAChCC,EAAE,EAAGX,UAAY;IACjBY,KAAK,EAAG;EAAO,CACf,CACI,CACA,CAAC;AAEV;AAEA,eAAe3B,kBAAkB"}
1
+ {"version":3,"names":["useContext","CheckboxControl","Flex","privateApis","componentsPrivateApis","getFontFaceVariantName","FontLibraryContext","FontFaceDemo","unlock","LibraryFontVariant","face","font","isFontActivated","toggleActivateFont","isIstalled","fontFace","length","slug","fontStyle","fontWeight","source","handleToggleActivation","displayName","name","kebabCase","checkboxId","createElement","className","htmlFor","justify","align","gap","text","checked","onChange","__nextHasNoMarginBottom","id","label"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport { FontLibraryContext } from './context';\nimport FontFaceDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nfunction LibraryFontVariant( { face, font } ) {\n\tconst { isFontActivated, toggleActivateFont } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst isIstalled =\n\t\tfont?.fontFace?.length > 0\n\t\t\t? isFontActivated(\n\t\t\t\t\tfont.slug,\n\t\t\t\t\tface.fontStyle,\n\t\t\t\t\tface.fontWeight,\n\t\t\t\t\tfont.source\n\t\t\t )\n\t\t\t: isFontActivated( font.slug, null, null, font.source );\n\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace?.length > 0 ) {\n\t\t\ttoggleActivateFont( font, face );\n\t\t\treturn;\n\t\t}\n\t\ttoggleActivateFont( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<label\n\t\t\tclassName=\"font-library-modal__library-font-variant\"\n\t\t\thtmlFor={ checkboxId }\n\t\t>\n\t\t\t<Flex justify=\"space-between\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<FontFaceDemo fontFace={ face } text={ displayName } />\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ isIstalled }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t\tlabel={ false }\n\t\t\t\t/>\n\t\t\t</Flex>\n\t\t</label>\n\t);\n}\n\nexport default LibraryFontVariant;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,oBAAoB;AAC/C,SACCC,eAAe,EACfC,IAAI,EACJC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;;AAE9B;AACA;AACA;AACA,SAASC,sBAAsB,QAAQ,SAAS;AAChD,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,OAAOC,YAAY,MAAM,aAAa;AACtC,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,SAASC,kBAAkBA,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAmB,CAAC,GAC5Cb,UAAU,CAAEM,kBAAmB,CAAC;EAEjC,MAAMQ,UAAU,GACfH,IAAI,EAAEI,QAAQ,EAAEC,MAAM,GAAG,CAAC,GACvBJ,eAAe,CACfD,IAAI,CAACM,IAAI,EACTP,IAAI,CAACQ,SAAS,EACdR,IAAI,CAACS,UAAU,EACfR,IAAI,CAACS,MACL,CAAC,GACDR,eAAe,CAAED,IAAI,CAACM,IAAI,EAAE,IAAI,EAAE,IAAI,EAAEN,IAAI,CAACS,MAAO,CAAC;EAEzD,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACpC,IAAKV,IAAI,EAAEI,QAAQ,EAAEC,MAAM,GAAG,CAAC,EAAG;MACjCH,kBAAkB,CAAEF,IAAI,EAAED,IAAK,CAAC;MAChC;IACD;IACAG,kBAAkB,CAAEF,IAAK,CAAC;EAC3B,CAAC;EAED,MAAMW,WAAW,GAAGX,IAAI,CAACY,IAAI,GAAG,GAAG,GAAGlB,sBAAsB,CAAEK,IAAK,CAAC;EACpE,MAAM;IAAEc;EAAU,CAAC,GAAGhB,MAAM,CAAEJ,qBAAsB,CAAC;EACrD,MAAMqB,UAAU,GAAGD,SAAS,CAC1B,GAAGb,IAAI,CAACM,IAAM,IAAIZ,sBAAsB,CAAEK,IAAK,CAAG,EACpD,CAAC;EAED,OACCgB,aAAA;IACCC,SAAS,EAAC,0CAA0C;IACpDC,OAAO,EAAGH;EAAY,GAEtBC,aAAA,CAACxB,IAAI;IAAC2B,OAAO,EAAC,eAAe;IAACC,KAAK,EAAC,QAAQ;IAACC,GAAG,EAAC;EAAM,GACtDL,aAAA,CAACnB,YAAY;IAACQ,QAAQ,EAAGL,IAAM;IAACsB,IAAI,EAAGV;EAAa,CAAE,CAAC,EACvDI,aAAA,CAACzB,eAAe;IACfgC,OAAO,EAAGnB,UAAY;IACtBoB,QAAQ,EAAGb,sBAAwB;IACnCc,uBAAuB,EAAG,IAAM;IAChCC,EAAE,EAAGX,UAAY;IACjBY,KAAK,EAAG;EAAO,CACf,CACI,CACA,CAAC;AAEV;AAEA,eAAe5B,kBAAkB"}
@@ -14,7 +14,6 @@ import { FontLibraryContext } from './context';
14
14
  import { Font } from '../../../../lib/lib-font.browser';
15
15
  import makeFamiliesFromFaces from './utils/make-families-from-faces';
16
16
  import { loadFontFaceInBrowser } from './utils';
17
- import { getNoticeFromInstallResponse } from './utils/get-notice-from-response';
18
17
  import { unlock } from '../../../lock-unlock';
19
18
  const {
20
19
  ProgressBar
@@ -136,11 +135,21 @@ function LocalFonts() {
136
135
  type: 'error',
137
136
  message: __('Variants from only one font family can be uploaded at a time.')
138
137
  });
138
+ setIsUploading(false);
139
139
  return;
140
140
  }
141
- const response = await installFont(fontFamilies[0]);
142
- const installNotice = getNoticeFromInstallResponse(response);
143
- setNotice(installNotice);
141
+ try {
142
+ await installFont(fontFamilies[0]);
143
+ setNotice({
144
+ type: 'success',
145
+ message: __('Fonts were installed successfully.')
146
+ });
147
+ } catch (error) {
148
+ setNotice({
149
+ type: 'error',
150
+ message: error.message
151
+ });
152
+ }
144
153
  setIsUploading(false);
145
154
  };
146
155
  return createElement(Fragment, null, createElement(Spacer, {
@@ -1 +1 @@
1
- {"version":3,"names":["__","sprintf","Button","DropZone","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","FormFileUpload","Notice","FlexItem","privateApis","componentsPrivateApis","useContext","useState","useEffect","ALLOWED_FILE_EXTENSIONS","FontLibraryContext","Font","makeFamiliesFromFaces","loadFontFaceInBrowser","getNoticeFromInstallResponse","unlock","ProgressBar","LocalFonts","installFont","notice","setNotice","isUploading","setIsUploading","supportedFormats","slice","map","extension","join","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","timeout","setTimeout","clearTimeout","uniqueFilenames","Set","selectedFiles","allowedFiles","filter","file","has","name","fileExtension","split","pop","toLowerCase","includes","add","length","loadFiles","fontFacesLoaded","Promise","all","fontFile","fontFaceData","getFontFaceMetadata","handleInstall","readFileAsArrayBuffer","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","buffer","fontObj","fromDataBuffer","onloadEvent","font","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","type","message","response","installNotice","createElement","Fragment","margin","onFilesDrop","className","accept","ext","multiple","onChange","render","openFileDialog","onClick","isDismissible","status"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/local-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropZone,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFormFileUpload,\n\tNotice,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useContext, useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\nimport { getNoticeFromInstallResponse } from './utils/get-notice-from-response';\nimport { unlock } from '../../../lock-unlock';\n\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction LocalFonts() {\n\tconst { installFont } = useContext( FontLibraryContext );\n\tconst [ notice, setNotice ] = useState( null );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst supportedFormats =\n\t\tALLOWED_FILE_EXTENSIONS.slice( 0, -1 )\n\t\t\t.map( ( extension ) => `.${ extension }` )\n\t\t\t.join( ', ' ) +\n\t\t` ${ __( 'and' ) } .${ ALLOWED_FILE_EXTENSIONS.slice( -1 ) }`;\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tconst allowedFiles = selectedFiles.filter( ( file ) => {\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn false; // Discard duplicates\n\t\t\t}\n\t\t\t// Eliminates files that are not allowed\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn true; // Keep file if the extension is allowed\n\t\t\t}\n\t\t\treturn false; // Discard file extension not allowed\n\t\t} );\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\tawait handleInstall( fontFacesLoaded );\n\t};\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\n\t\tif ( fontFamilies.length > 1 ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Variants from only one font family can be uploaded at a time.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tconst response = await installFont( fontFamilies[ 0 ] );\n\t\tconst installNotice = getNoticeFromInstallResponse( response );\n\t\tsetNotice( installNotice );\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 16 } />\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>{ __( 'Upload font' ) }</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: supported font formats: ex: .ttf, .woff and .woff2 */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: %s.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tsupportedFormats\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t{ ! isUploading && notice && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default LocalFonts;\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","sprintf","Button","DropZone","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","FormFileUpload","Notice","FlexItem","privateApis","componentsPrivateApis","useContext","useState","useEffect","ALLOWED_FILE_EXTENSIONS","FontLibraryContext","Font","makeFamiliesFromFaces","loadFontFaceInBrowser","unlock","ProgressBar","LocalFonts","installFont","notice","setNotice","isUploading","setIsUploading","supportedFormats","slice","map","extension","join","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","timeout","setTimeout","clearTimeout","uniqueFilenames","Set","selectedFiles","allowedFiles","filter","file","has","name","fileExtension","split","pop","toLowerCase","includes","add","length","loadFiles","fontFacesLoaded","Promise","all","fontFile","fontFaceData","getFontFaceMetadata","handleInstall","readFileAsArrayBuffer","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","buffer","fontObj","fromDataBuffer","onloadEvent","font","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","type","message","error","createElement","Fragment","margin","onFilesDrop","className","accept","ext","multiple","onChange","render","openFileDialog","onClick","isDismissible","status"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/local-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropZone,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFormFileUpload,\n\tNotice,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useContext, useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\nimport { unlock } from '../../../lock-unlock';\n\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction LocalFonts() {\n\tconst { installFont } = useContext( FontLibraryContext );\n\tconst [ notice, setNotice ] = useState( null );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst supportedFormats =\n\t\tALLOWED_FILE_EXTENSIONS.slice( 0, -1 )\n\t\t\t.map( ( extension ) => `.${ extension }` )\n\t\t\t.join( ', ' ) +\n\t\t` ${ __( 'and' ) } .${ ALLOWED_FILE_EXTENSIONS.slice( -1 ) }`;\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tconst allowedFiles = selectedFiles.filter( ( file ) => {\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn false; // Discard duplicates\n\t\t\t}\n\t\t\t// Eliminates files that are not allowed\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn true; // Keep file if the extension is allowed\n\t\t\t}\n\t\t\treturn false; // Discard file extension not allowed\n\t\t} );\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\tawait handleInstall( fontFacesLoaded );\n\t};\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\n\t\tif ( fontFamilies.length > 1 ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Variants from only one font family can be uploaded at a time.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFont( fontFamilies[ 0 ] );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 16 } />\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>{ __( 'Upload font' ) }</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: supported font formats: ex: .ttf, .woff and .woff2 */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: %s.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tsupportedFormats\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t{ ! isUploading && notice && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default LocalFonts;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SACCC,MAAM,EACNC,QAAQ,EACRC,oBAAoB,IAAIC,MAAM,EAC9BC,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,EAC9BC,cAAc,EACdC,MAAM,EACNC,QAAQ,EACRC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;AAC9B,SAASC,UAAU,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;;AAEpE;AACA;AACA;AACA,SAASC,uBAAuB,QAAQ,mBAAmB;AAC3D,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,SAASC,IAAI,QAAQ,kCAAkC;AACvD,OAAOC,qBAAqB,MAAM,kCAAkC;AACpE,SAASC,qBAAqB,QAAQ,SAAS;AAC/C,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,MAAM;EAAEC;AAAY,CAAC,GAAGD,MAAM,CAAET,qBAAsB,CAAC;AAEvD,SAASW,UAAUA,CAAA,EAAG;EACrB,MAAM;IAAEC;EAAY,CAAC,GAAGX,UAAU,CAAEI,kBAAmB,CAAC;EACxD,MAAM,CAAEQ,MAAM,EAAEC,SAAS,CAAE,GAAGZ,QAAQ,CAAE,IAAK,CAAC;EAC9C,MAAM,CAAEa,WAAW,EAAEC,cAAc,CAAE,GAAGd,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAMe,gBAAgB,GACrBb,uBAAuB,CAACc,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CACpCC,GAAG,CAAIC,SAAS,IAAO,IAAIA,SAAW,EAAE,CAAC,CACzCC,IAAI,CAAE,IAAK,CAAC,GACb,IAAInC,EAAE,CAAE,KAAM,CAAG,KAAKkB,uBAAuB,CAACc,KAAK,CAAE,CAAC,CAAE,CAAG,EAAC;EAE9D,MAAMI,cAAc,GAAKC,KAAK,IAAM;IACnCC,iBAAiB,CAAED,KAAM,CAAC;EAC3B,CAAC;EACD,MAAME,aAAa,GAAKC,KAAK,IAAM;IAClCF,iBAAiB,CAAEE,KAAK,CAACC,MAAM,CAACJ,KAAM,CAAC;EACxC,CAAC;;EAED;EACApB,SAAS,CAAE,MAAM;IAChB,IAAKU,MAAM,EAAG;MACb,MAAMe,OAAO,GAAGC,UAAU,CAAE,MAAM;QACjCf,SAAS,CAAE,IAAK,CAAC;MAClB,CAAC,EAAE,IAAK,CAAC;MACT,OAAO,MAAMgB,YAAY,CAAEF,OAAQ,CAAC;IACrC;EACD,CAAC,EAAE,CAAEf,MAAM,CAAG,CAAC;;EAEf;AACD;AACA;AACA;AACA;AACA;EACC,MAAMW,iBAAiB,GAAKD,KAAK,IAAM;IACtCT,SAAS,CAAE,IAAK,CAAC;IACjBE,cAAc,CAAE,IAAK,CAAC;IACtB,MAAMe,eAAe,GAAG,IAAIC,GAAG,CAAC,CAAC;IACjC,MAAMC,aAAa,GAAG,CAAE,GAAGV,KAAK,CAAE;IAClC,MAAMW,YAAY,GAAGD,aAAa,CAACE,MAAM,CAAIC,IAAI,IAAM;MACtD,IAAKL,eAAe,CAACM,GAAG,CAAED,IAAI,CAACE,IAAK,CAAC,EAAG;QACvC,OAAO,KAAK,CAAC,CAAC;MACf;MACA;MACA,MAAMC,aAAa,GAAGH,IAAI,CAACE,IAAI,CAACE,KAAK,CAAE,GAAI,CAAC,CAACC,GAAG,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MAChE,IAAKtC,uBAAuB,CAACuC,QAAQ,CAAEJ,aAAc,CAAC,EAAG;QACxDR,eAAe,CAACa,GAAG,CAAER,IAAI,CAACE,IAAK,CAAC;QAChC,OAAO,IAAI,CAAC,CAAC;MACd;;MACA,OAAO,KAAK,CAAC,CAAC;IACf,CAAE,CAAC;;IACH,IAAKJ,YAAY,CAACW,MAAM,GAAG,CAAC,EAAG;MAC9BC,SAAS,CAAEZ,YAAa,CAAC;IAC1B;EACD,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;EACC,MAAMY,SAAS,GAAG,MAAQvB,KAAK,IAAM;IACpC,MAAMwB,eAAe,GAAG,MAAMC,OAAO,CAACC,GAAG,CACxC1B,KAAK,CAACJ,GAAG,CAAE,MAAQ+B,QAAQ,IAAM;MAChC,MAAMC,YAAY,GAAG,MAAMC,mBAAmB,CAAEF,QAAS,CAAC;MAC1D,MAAM1C,qBAAqB,CAC1B2C,YAAY,EACZA,YAAY,CAACf,IAAI,EACjB,KACD,CAAC;MACD,OAAOe,YAAY;IACpB,CAAE,CACH,CAAC;IACD,MAAME,aAAa,CAAEN,eAAgB,CAAC;EACvC,CAAC;;EAED;EACA,eAAeO,qBAAqBA,CAAElB,IAAI,EAAG;IAC5C,OAAO,IAAIY,OAAO,CAAE,CAAEO,OAAO,EAAEC,MAAM,KAAM;MAC1C,MAAMC,MAAM,GAAG,IAAIC,MAAM,CAACC,UAAU,CAAC,CAAC;MACtCF,MAAM,CAACG,iBAAiB,CAAExB,IAAK,CAAC;MAChCqB,MAAM,CAACI,MAAM,GAAG,MAAMN,OAAO,CAAEE,MAAM,CAACK,MAAO,CAAC;MAC9CL,MAAM,CAACM,OAAO,GAAGP,MAAM;IACxB,CAAE,CAAC;EACJ;EAEA,MAAMJ,mBAAmB,GAAG,MAAQF,QAAQ,IAAM;IACjD,MAAMc,MAAM,GAAG,MAAMV,qBAAqB,CAAEJ,QAAS,CAAC;IACtD,MAAMe,OAAO,GAAG,IAAI3D,IAAI,CAAE,eAAgB,CAAC;IAC3C2D,OAAO,CAACC,cAAc,CAAEF,MAAM,EAAEd,QAAQ,CAACZ,IAAK,CAAC;IAC/C;IACA,MAAM6B,WAAW,GAAG,MAAM,IAAInB,OAAO,CAClCO,OAAO,IAAQU,OAAO,CAACJ,MAAM,GAAGN,OACnC,CAAC;IACD,MAAMa,IAAI,GAAGD,WAAW,CAACE,MAAM,CAACD,IAAI;IACpC,MAAM;MAAE9B;IAAK,CAAC,GAAG8B,IAAI,CAACE,QAAQ,CAACC,MAAM;IACrC,MAAMC,QAAQ,GAAGlC,IAAI,CAACmC,GAAG,CAAE,EAAG,CAAC,IAAInC,IAAI,CAACmC,GAAG,CAAE,CAAE,CAAC;IAChD,MAAMC,QAAQ,GAAGpC,IAAI,CAACmC,GAAG,CAAE,CAAE,CAAC,CAAC/B,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAE,QAAS,CAAC;IACjE,MAAMgC,UAAU,GACfP,IAAI,CAACE,QAAQ,CAACC,MAAM,CAAE,MAAM,CAAE,CAACK,aAAa,IAAI,QAAQ;IACzD,MAAMC,UAAU,GAAG,CAAC,CAAET,IAAI,CAACE,QAAQ,CAACC,MAAM,CAACO,IAAI;IAC/C,MAAMC,UAAU,GACfF,UAAU,IACVT,IAAI,CAACE,QAAQ,CAACC,MAAM,CAACO,IAAI,CAACE,IAAI,CAACC,IAAI,CAClC,CAAE;MAAEC;IAAI,CAAC,KAAMA,GAAG,KAAK,MACxB,CAAC;IACF,MAAMC,WAAW,GAAGJ,UAAU,GAC1B,GAAGA,UAAU,CAACK,QAAU,IAAIL,UAAU,CAACM,QAAU,EAAC,GACnD,IAAI;IACP,OAAO;MACNjD,IAAI,EAAEc,QAAQ;MACdoC,UAAU,EAAEd,QAAQ;MACpBe,SAAS,EAAEb,QAAQ,GAAG,QAAQ,GAAG,QAAQ;MACzCC,UAAU,EAAEQ,WAAW,IAAIR;IAC5B,CAAC;EACF,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;EACC,MAAMtB,aAAa,GAAG,MAAQmC,SAAS,IAAM;IAC5C,MAAMC,YAAY,GAAGlF,qBAAqB,CAAEiF,SAAU,CAAC;IAEvD,IAAKC,YAAY,CAAC5C,MAAM,GAAG,CAAC,EAAG;MAC9B/B,SAAS,CAAE;QACV4E,IAAI,EAAE,OAAO;QACbC,OAAO,EAAEzG,EAAE,CACV,+DACD;MACD,CAAE,CAAC;MACH8B,cAAc,CAAE,KAAM,CAAC;MACvB;IACD;IAEA,IAAI;MACH,MAAMJ,WAAW,CAAE6E,YAAY,CAAE,CAAC,CAAG,CAAC;MACtC3E,SAAS,CAAE;QACV4E,IAAI,EAAE,SAAS;QACfC,OAAO,EAAEzG,EAAE,CAAE,oCAAqC;MACnD,CAAE,CAAC;IACJ,CAAC,CAAC,OAAQ0G,KAAK,EAAG;MACjB9E,SAAS,CAAE;QACV4E,IAAI,EAAE,OAAO;QACbC,OAAO,EAAEC,KAAK,CAACD;MAChB,CAAE,CAAC;IACJ;IAEA3E,cAAc,CAAE,KAAM,CAAC;EACxB,CAAC;EAED,OACC6E,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACtG,MAAM;IAACwG,MAAM,EAAG;EAAI,CAAE,CAAC,EACxBF,aAAA,CAACxG,QAAQ;IAAC2G,WAAW,EAAG1E;EAAgB,CAAE,CAAC,EAC3CuE,aAAA,CAAClG,MAAM;IAACsG,SAAS,EAAC;EAAiC,GAChD,CAAElF,WAAW,IACd8E,aAAA,CAACjG,cAAc;IACdsG,MAAM,EAAG9F,uBAAuB,CAACe,GAAG,CACjCgF,GAAG,IAAO,IAAIA,GAAK,EACtB,CAAC,CAAC9E,IAAI,CAAE,GAAI,CAAG;IACf+E,QAAQ,EAAG,IAAM;IACjBC,QAAQ,EAAG5E,aAAe;IAC1B6E,MAAM,EAAGA,CAAE;MAAEC;IAAe,CAAC,KAC5BV,aAAA,CAACzG,MAAM;MACN6G,SAAS,EAAC,iCAAiC;MAC3CO,OAAO,EAAGD;IAAgB,GAE1BV,aAAA,eAAQ3G,EAAE,CAAE,aAAc,CAAS,CAC5B;EACN,CACH,CACD,EACC6B,WAAW,IACZ8E,aAAA,CAAC/F,QAAQ,QACR+F,aAAA;IAAKI,SAAS,EAAC;EAAiC,GAC/CJ,aAAA,CAACnF,WAAW,MAAE,CACV,CACI,CACV,EACDmF,aAAA,CAACtG,MAAM;IAACwG,MAAM,EAAG;EAAG,CAAE,CAAC,EACvBF,aAAA,CAACpG,IAAI;IAACwG,SAAS,EAAC;EAAuC,GACpD9G,OAAO,EACR;EACAD,EAAE,CACD,6FACD,CAAC,EACD+B,gBACD,CACK,CAAC,EACL,CAAEF,WAAW,IAAIF,MAAM,IACxBgF,aAAA,CAAC/F,QAAQ,QACR+F,aAAA,CAACtG,MAAM;IAACwG,MAAM,EAAG;EAAG,CAAE,CAAC,EACvBF,aAAA,CAAChG,MAAM;IACN4G,aAAa,EAAG,KAAO;IACvBC,MAAM,EAAG7F,MAAM,CAAC6E,IAAM;IACtBO,SAAS,EAAC;EAAyC,GAEjDpF,MAAM,CAAC8E,OACF,CACC,CAEJ,CACP,CAAC;AAEL;AAEA,eAAehF,UAAU"}
@@ -1,42 +1,69 @@
1
- /**
2
- * WordPress dependencies
3
- *
4
- */
5
1
  /**
6
2
  * WordPress dependencies
7
3
  */
8
4
  import apiFetch from '@wordpress/api-fetch';
9
- export async function fetchInstallFont(data) {
5
+ const FONT_FAMILIES_URL = '/wp/v2/font-families';
6
+ const FONT_COLLECTIONS_URL = '/wp/v2/font-collections';
7
+ export async function fetchInstallFontFamily(data) {
8
+ const config = {
9
+ path: FONT_FAMILIES_URL,
10
+ method: 'POST',
11
+ body: data
12
+ };
13
+ const response = await apiFetch(config);
14
+ return {
15
+ id: response.id,
16
+ ...response.font_family_settings,
17
+ fontFace: []
18
+ };
19
+ }
20
+ export async function fetchInstallFontFace(fontFamilyId, data) {
10
21
  const config = {
11
- path: '/wp/v2/font-families',
22
+ path: `${FONT_FAMILIES_URL}/${fontFamilyId}/font-faces`,
12
23
  method: 'POST',
13
24
  body: data
14
25
  };
15
- return apiFetch(config);
26
+ const response = await apiFetch(config);
27
+ return {
28
+ id: response.id,
29
+ ...response.font_face_settings
30
+ };
16
31
  }
17
- export async function fetchUninstallFonts(fonts) {
18
- const data = {
19
- font_families: fonts
32
+ export async function fetchGetFontFamilyBySlug(slug) {
33
+ const config = {
34
+ path: `${FONT_FAMILIES_URL}?slug=${slug}&_embed=true`,
35
+ method: 'GET'
36
+ };
37
+ const response = await apiFetch(config);
38
+ if (!response || response.length === 0) {
39
+ return null;
40
+ }
41
+ const fontFamilyPost = response[0];
42
+ return {
43
+ id: fontFamilyPost.id,
44
+ ...fontFamilyPost.font_family_settings,
45
+ fontFace: fontFamilyPost?._embedded?.font_faces.map(face => face.font_face_settings) || []
20
46
  };
47
+ }
48
+ export async function fetchUninstallFontFamily(fontFamilyId) {
21
49
  const config = {
22
- path: '/wp/v2/font-families',
23
- method: 'DELETE',
24
- data
50
+ path: `${FONT_FAMILIES_URL}/${fontFamilyId}?force=true`,
51
+ method: 'DELETE'
25
52
  };
26
- return apiFetch(config);
53
+ return await apiFetch(config);
27
54
  }
28
55
  export async function fetchFontCollections() {
29
56
  const config = {
30
- path: '/wp/v2/font-collections',
57
+ path: FONT_COLLECTIONS_URL,
31
58
  method: 'GET'
32
59
  };
33
- return apiFetch(config);
60
+ return await apiFetch(config);
34
61
  }
35
62
  export async function fetchFontCollection(id) {
36
63
  const config = {
37
- path: `/wp/v2/font-collections/${id}`,
64
+ path: `${FONT_COLLECTIONS_URL}/${id}`,
38
65
  method: 'GET'
39
66
  };
40
- return apiFetch(config);
67
+ return await apiFetch(config);
41
68
  }
42
69
  //# sourceMappingURL=resolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["apiFetch","fetchInstallFont","data","config","path","method","body","fetchUninstallFonts","fonts","font_families","fetchFontCollections","fetchFontCollection","id"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/resolvers.js"],"sourcesContent":["/**\n * WordPress dependencies\n *\n */\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\n\nexport async function fetchInstallFont( data ) {\n\tconst config = {\n\t\tpath: '/wp/v2/font-families',\n\t\tmethod: 'POST',\n\t\tbody: data,\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchUninstallFonts( fonts ) {\n\tconst data = {\n\t\tfont_families: fonts,\n\t};\n\tconst config = {\n\t\tpath: '/wp/v2/font-families',\n\t\tmethod: 'DELETE',\n\t\tdata,\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchFontCollections() {\n\tconst config = {\n\t\tpath: '/wp/v2/font-collections',\n\t\tmethod: 'GET',\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchFontCollection( id ) {\n\tconst config = {\n\t\tpath: `/wp/v2/font-collections/${ id }`,\n\t\tmethod: 'GET',\n\t};\n\treturn apiFetch( config );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,QAAQ,MAAM,sBAAsB;AAE3C,OAAO,eAAeC,gBAAgBA,CAAEC,IAAI,EAAG;EAC9C,MAAMC,MAAM,GAAG;IACdC,IAAI,EAAE,sBAAsB;IAC5BC,MAAM,EAAE,MAAM;IACdC,IAAI,EAAEJ;EACP,CAAC;EACD,OAAOF,QAAQ,CAAEG,MAAO,CAAC;AAC1B;AAEA,OAAO,eAAeI,mBAAmBA,CAAEC,KAAK,EAAG;EAClD,MAAMN,IAAI,GAAG;IACZO,aAAa,EAAED;EAChB,CAAC;EACD,MAAML,MAAM,GAAG;IACdC,IAAI,EAAE,sBAAsB;IAC5BC,MAAM,EAAE,QAAQ;IAChBH;EACD,CAAC;EACD,OAAOF,QAAQ,CAAEG,MAAO,CAAC;AAC1B;AAEA,OAAO,eAAeO,oBAAoBA,CAAA,EAAG;EAC5C,MAAMP,MAAM,GAAG;IACdC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACT,CAAC;EACD,OAAOL,QAAQ,CAAEG,MAAO,CAAC;AAC1B;AAEA,OAAO,eAAeQ,mBAAmBA,CAAEC,EAAE,EAAG;EAC/C,MAAMT,MAAM,GAAG;IACdC,IAAI,EAAG,2BAA2BQ,EAAI,EAAC;IACvCP,MAAM,EAAE;EACT,CAAC;EACD,OAAOL,QAAQ,CAAEG,MAAO,CAAC;AAC1B"}
1
+ {"version":3,"names":["apiFetch","FONT_FAMILIES_URL","FONT_COLLECTIONS_URL","fetchInstallFontFamily","data","config","path","method","body","response","id","font_family_settings","fontFace","fetchInstallFontFace","fontFamilyId","font_face_settings","fetchGetFontFamilyBySlug","slug","length","fontFamilyPost","_embedded","font_faces","map","face","fetchUninstallFontFamily","fetchFontCollections","fetchFontCollection"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/resolvers.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\n\nconst FONT_FAMILIES_URL = '/wp/v2/font-families';\nconst FONT_COLLECTIONS_URL = '/wp/v2/font-collections';\n\nexport async function fetchInstallFontFamily( data ) {\n\tconst config = {\n\t\tpath: FONT_FAMILIES_URL,\n\t\tmethod: 'POST',\n\t\tbody: data,\n\t};\n\tconst response = await apiFetch( config );\n\treturn {\n\t\tid: response.id,\n\t\t...response.font_family_settings,\n\t\tfontFace: [],\n\t};\n}\n\nexport async function fetchInstallFontFace( fontFamilyId, data ) {\n\tconst config = {\n\t\tpath: `${ FONT_FAMILIES_URL }/${ fontFamilyId }/font-faces`,\n\t\tmethod: 'POST',\n\t\tbody: data,\n\t};\n\tconst response = await apiFetch( config );\n\treturn {\n\t\tid: response.id,\n\t\t...response.font_face_settings,\n\t};\n}\n\nexport async function fetchGetFontFamilyBySlug( slug ) {\n\tconst config = {\n\t\tpath: `${ FONT_FAMILIES_URL }?slug=${ slug }&_embed=true`,\n\t\tmethod: 'GET',\n\t};\n\tconst response = await apiFetch( config );\n\tif ( ! response || response.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst fontFamilyPost = response[ 0 ];\n\treturn {\n\t\tid: fontFamilyPost.id,\n\t\t...fontFamilyPost.font_family_settings,\n\t\tfontFace:\n\t\t\tfontFamilyPost?._embedded?.font_faces.map(\n\t\t\t\t( face ) => face.font_face_settings\n\t\t\t) || [],\n\t};\n}\n\nexport async function fetchUninstallFontFamily( fontFamilyId ) {\n\tconst config = {\n\t\tpath: `${ FONT_FAMILIES_URL }/${ fontFamilyId }?force=true`,\n\t\tmethod: 'DELETE',\n\t};\n\treturn await apiFetch( config );\n}\n\nexport async function fetchFontCollections() {\n\tconst config = {\n\t\tpath: FONT_COLLECTIONS_URL,\n\t\tmethod: 'GET',\n\t};\n\treturn await apiFetch( config );\n}\n\nexport async function fetchFontCollection( id ) {\n\tconst config = {\n\t\tpath: `${ FONT_COLLECTIONS_URL }/${ id }`,\n\t\tmethod: 'GET',\n\t};\n\treturn await apiFetch( config );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,QAAQ,MAAM,sBAAsB;AAE3C,MAAMC,iBAAiB,GAAG,sBAAsB;AAChD,MAAMC,oBAAoB,GAAG,yBAAyB;AAEtD,OAAO,eAAeC,sBAAsBA,CAAEC,IAAI,EAAG;EACpD,MAAMC,MAAM,GAAG;IACdC,IAAI,EAAEL,iBAAiB;IACvBM,MAAM,EAAE,MAAM;IACdC,IAAI,EAAEJ;EACP,CAAC;EACD,MAAMK,QAAQ,GAAG,MAAMT,QAAQ,CAAEK,MAAO,CAAC;EACzC,OAAO;IACNK,EAAE,EAAED,QAAQ,CAACC,EAAE;IACf,GAAGD,QAAQ,CAACE,oBAAoB;IAChCC,QAAQ,EAAE;EACX,CAAC;AACF;AAEA,OAAO,eAAeC,oBAAoBA,CAAEC,YAAY,EAAEV,IAAI,EAAG;EAChE,MAAMC,MAAM,GAAG;IACdC,IAAI,EAAG,GAAGL,iBAAmB,IAAIa,YAAc,aAAY;IAC3DP,MAAM,EAAE,MAAM;IACdC,IAAI,EAAEJ;EACP,CAAC;EACD,MAAMK,QAAQ,GAAG,MAAMT,QAAQ,CAAEK,MAAO,CAAC;EACzC,OAAO;IACNK,EAAE,EAAED,QAAQ,CAACC,EAAE;IACf,GAAGD,QAAQ,CAACM;EACb,CAAC;AACF;AAEA,OAAO,eAAeC,wBAAwBA,CAAEC,IAAI,EAAG;EACtD,MAAMZ,MAAM,GAAG;IACdC,IAAI,EAAG,GAAGL,iBAAmB,SAASgB,IAAM,cAAa;IACzDV,MAAM,EAAE;EACT,CAAC;EACD,MAAME,QAAQ,GAAG,MAAMT,QAAQ,CAAEK,MAAO,CAAC;EACzC,IAAK,CAAEI,QAAQ,IAAIA,QAAQ,CAACS,MAAM,KAAK,CAAC,EAAG;IAC1C,OAAO,IAAI;EACZ;EACA,MAAMC,cAAc,GAAGV,QAAQ,CAAE,CAAC,CAAE;EACpC,OAAO;IACNC,EAAE,EAAES,cAAc,CAACT,EAAE;IACrB,GAAGS,cAAc,CAACR,oBAAoB;IACtCC,QAAQ,EACPO,cAAc,EAAEC,SAAS,EAAEC,UAAU,CAACC,GAAG,CACtCC,IAAI,IAAMA,IAAI,CAACR,kBAClB,CAAC,IAAI;EACP,CAAC;AACF;AAEA,OAAO,eAAeS,wBAAwBA,CAAEV,YAAY,EAAG;EAC9D,MAAMT,MAAM,GAAG;IACdC,IAAI,EAAG,GAAGL,iBAAmB,IAAIa,YAAc,aAAY;IAC3DP,MAAM,EAAE;EACT,CAAC;EACD,OAAO,MAAMP,QAAQ,CAAEK,MAAO,CAAC;AAChC;AAEA,OAAO,eAAeoB,oBAAoBA,CAAA,EAAG;EAC5C,MAAMpB,MAAM,GAAG;IACdC,IAAI,EAAEJ,oBAAoB;IAC1BK,MAAM,EAAE;EACT,CAAC;EACD,OAAO,MAAMP,QAAQ,CAAEK,MAAO,CAAC;AAChC;AAEA,OAAO,eAAeqB,mBAAmBA,CAAEhB,EAAE,EAAG;EAC/C,MAAML,MAAM,GAAG;IACdC,IAAI,EAAG,GAAGJ,oBAAsB,IAAIQ,EAAI,EAAC;IACzCH,MAAM,EAAE;EACT,CAAC;EACD,OAAO,MAAMP,QAAQ,CAAEK,MAAO,CAAC;AAChC"}