@wordpress/edit-site 6.3.0 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-pattern/index.js +14 -3
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/add-new-post/index.js +2 -1
  5. package/build/components/add-new-post/index.js.map +1 -1
  6. package/build/components/add-new-template/index.js +3 -1
  7. package/build/components/add-new-template/index.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +2 -2
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/block-editor/use-site-editor-settings.js +1 -82
  11. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  12. package/build/components/editor/index.js +71 -20
  13. package/build/components/editor/index.js.map +1 -1
  14. package/build/components/global-styles/block-preview-panel.js +14 -5
  15. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  16. package/build/components/global-styles/font-families.js +40 -22
  17. package/build/components/global-styles/font-families.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/context.js +0 -5
  19. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/font-collection.js +25 -5
  21. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/index.js +5 -12
  23. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/installed-fonts.js +78 -15
  25. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/upload-fonts.js +2 -3
  27. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  28. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +39 -0
  29. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  30. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +39 -0
  31. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  32. package/build/components/global-styles/font-sizes/font-size-preview.js +44 -0
  33. package/build/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  34. package/build/components/global-styles/font-sizes/font-size.js +213 -0
  35. package/build/components/global-styles/font-sizes/font-size.js.map +1 -0
  36. package/build/components/global-styles/font-sizes/font-sizes-count.js +50 -0
  37. package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  38. package/build/components/global-styles/font-sizes/font-sizes.js +163 -0
  39. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  40. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js +67 -0
  41. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  42. package/build/components/global-styles/screen-block.js +10 -8
  43. package/build/components/global-styles/screen-block.js.map +1 -1
  44. package/build/components/global-styles/screen-style-variations.js +2 -2
  45. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  46. package/build/components/global-styles/screen-typeset.js +40 -0
  47. package/build/components/global-styles/screen-typeset.js.map +1 -0
  48. package/build/components/global-styles/screen-typography-element.js +14 -0
  49. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  50. package/build/components/global-styles/screen-typography.js +5 -6
  51. package/build/components/global-styles/screen-typography.js.map +1 -1
  52. package/build/components/global-styles/shadows-edit-panel.js +50 -59
  53. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  54. package/build/components/global-styles/size-control/index.js +85 -0
  55. package/build/components/global-styles/size-control/index.js.map +1 -0
  56. package/build/components/global-styles/style-variations-container.js +3 -0
  57. package/build/components/global-styles/style-variations-container.js.map +1 -1
  58. package/build/components/global-styles/typeset-button.js +97 -0
  59. package/build/components/global-styles/typeset-button.js.map +1 -0
  60. package/build/components/global-styles/typeset.js +80 -0
  61. package/build/components/global-styles/typeset.js.map +1 -0
  62. package/build/components/global-styles/ui.js +12 -0
  63. package/build/components/global-styles/ui.js.map +1 -1
  64. package/build/components/global-styles/utils.js +10 -1
  65. package/build/components/global-styles/utils.js.map +1 -1
  66. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  67. package/build/components/global-styles/variations/variations-typography.js +1 -1
  68. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  69. package/build/components/layout/index.js +6 -0
  70. package/build/components/layout/index.js.map +1 -1
  71. package/build/components/layout/router.js +14 -6
  72. package/build/components/layout/router.js.map +1 -1
  73. package/build/components/page-patterns/fields.js +230 -0
  74. package/build/components/page-patterns/fields.js.map +1 -0
  75. package/build/components/page-patterns/header.js +1 -1
  76. package/build/components/page-patterns/header.js.map +1 -1
  77. package/build/components/page-patterns/index.js +21 -227
  78. package/build/components/page-patterns/index.js.map +1 -1
  79. package/build/components/page-patterns/use-patterns.js +26 -1
  80. package/build/components/page-patterns/use-patterns.js.map +1 -1
  81. package/build/components/page-templates/fields.js +169 -0
  82. package/build/components/page-templates/fields.js.map +1 -0
  83. package/build/components/page-templates/index.js +38 -198
  84. package/build/components/page-templates/index.js.map +1 -1
  85. package/build/components/post-edit/index.js +117 -0
  86. package/build/components/post-edit/index.js.map +1 -0
  87. package/build/components/post-fields/index.js +318 -0
  88. package/build/components/post-fields/index.js.map +1 -0
  89. package/build/components/post-list/index.js +339 -0
  90. package/build/components/post-list/index.js.map +1 -0
  91. package/build/components/posts-app/router.js +3 -3
  92. package/build/components/posts-app/router.js.map +1 -1
  93. package/build/components/sidebar-dataviews/add-new-view.js +2 -2
  94. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  95. package/build/components/sidebar-dataviews/dataview-item.js +2 -3
  96. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  97. package/build/components/sidebar-dataviews/default-views.js +103 -91
  98. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  99. package/build/components/sidebar-dataviews/index.js +2 -2
  100. package/build/components/sidebar-dataviews/index.js.map +1 -1
  101. package/build/components/sidebar-navigation-screen-global-styles/content.js +64 -0
  102. package/build/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  103. package/build/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  104. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  105. package/build/components/site-hub/index.js +6 -3
  106. package/build/components/site-hub/index.js.map +1 -1
  107. package/build/components/style-book/index.js +22 -25
  108. package/build/components/style-book/index.js.map +1 -1
  109. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
  110. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  111. package/build/hooks/push-changes-to-global-styles/index.js +3 -4
  112. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  113. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -4
  114. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  115. package/build/index.js +4 -2
  116. package/build/index.js.map +1 -1
  117. package/build/store/selectors.js +34 -6
  118. package/build/store/selectors.js.map +1 -1
  119. package/build/utils/get-filtered-template-parts.js +64 -0
  120. package/build/utils/get-filtered-template-parts.js.map +1 -0
  121. package/build-module/components/add-new-pattern/index.js +14 -3
  122. package/build-module/components/add-new-pattern/index.js.map +1 -1
  123. package/build-module/components/add-new-post/index.js +2 -1
  124. package/build-module/components/add-new-post/index.js.map +1 -1
  125. package/build-module/components/add-new-template/index.js +3 -1
  126. package/build-module/components/add-new-template/index.js.map +1 -1
  127. package/build-module/components/add-new-template/utils.js +2 -2
  128. package/build-module/components/add-new-template/utils.js.map +1 -1
  129. package/build-module/components/block-editor/use-site-editor-settings.js +1 -82
  130. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  131. package/build-module/components/editor/index.js +73 -22
  132. package/build-module/components/editor/index.js.map +1 -1
  133. package/build-module/components/global-styles/block-preview-panel.js +14 -5
  134. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  135. package/build-module/components/global-styles/font-families.js +42 -24
  136. package/build-module/components/global-styles/font-families.js.map +1 -1
  137. package/build-module/components/global-styles/font-library-modal/context.js +0 -5
  138. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  139. package/build-module/components/global-styles/font-library-modal/font-collection.js +26 -6
  140. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  141. package/build-module/components/global-styles/font-library-modal/index.js +5 -12
  142. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  143. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +81 -18
  144. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  145. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +2 -3
  146. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  147. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +32 -0
  148. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  149. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +32 -0
  150. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  151. package/build-module/components/global-styles/font-sizes/font-size-preview.js +37 -0
  152. package/build-module/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  153. package/build-module/components/global-styles/font-sizes/font-size.js +207 -0
  154. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -0
  155. package/build-module/components/global-styles/font-sizes/font-sizes-count.js +43 -0
  156. package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  157. package/build-module/components/global-styles/font-sizes/font-sizes.js +157 -0
  158. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  159. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +61 -0
  160. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  161. package/build-module/components/global-styles/screen-block.js +10 -8
  162. package/build-module/components/global-styles/screen-block.js.map +1 -1
  163. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  164. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  165. package/build-module/components/global-styles/screen-typeset.js +34 -0
  166. package/build-module/components/global-styles/screen-typeset.js.map +1 -0
  167. package/build-module/components/global-styles/screen-typography-element.js +14 -0
  168. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  169. package/build-module/components/global-styles/screen-typography.js +5 -6
  170. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  171. package/build-module/components/global-styles/shadows-edit-panel.js +51 -60
  172. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  173. package/build-module/components/global-styles/size-control/index.js +79 -0
  174. package/build-module/components/global-styles/size-control/index.js.map +1 -0
  175. package/build-module/components/global-styles/style-variations-container.js +3 -0
  176. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  177. package/build-module/components/global-styles/typeset-button.js +89 -0
  178. package/build-module/components/global-styles/typeset-button.js.map +1 -0
  179. package/build-module/components/global-styles/typeset.js +71 -0
  180. package/build-module/components/global-styles/typeset.js.map +1 -0
  181. package/build-module/components/global-styles/ui.js +12 -0
  182. package/build-module/components/global-styles/ui.js.map +1 -1
  183. package/build-module/components/global-styles/utils.js +10 -1
  184. package/build-module/components/global-styles/utils.js.map +1 -1
  185. package/build-module/components/global-styles/variations/variations-color.js +1 -1
  186. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  187. package/build-module/components/global-styles/variations/variations-typography.js +1 -2
  188. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  189. package/build-module/components/layout/index.js +6 -0
  190. package/build-module/components/layout/index.js.map +1 -1
  191. package/build-module/components/layout/router.js +14 -6
  192. package/build-module/components/layout/router.js.map +1 -1
  193. package/build-module/components/page-patterns/fields.js +223 -0
  194. package/build-module/components/page-patterns/fields.js.map +1 -0
  195. package/build-module/components/page-patterns/header.js +1 -1
  196. package/build-module/components/page-patterns/header.js.map +1 -1
  197. package/build-module/components/page-patterns/index.js +24 -230
  198. package/build-module/components/page-patterns/index.js.map +1 -1
  199. package/build-module/components/page-patterns/use-patterns.js +26 -1
  200. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  201. package/build-module/components/page-templates/fields.js +160 -0
  202. package/build-module/components/page-templates/fields.js.map +1 -0
  203. package/build-module/components/page-templates/index.js +39 -199
  204. package/build-module/components/page-templates/index.js.map +1 -1
  205. package/build-module/components/post-edit/index.js +110 -0
  206. package/build-module/components/post-edit/index.js.map +1 -0
  207. package/build-module/components/post-fields/index.js +310 -0
  208. package/build-module/components/post-fields/index.js.map +1 -0
  209. package/build-module/components/post-list/index.js +333 -0
  210. package/build-module/components/post-list/index.js.map +1 -0
  211. package/build-module/components/posts-app/router.js +3 -3
  212. package/build-module/components/posts-app/router.js.map +1 -1
  213. package/build-module/components/sidebar-dataviews/add-new-view.js +2 -2
  214. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  215. package/build-module/components/sidebar-dataviews/dataview-item.js +2 -3
  216. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  217. package/build-module/components/sidebar-dataviews/default-views.js +102 -90
  218. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  219. package/build-module/components/sidebar-dataviews/index.js +5 -5
  220. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  221. package/build-module/components/sidebar-navigation-screen-global-styles/content.js +57 -0
  222. package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  223. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  224. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  225. package/build-module/components/site-hub/index.js +7 -4
  226. package/build-module/components/site-hub/index.js.map +1 -1
  227. package/build-module/components/style-book/index.js +23 -26
  228. package/build-module/components/style-book/index.js.map +1 -1
  229. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
  230. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  231. package/build-module/hooks/push-changes-to-global-styles/index.js +3 -4
  232. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  233. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
  234. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  235. package/build-module/index.js +4 -2
  236. package/build-module/index.js.map +1 -1
  237. package/build-module/store/selectors.js +35 -7
  238. package/build-module/store/selectors.js.map +1 -1
  239. package/build-module/utils/get-filtered-template-parts.js +57 -0
  240. package/build-module/utils/get-filtered-template-parts.js.map +1 -0
  241. package/build-style/posts-rtl.css +749 -492
  242. package/build-style/posts.css +749 -492
  243. package/build-style/style-rtl.css +956 -613
  244. package/build-style/style.css +956 -613
  245. package/package.json +41 -41
  246. package/src/components/add-new-pattern/index.js +16 -5
  247. package/src/components/add-new-post/index.js +2 -1
  248. package/src/components/add-new-template/index.js +4 -1
  249. package/src/components/add-new-template/style.scss +4 -6
  250. package/src/components/add-new-template/utils.js +10 -6
  251. package/src/components/block-editor/use-site-editor-settings.js +15 -111
  252. package/src/components/editor/index.js +80 -22
  253. package/src/components/editor/style.scss +59 -1
  254. package/src/components/global-styles/block-preview-panel.js +22 -9
  255. package/src/components/global-styles/font-families.js +65 -32
  256. package/src/components/global-styles/font-library-modal/context.js +0 -5
  257. package/src/components/global-styles/font-library-modal/font-collection.js +34 -10
  258. package/src/components/global-styles/font-library-modal/index.js +6 -9
  259. package/src/components/global-styles/font-library-modal/installed-fonts.js +115 -16
  260. package/src/components/global-styles/font-library-modal/style.scss +9 -0
  261. package/src/components/global-styles/font-library-modal/upload-fonts.js +2 -2
  262. package/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +43 -0
  263. package/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +37 -0
  264. package/src/components/global-styles/font-sizes/font-size-preview.js +43 -0
  265. package/src/components/global-styles/font-sizes/font-size.js +250 -0
  266. package/src/components/global-styles/font-sizes/font-sizes-count.js +40 -0
  267. package/src/components/global-styles/font-sizes/font-sizes.js +263 -0
  268. package/src/components/global-styles/font-sizes/rename-font-size-dialog.js +70 -0
  269. package/src/components/global-styles/screen-block.js +12 -14
  270. package/src/components/global-styles/screen-style-variations.js +2 -2
  271. package/src/components/global-styles/screen-typeset.js +42 -0
  272. package/src/components/global-styles/screen-typography-element.js +14 -0
  273. package/src/components/global-styles/screen-typography.js +7 -6
  274. package/src/components/global-styles/shadows-edit-panel.js +66 -73
  275. package/src/components/global-styles/size-control/index.js +86 -0
  276. package/src/components/global-styles/style-variations-container.js +4 -0
  277. package/src/components/global-styles/style.scss +17 -10
  278. package/src/components/global-styles/typeset-button.js +93 -0
  279. package/src/components/global-styles/typeset.js +73 -0
  280. package/src/components/global-styles/ui.js +15 -0
  281. package/src/components/global-styles/utils.js +13 -1
  282. package/src/components/global-styles/variations/variations-color.js +1 -1
  283. package/src/components/global-styles/variations/variations-typography.js +1 -2
  284. package/src/components/layout/index.js +11 -0
  285. package/src/components/layout/router.js +13 -5
  286. package/src/components/layout/style.scss +34 -8
  287. package/src/components/page-patterns/fields.js +251 -0
  288. package/src/components/page-patterns/header.js +1 -1
  289. package/src/components/page-patterns/index.js +24 -246
  290. package/src/components/page-patterns/style.scss +82 -85
  291. package/src/components/page-patterns/use-patterns.js +31 -1
  292. package/src/components/page-templates/fields.js +157 -0
  293. package/src/components/page-templates/index.js +46 -192
  294. package/src/components/page-templates/style.scss +19 -8
  295. package/src/components/post-edit/index.js +115 -0
  296. package/src/components/post-edit/style.scss +9 -0
  297. package/src/components/post-fields/index.js +357 -0
  298. package/src/components/post-list/index.js +386 -0
  299. package/src/components/{posts-app → post-list}/style.scss +12 -9
  300. package/src/components/posts-app/router.js +3 -3
  301. package/src/components/sidebar-dataviews/add-new-view.js +2 -4
  302. package/src/components/sidebar-dataviews/dataview-item.js +2 -2
  303. package/src/components/sidebar-dataviews/default-views.js +116 -104
  304. package/src/components/sidebar-dataviews/index.js +4 -3
  305. package/src/components/sidebar-navigation-screen-global-styles/content.js +55 -0
  306. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -55
  307. package/src/components/site-hub/index.js +11 -2
  308. package/src/components/site-icon/style.scss +4 -1
  309. package/src/components/style-book/index.js +27 -32
  310. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
  311. package/src/hooks/push-changes-to-global-styles/index.js +3 -4
  312. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
  313. package/src/index.js +6 -2
  314. package/src/posts.scss +1 -1
  315. package/src/store/selectors.js +53 -14
  316. package/src/store/test/selectors.js +1 -26
  317. package/src/style.scss +2 -1
  318. package/src/utils/get-filtered-template-parts.js +61 -0
  319. package/src/utils/test/get-filtered-template-parts.js +127 -0
  320. package/build/components/global-styles/screen-background.js +0 -36
  321. package/build/components/global-styles/screen-background.js.map +0 -1
  322. package/build/components/posts-app/posts-list.js +0 -568
  323. package/build/components/posts-app/posts-list.js.map +0 -1
  324. package/build/utils/clone-deep.js +0 -15
  325. package/build/utils/clone-deep.js.map +0 -1
  326. package/build-module/components/global-styles/screen-background.js +0 -30
  327. package/build-module/components/global-styles/screen-background.js.map +0 -1
  328. package/build-module/components/posts-app/posts-list.js +0 -560
  329. package/build-module/components/posts-app/posts-list.js.map +0 -1
  330. package/build-module/utils/clone-deep.js +0 -9
  331. package/build-module/utils/clone-deep.js.map +0 -1
  332. package/src/components/global-styles/screen-background.js +0 -29
  333. package/src/components/posts-app/posts-list.js +0 -651
  334. package/src/utils/clone-deep.js +0 -8
@@ -31,6 +31,7 @@ const {
31
31
  useGlobalSetting
32
32
  } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
33
33
  function InstalledFonts() {
34
+ var _libraryFontSelected$;
34
35
  const {
35
36
  baseCustomFonts,
36
37
  libraryFontSelected,
@@ -40,12 +41,11 @@ function InstalledFonts() {
40
41
  isResolvingLibrary,
41
42
  isInstalling,
42
43
  saveFontFamilies,
43
- getFontFacesActivated,
44
- notice,
45
- setNotice,
46
- fontFamilies
44
+ getFontFacesActivated
47
45
  } = (0, _element.useContext)(_context.FontLibraryContext);
46
+ const [fontFamilies, setFontFamilies] = useGlobalSetting('typography.fontFamilies');
48
47
  const [isConfirmDeleteOpen, setIsConfirmDeleteOpen] = (0, _element.useState)(false);
48
+ const [notice, setNotice] = (0, _element.useState)(false);
49
49
  const [baseFontFamilies] = useGlobalSetting('typography.fontFamilies', undefined, 'base');
50
50
  const globalStylesId = (0, _data.useSelect)(select => {
51
51
  const {
@@ -67,12 +67,31 @@ function InstalledFonts() {
67
67
  const {
68
68
  canUser
69
69
  } = select(_coreData.store);
70
- return customFontFamilyId && canUser('delete', 'font-families', customFontFamilyId);
70
+ return customFontFamilyId && canUser('delete', {
71
+ kind: 'postType',
72
+ name: 'wp_font_family',
73
+ id: customFontFamilyId
74
+ });
71
75
  }, [customFontFamilyId]);
72
76
  const shouldDisplayDeleteButton = !!libraryFontSelected && libraryFontSelected?.source !== 'theme' && canUserDelete;
73
77
  const handleUninstallClick = () => {
74
78
  setIsConfirmDeleteOpen(true);
75
79
  };
80
+ const handleUpdate = async () => {
81
+ setNotice(null);
82
+ try {
83
+ await saveFontFamilies(fontFamilies);
84
+ setNotice({
85
+ type: 'success',
86
+ message: (0, _i18n.__)('Font family updated successfully.')
87
+ });
88
+ } catch (error) {
89
+ setNotice({
90
+ type: 'error',
91
+ message: (0, _i18n.__)('There was an error updating the font family. ') + error.message
92
+ });
93
+ }
94
+ };
76
95
  const getFontFacesToDisplay = font => {
77
96
  if (!font) {
78
97
  return [];
@@ -96,6 +115,37 @@ function InstalledFonts() {
96
115
  handleSetLibraryFontSelected(libraryFontSelected);
97
116
  refreshLibrary();
98
117
  }, []);
118
+
119
+ // Get activated fonts count.
120
+ const activeFontsCount = libraryFontSelected ? getFontFacesActivated(libraryFontSelected.slug, libraryFontSelected.source).length : 0;
121
+ const selectedFontsCount = (_libraryFontSelected$ = libraryFontSelected?.fontFace?.length) !== null && _libraryFontSelected$ !== void 0 ? _libraryFontSelected$ : libraryFontSelected?.fontFamily ? 1 : 0;
122
+
123
+ // Check if any fonts are selected.
124
+ const isIndeterminate = activeFontsCount > 0 && activeFontsCount !== selectedFontsCount;
125
+
126
+ // Check if all fonts are selected.
127
+ const isSelectAllChecked = activeFontsCount === selectedFontsCount;
128
+
129
+ // Toggle select all fonts.
130
+ const toggleSelectAll = () => {
131
+ var _fontFamilies$library;
132
+ const initialFonts = (_fontFamilies$library = fontFamilies?.[libraryFontSelected.source]?.filter(f => f.slug !== libraryFontSelected.slug)) !== null && _fontFamilies$library !== void 0 ? _fontFamilies$library : [];
133
+ const newFonts = isSelectAllChecked ? initialFonts : [...initialFonts, libraryFontSelected];
134
+ setFontFamilies({
135
+ ...fontFamilies,
136
+ [libraryFontSelected.source]: newFonts
137
+ });
138
+ if (libraryFontSelected.fontFace) {
139
+ libraryFontSelected.fontFace.forEach(face => {
140
+ if (isSelectAllChecked) {
141
+ (0, _utils.unloadFontFaceInBrowser)(face, 'all');
142
+ } else {
143
+ (0, _utils.loadFontFaceInBrowser)(face, (0, _utils.getDisplaySrcFromFontFace)(face?.src), 'all');
144
+ }
145
+ });
146
+ }
147
+ };
148
+ const hasFonts = baseThemeFonts.length > 0 || baseCustomFonts.length > 0;
99
149
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
100
150
  className: "font-library-modal__tabpanel-layout",
101
151
  children: [isResolvingLibrary && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -112,39 +162,46 @@ function InstalledFonts() {
112
162
  status: notice.type,
113
163
  onRemove: () => setNotice(null),
114
164
  children: notice.message
115
- }), baseCustomFonts.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
165
+ }), !hasFonts && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalText, {
166
+ as: "p",
167
+ children: (0, _i18n.__)('No fonts installed.')
168
+ }), baseThemeFonts.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
116
169
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("h2", {
117
170
  className: "font-library-modal__fonts-title",
118
- children: (0, _i18n.__)('Installed Fonts')
171
+ children: /* translators: Heading for a list of fonts provided by the theme. */
172
+ (0, _i18n._x)('Theme', 'font source')
119
173
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
120
174
  role: "list",
121
175
  className: "font-library-modal__fonts-list",
122
- children: baseCustomFonts.map(font => /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
176
+ children: baseThemeFonts.map(font => /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
123
177
  className: "font-library-modal__fonts-list-item",
124
178
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_fontCard.default, {
125
179
  font: font,
126
180
  navigatorPath: "/fontFamily",
127
181
  variantsText: getFontCardVariantsText(font),
128
182
  onClick: () => {
183
+ setNotice(null);
129
184
  handleSetLibraryFontSelected(font);
130
185
  }
131
186
  })
132
187
  }, font.slug))
133
188
  })]
134
- }), baseThemeFonts.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
189
+ }), baseCustomFonts.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
135
190
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("h2", {
136
191
  className: "font-library-modal__fonts-title",
137
- children: (0, _i18n.__)('Theme Fonts')
192
+ children: /* translators: Heading for a list of fonts installed by the user. */
193
+ (0, _i18n._x)('Custom', 'font source')
138
194
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
139
195
  role: "list",
140
196
  className: "font-library-modal__fonts-list",
141
- children: baseThemeFonts.map(font => /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
197
+ children: baseCustomFonts.map(font => /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
142
198
  className: "font-library-modal__fonts-list-item",
143
199
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_fontCard.default, {
144
200
  font: font,
145
201
  navigatorPath: "/fontFamily",
146
202
  variantsText: getFontCardVariantsText(font),
147
203
  onClick: () => {
204
+ setNotice(null);
148
205
  handleSetLibraryFontSelected(font);
149
206
  }
150
207
  })
@@ -168,6 +225,7 @@ function InstalledFonts() {
168
225
  size: "small",
169
226
  onClick: () => {
170
227
  handleSetLibraryFontSelected(null);
228
+ setNotice(null);
171
229
  },
172
230
  label: (0, _i18n.__)('Back')
173
231
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHeading, {
@@ -194,7 +252,14 @@ function InstalledFonts() {
194
252
  margin: 4
195
253
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
196
254
  spacing: 0,
197
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {
255
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
256
+ className: "font-library-modal__select-all",
257
+ label: (0, _i18n.__)('Select all'),
258
+ checked: isSelectAllChecked,
259
+ onChange: toggleSelectAll,
260
+ indeterminate: isIndeterminate,
261
+ __nextHasNoMarginBottom: true
262
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {
198
263
  margin: 8
199
264
  }), getFontFacesToDisplay(libraryFontSelected).map((face, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_libraryFontVariant.default, {
200
265
  font: libraryFontSelected,
@@ -212,9 +277,7 @@ function InstalledFonts() {
212
277
  children: (0, _i18n.__)('Delete')
213
278
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
214
279
  variant: "primary",
215
- onClick: () => {
216
- saveFontFamilies(fontFamilies);
217
- },
280
+ onClick: handleUpdate,
218
281
  disabled: !fontFamiliesHasChanges,
219
282
  accessibleWhenDisabled: true,
220
283
  children: (0, _i18n.__)('Update')
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_icons","_blockEditor","_context","_fontCard","_interopRequireDefault","_libraryFontVariant","_sortFontFaces","_utils","_lockUnlock","_jsxRuntime","useGlobalSetting","unlock","blockEditorPrivateApis","InstalledFonts","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","notice","setNotice","fontFamilies","useContext","FontLibraryContext","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","baseFontFamilies","undefined","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","coreStore","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFontFamilyId","id","canUserDelete","canUser","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","sortFontFaces","getFontCardVariantsText","variantsInstalled","variantsActive","sprintf","__","useEffect","jsxs","className","children","jsx","ProgressBar","Fragment","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalVStack","spacing","Notice","status","type","onRemove","message","role","default","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","Flex","justify","__experimentalNavigatorToParentButton","icon","chevronLeft","size","label","__experimentalHeading","level","__experimentalSpacer","margin","__experimentalText","face","i","__experimentalHStack","Button","isDestructive","variant","disabled","accessibleWhenDisabled","navigator","useNavigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","__experimentalConfirmDialog","cancelButtonText","confirmButtonText","onCancel","onConfirm","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport { setUIValuesNeeded } from './utils';\nimport { unlock } from '../../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tnotice,\n\t\tsetNotice,\n\t\tfontFamilies,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst globalStylesId = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn __experimentalGetCurrentGlobalStylesId();\n\t} );\n\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst themeFontsSlugs = new Set( themeFonts.map( ( f ) => f.slug ) );\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? themeFonts.concat(\n\t\t\t\tbaseFontFamilies.theme\n\t\t\t\t\t.filter( ( f ) => ! themeFontsSlugs.has( f.slug ) )\n\t\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t )\n\t\t: [];\n\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', 'font-families', customFontFamilyId )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isResolvingLibrary && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath={\n\t\t\t\t\t\t\tlibraryFontSelected ? '/fontFamily' : '/'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<VStack spacing=\"8\">\n\t\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getFontFacesToDisplay(\n\t\t\t\t\t\t\t\t\tlibraryFontSelected\n\t\t\t\t\t\t\t\t).map( ( face, i ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsaveFontFamilies( fontFamilies );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled 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:\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 handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_icons","_blockEditor","_context","_fontCard","_interopRequireDefault","_libraryFontVariant","_sortFontFaces","_utils","_lockUnlock","_jsxRuntime","useGlobalSetting","unlock","blockEditorPrivateApis","InstalledFonts","_libraryFontSelected$","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","useContext","FontLibraryContext","fontFamilies","setFontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","notice","setNotice","baseFontFamilies","undefined","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","coreStore","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFontFamilyId","id","canUserDelete","canUser","kind","shouldDisplayDeleteButton","handleUninstallClick","handleUpdate","type","message","__","error","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","sortFontFaces","getFontCardVariantsText","variantsInstalled","variantsActive","sprintf","useEffect","activeFontsCount","selectedFontsCount","isIndeterminate","isSelectAllChecked","toggleSelectAll","_fontFamilies$library","initialFonts","newFonts","forEach","face","unloadFontFaceInBrowser","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","hasFonts","jsxs","className","children","jsx","ProgressBar","Fragment","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalVStack","spacing","Notice","status","onRemove","__experimentalText","as","_x","role","default","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","Flex","justify","__experimentalNavigatorToParentButton","icon","chevronLeft","size","label","__experimentalHeading","level","__experimentalSpacer","margin","CheckboxControl","checked","onChange","indeterminate","__nextHasNoMarginBottom","i","__experimentalHStack","Button","isDestructive","variant","disabled","accessibleWhenDisabled","navigator","useNavigator","handleConfirmUninstall","goBack","handleCancelUninstall","__experimentalConfirmDialog","cancelButtonText","confirmButtonText","onCancel","onConfirm","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tProgressBar,\n\tCheckboxControl,\n} from '@wordpress/components';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport {\n\tsetUIValuesNeeded,\n\tloadFontFaceInBrowser,\n\tunloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n} from './utils';\nimport { unlock } from '../../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t} = useContext( FontLibraryContext );\n\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst [ notice, setNotice ] = useState( false );\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst globalStylesId = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn __experimentalGetCurrentGlobalStylesId();\n\t} );\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst themeFontsSlugs = new Set( themeFonts.map( ( f ) => f.slug ) );\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? themeFonts.concat(\n\t\t\t\tbaseFontFamilies.theme\n\t\t\t\t\t.filter( ( f ) => ! themeFontsSlugs.has( f.slug ) )\n\t\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t )\n\t\t: [];\n\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_font_family',\n\t\t\t\t\tid: customFontFamilyId,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst handleUpdate = async () => {\n\t\tsetNotice( null );\n\t\ttry {\n\t\t\tawait saveFontFamilies( fontFamilies );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family updated 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:\n\t\t\t\t\t__( 'There was an error updating the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\t// Get activated fonts count.\n\tconst activeFontsCount = libraryFontSelected\n\t\t? getFontFacesActivated(\n\t\t\t\tlibraryFontSelected.slug,\n\t\t\t\tlibraryFontSelected.source\n\t\t ).length\n\t\t: 0;\n\n\tconst selectedFontsCount =\n\t\tlibraryFontSelected?.fontFace?.length ??\n\t\t( libraryFontSelected?.fontFamily ? 1 : 0 );\n\n\t// Check if any fonts are selected.\n\tconst isIndeterminate =\n\t\tactiveFontsCount > 0 && activeFontsCount !== selectedFontsCount;\n\n\t// Check if all fonts are selected.\n\tconst isSelectAllChecked = activeFontsCount === selectedFontsCount;\n\n\t// Toggle select all fonts.\n\tconst toggleSelectAll = () => {\n\t\tconst initialFonts =\n\t\t\tfontFamilies?.[ libraryFontSelected.source ]?.filter(\n\t\t\t\t( f ) => f.slug !== libraryFontSelected.slug\n\t\t\t) ?? [];\n\t\tconst newFonts = isSelectAllChecked\n\t\t\t? initialFonts\n\t\t\t: [ ...initialFonts, libraryFontSelected ];\n\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ libraryFontSelected.source ]: newFonts,\n\t\t} );\n\n\t\tif ( libraryFontSelected.fontFace ) {\n\t\t\tlibraryFontSelected.fontFace.forEach( ( face ) => {\n\t\t\t\tif ( isSelectAllChecked ) {\n\t\t\t\t\tunloadFontFaceInBrowser( face, 'all' );\n\t\t\t\t} else {\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face?.src ),\n\t\t\t\t\t\t'all'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst hasFonts = baseThemeFonts.length > 0 || baseCustomFonts.length > 0;\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isResolvingLibrary && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath={\n\t\t\t\t\t\t\tlibraryFontSelected ? '/fontFamily' : '/'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<VStack spacing=\"8\">\n\t\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! hasFonts && (\n\t\t\t\t\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'No fonts installed.' ) }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts provided by the theme. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'Theme', 'font source' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts installed by the user. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'Custom', 'font source' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__select-all\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Select all' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isSelectAllChecked }\n\t\t\t\t\t\t\t\t\tonChange={ toggleSelectAll }\n\t\t\t\t\t\t\t\t\tindeterminate={ isIndeterminate }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getFontFacesToDisplay(\n\t\t\t\t\t\t\t\t\tlibraryFontSelected\n\t\t\t\t\t\t\t\t).map( ( face, i ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ handleUpdate }\n\t\t\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled 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:\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 handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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","ignoreList":[]}
@@ -24,11 +24,10 @@ var _jsxRuntime = require("react/jsx-runtime");
24
24
 
25
25
  function UploadFonts() {
26
26
  const {
27
- installFonts,
28
- notice,
29
- setNotice
27
+ installFonts
30
28
  } = (0, _element.useContext)(_context.FontLibraryContext);
31
29
  const [isUploading, setIsUploading] = (0, _element.useState)(false);
30
+ const [notice, setNotice] = (0, _element.useState)(false);
32
31
  const handleDropZone = files => {
33
32
  handleFilesUpload(files);
34
33
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_element","_constants","_context","_libFont","_makeFamiliesFromFaces","_interopRequireDefault","_utils","_jsxRuntime","UploadFonts","installFonts","notice","setNotice","useContext","FontLibraryContext","isUploading","setIsUploading","useState","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","ALLOWED_FILE_EXTENSIONS","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","__","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","loadFontFaceInBrowser","handleInstall","font","Font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","makeFamiliesFromFaces","errors","installationErrors","jsxs","className","children","jsx","DropZone","onFilesDrop","__experimentalVStack","Notice","status","__unstableHTML","onRemove","index","FlexItem","ProgressBar","FormFileUpload","accept","ext","join","multiple","onChange","render","openFileDialog","Button","onClick","__experimentalSpacer","margin","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useContext, useState } 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';\n\nfunction UploadFonts() {\n\tconst { installFonts, notice, setNotice } =\n\t\tuseContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\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/**\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 = async ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tlet hasInvalidFiles = false;\n\n\t\t// Use map to create a promise for each file check, then filter with Promise.all.\n\t\tconst checkFilesPromises = selectedFiles.map( async ( file ) => {\n\t\t\tconst isFont = await isFontFile( file );\n\t\t\tif ( ! isFont ) {\n\t\t\t\thasInvalidFiles = true;\n\t\t\t\treturn null; // Return null for invalid files.\n\t\t\t}\n\t\t\t// Check for duplicates\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn null; // Return null for duplicates.\n\t\t\t}\n\t\t\t// Check if the file extension is 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 file; // Return the file if it passes all checks.\n\t\t\t}\n\t\t\treturn null; // Return null for disallowed file extensions.\n\t\t} );\n\n\t\t// Filter out the nulls after all promises have resolved.\n\t\tconst allowedFiles = ( await Promise.all( checkFilesPromises ) ).filter(\n\t\t\t( file ) => null !== file\n\t\t);\n\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tconst message = hasInvalidFiles\n\t\t\t\t? __( 'Sorry, you are not allowed to upload this file type.' )\n\t\t\t\t: __( 'No fonts found to install.' );\n\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage,\n\t\t\t} );\n\t\t\tsetIsUploading( false );\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\thandleInstall( fontFacesLoaded );\n\t};\n\n\t/**\n\t * Checks if a file is a valid Font file.\n\t *\n\t * @param {File} file The file to be checked.\n\t * @return {boolean} Whether the file is a valid font file.\n\t */\n\tasync function isFontFile( file ) {\n\t\tconst font = new Font( 'Uploaded Font' );\n\t\ttry {\n\t\t\tconst buffer = await readFileAsArrayBuffer( file );\n\t\t\tawait font.fromDataBuffer( buffer, 'font' );\n\t\t\treturn true;\n\t\t} catch ( error ) {\n\t\t\treturn false;\n\t\t}\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\ttry {\n\t\t\tawait installFonts( fontFamilies );\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\terrors: error?.installationErrors,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ notice && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t__unstableHTML\n\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t{ notice.errors && (\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{ notice.errors.map( ( error, index ) => (\n\t\t\t\t\t\t\t\t\t<li key={ index }>{ error }</li>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Notice>\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{ ! 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\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{ __( 'Upload font' ) }\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<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_element","_constants","_context","_libFont","_makeFamiliesFromFaces","_interopRequireDefault","_utils","_jsxRuntime","UploadFonts","installFonts","useContext","FontLibraryContext","isUploading","setIsUploading","useState","notice","setNotice","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","ALLOWED_FILE_EXTENSIONS","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","__","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","loadFontFaceInBrowser","handleInstall","font","Font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","makeFamiliesFromFaces","errors","installationErrors","jsxs","className","children","jsx","DropZone","onFilesDrop","__experimentalVStack","Notice","status","__unstableHTML","onRemove","index","FlexItem","ProgressBar","FormFileUpload","accept","ext","join","multiple","onChange","render","openFileDialog","Button","onClick","__experimentalSpacer","margin","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useContext, useState } 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';\n\nfunction UploadFonts() {\n\tconst { installFonts } = useContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst [ notice, setNotice ] = useState( false );\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/**\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 = async ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tlet hasInvalidFiles = false;\n\n\t\t// Use map to create a promise for each file check, then filter with Promise.all.\n\t\tconst checkFilesPromises = selectedFiles.map( async ( file ) => {\n\t\t\tconst isFont = await isFontFile( file );\n\t\t\tif ( ! isFont ) {\n\t\t\t\thasInvalidFiles = true;\n\t\t\t\treturn null; // Return null for invalid files.\n\t\t\t}\n\t\t\t// Check for duplicates\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn null; // Return null for duplicates.\n\t\t\t}\n\t\t\t// Check if the file extension is 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 file; // Return the file if it passes all checks.\n\t\t\t}\n\t\t\treturn null; // Return null for disallowed file extensions.\n\t\t} );\n\n\t\t// Filter out the nulls after all promises have resolved.\n\t\tconst allowedFiles = ( await Promise.all( checkFilesPromises ) ).filter(\n\t\t\t( file ) => null !== file\n\t\t);\n\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tconst message = hasInvalidFiles\n\t\t\t\t? __( 'Sorry, you are not allowed to upload this file type.' )\n\t\t\t\t: __( 'No fonts found to install.' );\n\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage,\n\t\t\t} );\n\t\t\tsetIsUploading( false );\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\thandleInstall( fontFacesLoaded );\n\t};\n\n\t/**\n\t * Checks if a file is a valid Font file.\n\t *\n\t * @param {File} file The file to be checked.\n\t * @return {boolean} Whether the file is a valid font file.\n\t */\n\tasync function isFontFile( file ) {\n\t\tconst font = new Font( 'Uploaded Font' );\n\t\ttry {\n\t\t\tconst buffer = await readFileAsArrayBuffer( file );\n\t\t\tawait font.fromDataBuffer( buffer, 'font' );\n\t\t\treturn true;\n\t\t} catch ( error ) {\n\t\t\treturn false;\n\t\t}\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\ttry {\n\t\t\tawait installFonts( fontFamilies );\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\terrors: error?.installationErrors,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ notice && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t__unstableHTML\n\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t{ notice.errors && (\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{ notice.errors.map( ( error, index ) => (\n\t\t\t\t\t\t\t\t\t<li key={ index }>{ error }</li>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Notice>\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{ ! 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\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{ __( 'Upload font' ) }\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<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _components = require("@wordpress/components");
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ function ConfirmDeleteFontSizeDialog({
15
+ fontSize,
16
+ isOpen,
17
+ toggleOpen,
18
+ handleRemoveFontSize
19
+ }) {
20
+ const handleConfirm = async () => {
21
+ toggleOpen();
22
+ handleRemoveFontSize(fontSize);
23
+ };
24
+ const handleCancel = () => {
25
+ toggleOpen();
26
+ };
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalConfirmDialog, {
28
+ isOpen: isOpen,
29
+ cancelButtonText: (0, _i18n.__)('Cancel'),
30
+ confirmButtonText: (0, _i18n.__)('Delete'),
31
+ onCancel: handleCancel,
32
+ onConfirm: handleConfirm,
33
+ size: "medium",
34
+ children: fontSize && (0, _i18n.sprintf)( /* translators: %s: Name of the font size preset. */
35
+ (0, _i18n.__)('Are you sure you want to delete "%s" font size preset?'), fontSize.name)
36
+ });
37
+ }
38
+ var _default = exports.default = ConfirmDeleteFontSizeDialog;
39
+ //# sourceMappingURL=confirm-delete-font-size-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_i18n","_jsxRuntime","ConfirmDeleteFontSizeDialog","fontSize","isOpen","toggleOpen","handleRemoveFontSize","handleConfirm","handleCancel","jsx","__experimentalConfirmDialog","cancelButtonText","__","confirmButtonText","onCancel","onConfirm","size","children","sprintf","name","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\nfunction ConfirmDeleteFontSizeDialog( {\n\tfontSize,\n\tisOpen,\n\ttoggleOpen,\n\thandleRemoveFontSize,\n} ) {\n\tconst handleConfirm = async () => {\n\t\ttoggleOpen();\n\t\thandleRemoveFontSize( fontSize );\n\t};\n\n\tconst handleCancel = () => {\n\t\ttoggleOpen();\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancel }\n\t\t\tonConfirm={ handleConfirm }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t{ fontSize &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font size preset. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font size preset?'\n\t\t\t\t\t),\n\t\t\t\t\tfontSize.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default ConfirmDeleteFontSizeDialog;\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAA8C,IAAAE,WAAA,GAAAF,OAAA;AAJ9C;AACA;AACA;;AAIA,SAASG,2BAA2BA,CAAE;EACrCC,QAAQ;EACRC,MAAM;EACNC,UAAU;EACVC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAY;IACjCF,UAAU,CAAC,CAAC;IACZC,oBAAoB,CAAEH,QAAS,CAAC;EACjC,CAAC;EAED,MAAMK,YAAY,GAAGA,CAAA,KAAM;IAC1BH,UAAU,CAAC,CAAC;EACb,CAAC;EAED,oBACC,IAAAJ,WAAA,CAAAQ,GAAA,EAACX,WAAA,CAAAY,2BAAa;IACbN,MAAM,EAAGA,MAAQ;IACjBO,gBAAgB,EAAG,IAAAC,QAAE,EAAE,QAAS,CAAG;IACnCC,iBAAiB,EAAG,IAAAD,QAAE,EAAE,QAAS,CAAG;IACpCE,QAAQ,EAAGN,YAAc;IACzBO,SAAS,EAAGR,aAAe;IAC3BS,IAAI,EAAC,QAAQ;IAAAC,QAAA,EAEXd,QAAQ,IACT,IAAAe,aAAO,GACN;IACA,IAAAN,QAAE,EACD,wDACD,CAAC,EACDT,QAAQ,CAACgB,IACV;EAAC,CACY,CAAC;AAElB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcpB,2BAA2B","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _components = require("@wordpress/components");
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ function ConfirmResetFontSizesDialog({
15
+ text,
16
+ confirmButtonText,
17
+ isOpen,
18
+ toggleOpen,
19
+ onConfirm
20
+ }) {
21
+ const handleConfirm = async () => {
22
+ toggleOpen();
23
+ onConfirm();
24
+ };
25
+ const handleCancel = () => {
26
+ toggleOpen();
27
+ };
28
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalConfirmDialog, {
29
+ isOpen: isOpen,
30
+ cancelButtonText: (0, _i18n.__)('Cancel'),
31
+ confirmButtonText: confirmButtonText,
32
+ onCancel: handleCancel,
33
+ onConfirm: handleConfirm,
34
+ size: "medium",
35
+ children: text
36
+ });
37
+ }
38
+ var _default = exports.default = ConfirmResetFontSizesDialog;
39
+ //# sourceMappingURL=confirm-reset-font-sizes-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_i18n","_jsxRuntime","ConfirmResetFontSizesDialog","text","confirmButtonText","isOpen","toggleOpen","onConfirm","handleConfirm","handleCancel","jsx","__experimentalConfirmDialog","cancelButtonText","__","onCancel","size","children","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nfunction ConfirmResetFontSizesDialog( {\n\ttext,\n\tconfirmButtonText,\n\tisOpen,\n\ttoggleOpen,\n\tonConfirm,\n} ) {\n\tconst handleConfirm = async () => {\n\t\ttoggleOpen();\n\t\tonConfirm();\n\t};\n\n\tconst handleCancel = () => {\n\t\ttoggleOpen();\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\tonCancel={ handleCancel }\n\t\t\tonConfirm={ handleConfirm }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t{ text }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default ConfirmResetFontSizesDialog;\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAqC,IAAAE,WAAA,GAAAF,OAAA;AAJrC;AACA;AACA;;AAIA,SAASG,2BAA2BA,CAAE;EACrCC,IAAI;EACJC,iBAAiB;EACjBC,MAAM;EACNC,UAAU;EACVC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAY;IACjCF,UAAU,CAAC,CAAC;IACZC,SAAS,CAAC,CAAC;EACZ,CAAC;EAED,MAAME,YAAY,GAAGA,CAAA,KAAM;IAC1BH,UAAU,CAAC,CAAC;EACb,CAAC;EAED,oBACC,IAAAL,WAAA,CAAAS,GAAA,EAACZ,WAAA,CAAAa,2BAAa;IACbN,MAAM,EAAGA,MAAQ;IACjBO,gBAAgB,EAAG,IAAAC,QAAE,EAAE,QAAS,CAAG;IACnCT,iBAAiB,EAAGA,iBAAmB;IACvCU,QAAQ,EAAGL,YAAc;IACzBF,SAAS,EAAGC,aAAe;IAC3BO,IAAI,EAAC,QAAQ;IAAAC,QAAA,EAEXb;EAAI,CACQ,CAAC;AAElB;AAAC,IAAAc,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcjB,2BAA2B","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _blockEditor = require("@wordpress/block-editor");
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _lockUnlock = require("../../../lock-unlock");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+
19
+ const {
20
+ useGlobalStyle
21
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
22
+ function FontSizePreview({
23
+ fontSize
24
+ }) {
25
+ var _font$fontFamily;
26
+ const [font] = useGlobalStyle('typography');
27
+ const input = fontSize?.fluid?.min && fontSize?.fluid?.max ? {
28
+ minimumFontSize: fontSize.fluid.min,
29
+ maximumFontSize: fontSize.fluid.max
30
+ } : {
31
+ fontSize: fontSize.size
32
+ };
33
+ const computedFontSize = (0, _blockEditor.getComputedFluidTypographyValue)(input);
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
35
+ className: "edit-site-typography-preview",
36
+ style: {
37
+ fontSize: computedFontSize,
38
+ fontFamily: (_font$fontFamily = font?.fontFamily) !== null && _font$fontFamily !== void 0 ? _font$fontFamily : 'serif'
39
+ },
40
+ children: (0, _i18n.__)('Aa')
41
+ });
42
+ }
43
+ var _default = exports.default = FontSizePreview;
44
+ //# sourceMappingURL=font-size-preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_blockEditor","require","_i18n","_lockUnlock","_jsxRuntime","useGlobalStyle","unlock","blockEditorPrivateApis","FontSizePreview","fontSize","_font$fontFamily","font","input","fluid","min","max","minimumFontSize","maximumFontSize","size","computedFontSize","getComputedFluidTypographyValue","jsx","className","style","fontFamily","children","__","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/font-size-preview.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetComputedFluidTypographyValue,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nfunction FontSizePreview( { fontSize } ) {\n\tconst [ font ] = useGlobalStyle( 'typography' );\n\n\tconst input =\n\t\tfontSize?.fluid?.min && fontSize?.fluid?.max\n\t\t\t? {\n\t\t\t\t\tminimumFontSize: fontSize.fluid.min,\n\t\t\t\t\tmaximumFontSize: fontSize.fluid.max,\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tfontSize: fontSize.size,\n\t\t\t };\n\n\tconst computedFontSize = getComputedFluidTypographyValue( input );\n\treturn (\n\t\t<div\n\t\t\tclassName=\"edit-site-typography-preview\"\n\t\t\tstyle={ {\n\t\t\t\tfontSize: computedFontSize,\n\t\t\t\tfontFamily: font?.fontFamily ?? 'serif',\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Aa' ) }\n\t\t</div>\n\t);\n}\n\nexport default FontSizePreview;\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,WAAA,GAAAF,OAAA;AAA8C,IAAAG,WAAA,GAAAH,OAAA;AAZ9C;AACA;AACA;;AAOA;AACA;AACA;;AAEA,MAAM;EAAEI;AAAe,CAAC,GAAG,IAAAC,kBAAM,EAAEC,wBAAuB,CAAC;AAE3D,SAASC,eAAeA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAAA,IAAAC,gBAAA;EACxC,MAAM,CAAEC,IAAI,CAAE,GAAGN,cAAc,CAAE,YAAa,CAAC;EAE/C,MAAMO,KAAK,GACVH,QAAQ,EAAEI,KAAK,EAAEC,GAAG,IAAIL,QAAQ,EAAEI,KAAK,EAAEE,GAAG,GACzC;IACAC,eAAe,EAAEP,QAAQ,CAACI,KAAK,CAACC,GAAG;IACnCG,eAAe,EAAER,QAAQ,CAACI,KAAK,CAACE;EAChC,CAAC,GACD;IACAN,QAAQ,EAAEA,QAAQ,CAACS;EACnB,CAAC;EAEL,MAAMC,gBAAgB,GAAG,IAAAC,4CAA+B,EAAER,KAAM,CAAC;EACjE,oBACC,IAAAR,WAAA,CAAAiB,GAAA;IACCC,SAAS,EAAC,8BAA8B;IACxCC,KAAK,EAAG;MACPd,QAAQ,EAAEU,gBAAgB;MAC1BK,UAAU,GAAAd,gBAAA,GAAEC,IAAI,EAAEa,UAAU,cAAAd,gBAAA,cAAAA,gBAAA,GAAI;IACjC,CAAG;IAAAe,QAAA,EAED,IAAAC,QAAE,EAAE,IAAK;EAAC,CACR,CAAC;AAER;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcrB,eAAe","ignoreList":[]}