@wordpress/edit-site 5.35.0 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (905) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/build/components/add-new-page/index.js +33 -27
  3. package/build/components/add-new-page/index.js.map +1 -1
  4. package/build/components/add-new-pattern/index.js +95 -78
  5. package/build/components/add-new-pattern/index.js.map +1 -1
  6. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +35 -30
  7. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  8. package/build/components/add-new-template/add-custom-template-modal-content.js +119 -95
  9. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  10. package/build/components/add-new-template/index.js +87 -71
  11. package/build/components/add-new-template/index.js.map +1 -1
  12. package/build/components/add-new-template/utils.js +36 -17
  13. package/build/components/add-new-template/utils.js.map +1 -1
  14. package/build/components/app/index.js +10 -4
  15. package/build/components/app/index.js.map +1 -1
  16. package/build/components/block-editor/block-inspector-button.js +5 -4
  17. package/build/components/block-editor/block-inspector-button.js.map +1 -1
  18. package/build/components/block-editor/inserter-media-categories.js +1 -1
  19. package/build/components/block-editor/inserter-media-categories.js.map +1 -1
  20. package/build/components/block-editor/use-editor-iframe-props.js +88 -0
  21. package/build/components/block-editor/use-editor-iframe-props.js.map +1 -0
  22. package/build/components/canvas-loader/index.js +13 -12
  23. package/build/components/canvas-loader/index.js.map +1 -1
  24. package/build/components/dataviews-actions/index.js +7 -4
  25. package/build/components/dataviews-actions/index.js.map +1 -1
  26. package/build/components/editor/index.js +86 -182
  27. package/build/components/editor/index.js.map +1 -1
  28. package/build/components/editor/use-editor-title.js +39 -0
  29. package/build/components/editor/use-editor-title.js.map +1 -0
  30. package/build/components/editor-canvas-container/index.js +27 -29
  31. package/build/components/editor-canvas-container/index.js.map +1 -1
  32. package/build/components/error-boundary/index.js +2 -2
  33. package/build/components/error-boundary/index.js.map +1 -1
  34. package/build/components/error-boundary/warning.js +13 -11
  35. package/build/components/error-boundary/warning.js.map +1 -1
  36. package/build/components/global-styles/background-panel.js +6 -5
  37. package/build/components/global-styles/background-panel.js.map +1 -1
  38. package/build/components/global-styles/block-preview-panel.js +19 -17
  39. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  40. package/build/components/global-styles/color-indicator-wrapper.js +2 -2
  41. package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
  42. package/build/components/global-styles/color-palette-panel.js +30 -29
  43. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  44. package/build/components/global-styles/dimensions-panel.js +2 -2
  45. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  46. package/build/components/global-styles/font-families.js +55 -39
  47. package/build/components/global-styles/font-families.js.map +1 -1
  48. package/build/components/global-styles/font-family-item.js +17 -13
  49. package/build/components/global-styles/font-family-item.js.map +1 -1
  50. package/build/components/global-styles/font-library-modal/collection-font-variant.js +25 -22
  51. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  52. package/build/components/global-styles/font-library-modal/context.js +7 -30
  53. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  54. package/build/components/global-styles/font-library-modal/font-card.js +24 -16
  55. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  56. package/build/components/global-styles/font-library-modal/font-collection.js +195 -152
  57. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  58. package/build/components/global-styles/font-library-modal/font-demo.js +14 -12
  59. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  60. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +29 -20
  61. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  62. package/build/components/global-styles/font-library-modal/index.js +41 -36
  63. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  64. package/build/components/global-styles/font-library-modal/installed-fonts.js +153 -109
  65. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  66. package/build/components/global-styles/font-library-modal/library-font-details.js +16 -14
  67. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  68. package/build/components/global-styles/font-library-modal/library-font-variant.js +25 -22
  69. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  70. package/build/components/global-styles/font-library-modal/upload-fonts.js +40 -34
  71. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  72. package/build/components/global-styles/font-library-modal/utils/index.js +3 -3
  73. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  74. package/build/components/global-styles/gradients-palette-panel.js +41 -37
  75. package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
  76. package/build/components/global-styles/header.js +37 -28
  77. package/build/components/global-styles/header.js.map +1 -1
  78. package/build/components/global-styles/highlighted-colors.js +3 -4
  79. package/build/components/global-styles/highlighted-colors.js.map +1 -1
  80. package/build/components/global-styles/hooks.js +11 -23
  81. package/build/components/global-styles/hooks.js.map +1 -1
  82. package/build/components/global-styles/icon-with-current-color.js +2 -2
  83. package/build/components/global-styles/icon-with-current-color.js.map +1 -1
  84. package/build/components/global-styles/navigation-button.js +15 -11
  85. package/build/components/global-styles/navigation-button.js.map +1 -1
  86. package/build/components/global-styles/palette.js +39 -32
  87. package/build/components/global-styles/palette.js.map +1 -1
  88. package/build/components/global-styles/preset-colors.js +3 -4
  89. package/build/components/global-styles/preset-colors.js.map +1 -1
  90. package/build/components/global-styles/preview-colors.js +22 -20
  91. package/build/components/global-styles/preview-colors.js.map +1 -1
  92. package/build/components/global-styles/preview-iframe.js +34 -29
  93. package/build/components/global-styles/preview-iframe.js.map +1 -1
  94. package/build/components/global-styles/preview-styles.js +95 -90
  95. package/build/components/global-styles/preview-styles.js.map +1 -1
  96. package/build/components/global-styles/root-menu.js +28 -21
  97. package/build/components/global-styles/root-menu.js.map +1 -1
  98. package/build/components/global-styles/screen-background.js +6 -4
  99. package/build/components/global-styles/screen-background.js.map +1 -1
  100. package/build/components/global-styles/screen-block-list.js +33 -27
  101. package/build/components/global-styles/screen-block-list.js.map +1 -1
  102. package/build/components/global-styles/screen-block.js +62 -53
  103. package/build/components/global-styles/screen-block.js.map +1 -1
  104. package/build/components/global-styles/screen-color-palette.js +29 -19
  105. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  106. package/build/components/global-styles/screen-colors.js +18 -14
  107. package/build/components/global-styles/screen-colors.js.map +1 -1
  108. package/build/components/global-styles/screen-css.js +20 -14
  109. package/build/components/global-styles/screen-css.js.map +1 -1
  110. package/build/components/global-styles/screen-layout.js +9 -4
  111. package/build/components/global-styles/screen-layout.js.map +1 -1
  112. package/build/components/global-styles/screen-revisions/index.js +52 -42
  113. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  114. package/build/components/global-styles/screen-revisions/revisions-buttons.js +81 -70
  115. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  116. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +1 -0
  117. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  118. package/build/components/global-styles/screen-root.js +76 -42
  119. package/build/components/global-styles/screen-root.js.map +1 -1
  120. package/build/components/global-styles/screen-shadows.js +22 -0
  121. package/build/components/global-styles/screen-shadows.js.map +1 -0
  122. package/build/components/global-styles/screen-style-variations.js +14 -9
  123. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  124. package/build/components/global-styles/screen-typography-element.js +50 -45
  125. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  126. package/build/components/global-styles/screen-typography.js +15 -11
  127. package/build/components/global-styles/screen-typography.js.map +1 -1
  128. package/build/components/global-styles/shadow-utils.js +230 -0
  129. package/build/components/global-styles/shadow-utils.js.map +1 -0
  130. package/build/components/global-styles/shadows-edit-panel.js +458 -0
  131. package/build/components/global-styles/shadows-edit-panel.js.map +1 -0
  132. package/build/components/global-styles/shadows-panel.js +128 -0
  133. package/build/components/global-styles/shadows-panel.js.map +1 -0
  134. package/build/components/global-styles/style-variations-container.js +67 -18
  135. package/build/components/global-styles/style-variations-container.js.map +1 -1
  136. package/build/components/global-styles/subtitle.js +5 -4
  137. package/build/components/global-styles/subtitle.js.map +1 -1
  138. package/build/components/global-styles/typography-elements.js +53 -45
  139. package/build/components/global-styles/typography-elements.js.map +1 -1
  140. package/build/components/global-styles/typography-example.js +11 -8
  141. package/build/components/global-styles/typography-example.js.map +1 -1
  142. package/build/components/global-styles/typography-panel.js +2 -2
  143. package/build/components/global-styles/typography-panel.js.map +1 -1
  144. package/build/components/global-styles/typography-preview.js +5 -4
  145. package/build/components/global-styles/typography-preview.js.map +1 -1
  146. package/build/components/global-styles/ui.js +124 -92
  147. package/build/components/global-styles/ui.js.map +1 -1
  148. package/build/components/global-styles/utils.js +28 -0
  149. package/build/components/global-styles/utils.js.map +1 -1
  150. package/build/components/global-styles/variations/variation.js +27 -22
  151. package/build/components/global-styles/variations/variation.js.map +1 -1
  152. package/build/components/global-styles/variations/variations-color.js +18 -13
  153. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  154. package/build/components/global-styles/variations/variations-panel.js +27 -17
  155. package/build/components/global-styles/variations/variations-panel.js.map +1 -1
  156. package/build/components/global-styles/variations/variations-typography.js +37 -31
  157. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  158. package/build/components/global-styles-renderer/index.js +5 -1
  159. package/build/components/global-styles-renderer/index.js.map +1 -1
  160. package/build/components/global-styles-sidebar/default-sidebar.js +22 -18
  161. package/build/components/global-styles-sidebar/default-sidebar.js.map +1 -1
  162. package/build/components/global-styles-sidebar/index.js +36 -26
  163. package/build/components/global-styles-sidebar/index.js.map +1 -1
  164. package/build/components/layout/index.js +92 -118
  165. package/build/components/layout/index.js.map +1 -1
  166. package/build/components/layout/router.js +83 -103
  167. package/build/components/layout/router.js.map +1 -1
  168. package/build/components/media/index.js +2 -2
  169. package/build/components/media/index.js.map +1 -1
  170. package/build/components/{header-edit-mode/more-menu → more-menu}/index.js +7 -3
  171. package/build/components/more-menu/index.js.map +1 -0
  172. package/build/components/{header-edit-mode/more-menu → more-menu}/site-export.js +5 -4
  173. package/build/components/more-menu/site-export.js.map +1 -0
  174. package/build/components/{header-edit-mode/more-menu → more-menu}/welcome-guide-menu-item.js +5 -4
  175. package/build/components/more-menu/welcome-guide-menu-item.js.map +1 -0
  176. package/build/components/page/header.js +24 -20
  177. package/build/components/page/header.js.map +1 -1
  178. package/build/components/page/index.js +12 -10
  179. package/build/components/page/index.js.map +1 -1
  180. package/build/components/page-pages/index.js +133 -52
  181. package/build/components/page-pages/index.js.map +1 -1
  182. package/build/components/page-patterns/delete-category-menu-item.js +23 -20
  183. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -1
  184. package/build/components/page-patterns/header.js +47 -32
  185. package/build/components/page-patterns/header.js.map +1 -1
  186. package/build/components/page-patterns/index.js +116 -110
  187. package/build/components/page-patterns/index.js.map +1 -1
  188. package/build/components/page-patterns/rename-category-menu-item.js +14 -11
  189. package/build/components/page-patterns/rename-category-menu-item.js.map +1 -1
  190. package/build/components/page-patterns/use-patterns.js +7 -6
  191. package/build/components/page-patterns/use-patterns.js.map +1 -1
  192. package/build/components/page-templates/index.js +78 -59
  193. package/build/components/page-templates/index.js.map +1 -1
  194. package/build/components/pagination/index.js +59 -41
  195. package/build/components/pagination/index.js.map +1 -1
  196. package/build/components/plugin-template-setting-panel/index.js +4 -2
  197. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  198. package/build/components/resizable-frame/index.js +38 -32
  199. package/build/components/resizable-frame/index.js.map +1 -1
  200. package/build/components/revisions/index.js +26 -20
  201. package/build/components/revisions/index.js.map +1 -1
  202. package/build/components/routes/link.js +5 -4
  203. package/build/components/routes/link.js.map +1 -1
  204. package/build/components/save-button/index.js +5 -4
  205. package/build/components/save-button/index.js.map +1 -1
  206. package/build/components/save-hub/index.js +12 -11
  207. package/build/components/save-hub/index.js.map +1 -1
  208. package/build/components/save-panel/index.js +34 -28
  209. package/build/components/save-panel/index.js.map +1 -1
  210. package/build/components/sidebar/index.js +14 -11
  211. package/build/components/sidebar/index.js.map +1 -1
  212. package/build/components/sidebar-button/index.js +2 -2
  213. package/build/components/sidebar-button/index.js.map +1 -1
  214. package/build/components/sidebar-dataviews/add-new-view.js +56 -48
  215. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  216. package/build/components/sidebar-dataviews/custom-dataviews-list.js +106 -89
  217. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  218. package/build/components/sidebar-dataviews/dataview-item.js +18 -12
  219. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  220. package/build/components/sidebar-dataviews/default-views.js +48 -0
  221. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  222. package/build/components/sidebar-dataviews/index.js +21 -22
  223. package/build/components/sidebar-dataviews/index.js.map +1 -1
  224. package/build/components/sidebar-navigation-item/index.js +27 -25
  225. package/build/components/sidebar-navigation-item/index.js.map +1 -1
  226. package/build/components/sidebar-navigation-screen/index.js +51 -39
  227. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  228. package/build/components/sidebar-navigation-screen-details-footer/index.js +24 -17
  229. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  230. package/build/components/sidebar-navigation-screen-details-panel/index.js +9 -7
  231. package/build/components/sidebar-navigation-screen-details-panel/index.js.map +1 -1
  232. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js +5 -4
  233. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +1 -1
  234. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +5 -5
  235. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  236. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js +5 -4
  237. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +1 -1
  238. package/build/components/sidebar-navigation-screen-global-styles/index.js +54 -45
  239. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  240. package/build/components/sidebar-navigation-screen-main/index.js +45 -22
  241. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  242. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +5 -4
  243. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -1
  244. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +11 -10
  245. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  246. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +53 -42
  247. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  248. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +10 -8
  249. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  250. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +43 -36
  251. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  252. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +16 -13
  253. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  254. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  255. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  256. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +27 -23
  257. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  258. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +50 -35
  259. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  260. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +12 -9
  261. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  262. package/build/components/sidebar-navigation-screen-patterns/category-item.js +12 -10
  263. package/build/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  264. package/build/components/sidebar-navigation-screen-patterns/index.js +59 -64
  265. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  266. package/build/components/sidebar-navigation-screen-templates-browse/content.js +17 -17
  267. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  268. package/build/components/sidebar-navigation-screen-templates-browse/index.js +4 -4
  269. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  270. package/build/components/site-hub/index.js +52 -133
  271. package/build/components/site-hub/index.js.map +1 -1
  272. package/build/components/site-icon/index.js +8 -7
  273. package/build/components/site-icon/index.js.map +1 -1
  274. package/build/components/style-book/index.js +115 -99
  275. package/build/components/style-book/index.js.map +1 -1
  276. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -30
  277. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  278. package/build/components/table/index.js +23 -15
  279. package/build/components/table/index.js.map +1 -1
  280. package/build/components/template-part-converter/convert-to-regular.js +5 -4
  281. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  282. package/build/components/template-part-converter/convert-to-template-part.js +23 -17
  283. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  284. package/build/components/template-part-converter/index.js +12 -10
  285. package/build/components/template-part-converter/index.js.map +1 -1
  286. package/build/components/welcome-guide/editor.js +20 -15
  287. package/build/components/welcome-guide/editor.js.map +1 -1
  288. package/build/components/welcome-guide/image.js +13 -12
  289. package/build/components/welcome-guide/image.js.map +1 -1
  290. package/build/components/welcome-guide/index.js +4 -2
  291. package/build/components/welcome-guide/index.js.map +1 -1
  292. package/build/components/welcome-guide/page.js +18 -13
  293. package/build/components/welcome-guide/page.js.map +1 -1
  294. package/build/components/welcome-guide/styles.js +45 -28
  295. package/build/components/welcome-guide/styles.js.map +1 -1
  296. package/build/components/welcome-guide/template.js +18 -13
  297. package/build/components/welcome-guide/template.js.map +1 -1
  298. package/build/deprecated.js +4 -4
  299. package/build/deprecated.js.map +1 -1
  300. package/build/hooks/commands/use-common-commands.js +12 -24
  301. package/build/hooks/commands/use-common-commands.js.map +1 -1
  302. package/build/hooks/commands/use-edit-mode-commands.js +2 -116
  303. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  304. package/build/hooks/index.js +0 -1
  305. package/build/hooks/index.js.map +1 -1
  306. package/build/hooks/push-changes-to-global-styles/index.js +26 -16
  307. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  308. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -1
  309. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  310. package/build/index.js +3 -3
  311. package/build/index.js.map +1 -1
  312. package/build/store/private-actions.js +34 -13
  313. package/build/store/private-actions.js.map +1 -1
  314. package/build/store/selectors.js +2 -2
  315. package/build/store/selectors.js.map +1 -1
  316. package/build/utils/template-part-create.js +0 -62
  317. package/build/utils/template-part-create.js.map +1 -1
  318. package/build/utils/use-activate-theme.js +4 -5
  319. package/build/utils/use-activate-theme.js.map +1 -1
  320. package/build-module/components/add-new-page/index.js +34 -27
  321. package/build-module/components/add-new-page/index.js.map +1 -1
  322. package/build-module/components/add-new-pattern/index.js +98 -78
  323. package/build-module/components/add-new-pattern/index.js.map +1 -1
  324. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +36 -30
  325. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  326. package/build-module/components/add-new-template/add-custom-template-modal-content.js +121 -95
  327. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  328. package/build-module/components/add-new-template/index.js +89 -71
  329. package/build-module/components/add-new-template/index.js.map +1 -1
  330. package/build-module/components/add-new-template/utils.js +36 -17
  331. package/build-module/components/add-new-template/utils.js.map +1 -1
  332. package/build-module/components/app/index.js +11 -4
  333. package/build-module/components/app/index.js.map +1 -1
  334. package/build-module/components/block-editor/block-inspector-button.js +5 -4
  335. package/build-module/components/block-editor/block-inspector-button.js.map +1 -1
  336. package/build-module/components/block-editor/inserter-media-categories.js +1 -1
  337. package/build-module/components/block-editor/inserter-media-categories.js.map +1 -1
  338. package/build-module/components/block-editor/use-editor-iframe-props.js +80 -0
  339. package/build-module/components/block-editor/use-editor-iframe-props.js.map +1 -0
  340. package/build-module/components/canvas-loader/index.js +14 -13
  341. package/build-module/components/canvas-loader/index.js.map +1 -1
  342. package/build-module/components/dataviews-actions/index.js +7 -4
  343. package/build-module/components/dataviews-actions/index.js.map +1 -1
  344. package/build-module/components/editor/index.js +91 -185
  345. package/build-module/components/editor/index.js.map +1 -1
  346. package/build-module/components/editor/use-editor-title.js +31 -0
  347. package/build-module/components/editor/use-editor-title.js.map +1 -0
  348. package/build-module/components/editor-canvas-container/index.js +29 -30
  349. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  350. package/build-module/components/error-boundary/index.js +2 -2
  351. package/build-module/components/error-boundary/index.js.map +1 -1
  352. package/build-module/components/error-boundary/warning.js +13 -11
  353. package/build-module/components/error-boundary/warning.js.map +1 -1
  354. package/build-module/components/global-styles/background-panel.js +6 -5
  355. package/build-module/components/global-styles/background-panel.js.map +1 -1
  356. package/build-module/components/global-styles/block-preview-panel.js +19 -17
  357. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  358. package/build-module/components/global-styles/color-indicator-wrapper.js +2 -2
  359. package/build-module/components/global-styles/color-indicator-wrapper.js.map +1 -1
  360. package/build-module/components/global-styles/color-palette-panel.js +31 -29
  361. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  362. package/build-module/components/global-styles/dimensions-panel.js +2 -2
  363. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  364. package/build-module/components/global-styles/font-families.js +58 -40
  365. package/build-module/components/global-styles/font-families.js.map +1 -1
  366. package/build-module/components/global-styles/font-family-item.js +18 -13
  367. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  368. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +26 -22
  369. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  370. package/build-module/components/global-styles/font-library-modal/context.js +7 -30
  371. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  372. package/build-module/components/global-styles/font-library-modal/font-card.js +25 -16
  373. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  374. package/build-module/components/global-styles/font-library-modal/font-collection.js +198 -153
  375. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  376. package/build-module/components/global-styles/font-library-modal/font-demo.js +14 -12
  377. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  378. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +30 -20
  379. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  380. package/build-module/components/global-styles/font-library-modal/index.js +42 -36
  381. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  382. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +157 -111
  383. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  384. package/build-module/components/global-styles/font-library-modal/library-font-details.js +18 -14
  385. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  386. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +26 -22
  387. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  388. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +42 -35
  389. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  390. package/build-module/components/global-styles/font-library-modal/utils/index.js +3 -3
  391. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  392. package/build-module/components/global-styles/gradients-palette-panel.js +42 -37
  393. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  394. package/build-module/components/global-styles/header.js +38 -28
  395. package/build-module/components/global-styles/header.js.map +1 -1
  396. package/build-module/components/global-styles/highlighted-colors.js +3 -4
  397. package/build-module/components/global-styles/highlighted-colors.js.map +1 -1
  398. package/build-module/components/global-styles/hooks.js +11 -23
  399. package/build-module/components/global-styles/hooks.js.map +1 -1
  400. package/build-module/components/global-styles/icon-with-current-color.js +2 -2
  401. package/build-module/components/global-styles/icon-with-current-color.js.map +1 -1
  402. package/build-module/components/global-styles/navigation-button.js +16 -11
  403. package/build-module/components/global-styles/navigation-button.js.map +1 -1
  404. package/build-module/components/global-styles/palette.js +42 -34
  405. package/build-module/components/global-styles/palette.js.map +1 -1
  406. package/build-module/components/global-styles/preset-colors.js +3 -4
  407. package/build-module/components/global-styles/preset-colors.js.map +1 -1
  408. package/build-module/components/global-styles/preview-colors.js +22 -20
  409. package/build-module/components/global-styles/preview-colors.js.map +1 -1
  410. package/build-module/components/global-styles/preview-iframe.js +36 -29
  411. package/build-module/components/global-styles/preview-iframe.js.map +1 -1
  412. package/build-module/components/global-styles/preview-styles.js +96 -90
  413. package/build-module/components/global-styles/preview-styles.js.map +1 -1
  414. package/build-module/components/global-styles/root-menu.js +31 -22
  415. package/build-module/components/global-styles/root-menu.js.map +1 -1
  416. package/build-module/components/global-styles/screen-background.js +8 -4
  417. package/build-module/components/global-styles/screen-background.js.map +1 -1
  418. package/build-module/components/global-styles/screen-block-list.js +35 -27
  419. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  420. package/build-module/components/global-styles/screen-block.js +64 -53
  421. package/build-module/components/global-styles/screen-block.js.map +1 -1
  422. package/build-module/components/global-styles/screen-color-palette.js +31 -19
  423. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  424. package/build-module/components/global-styles/screen-colors.js +20 -14
  425. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  426. package/build-module/components/global-styles/screen-css.js +22 -14
  427. package/build-module/components/global-styles/screen-css.js.map +1 -1
  428. package/build-module/components/global-styles/screen-layout.js +11 -4
  429. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  430. package/build-module/components/global-styles/screen-revisions/index.js +54 -42
  431. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  432. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +82 -70
  433. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  434. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +1 -0
  435. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  436. package/build-module/components/global-styles/screen-root.js +78 -42
  437. package/build-module/components/global-styles/screen-root.js.map +1 -1
  438. package/build-module/components/global-styles/screen-shadows.js +13 -0
  439. package/build-module/components/global-styles/screen-shadows.js.map +1 -0
  440. package/build-module/components/global-styles/screen-style-variations.js +16 -9
  441. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  442. package/build-module/components/global-styles/screen-typography-element.js +52 -45
  443. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  444. package/build-module/components/global-styles/screen-typography.js +17 -11
  445. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  446. package/build-module/components/global-styles/shadow-utils.js +221 -0
  447. package/build-module/components/global-styles/shadow-utils.js.map +1 -0
  448. package/build-module/components/global-styles/shadows-edit-panel.js +452 -0
  449. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -0
  450. package/build-module/components/global-styles/shadows-panel.js +121 -0
  451. package/build-module/components/global-styles/shadows-panel.js.map +1 -0
  452. package/build-module/components/global-styles/style-variations-container.js +68 -19
  453. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  454. package/build-module/components/global-styles/subtitle.js +5 -4
  455. package/build-module/components/global-styles/subtitle.js.map +1 -1
  456. package/build-module/components/global-styles/typography-elements.js +54 -45
  457. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  458. package/build-module/components/global-styles/typography-example.js +12 -8
  459. package/build-module/components/global-styles/typography-example.js.map +1 -1
  460. package/build-module/components/global-styles/typography-panel.js +2 -2
  461. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  462. package/build-module/components/global-styles/typography-preview.js +5 -4
  463. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  464. package/build-module/components/global-styles/ui.js +126 -92
  465. package/build-module/components/global-styles/ui.js.map +1 -1
  466. package/build-module/components/global-styles/utils.js +27 -0
  467. package/build-module/components/global-styles/utils.js.map +1 -1
  468. package/build-module/components/global-styles/variations/variation.js +27 -22
  469. package/build-module/components/global-styles/variations/variation.js.map +1 -1
  470. package/build-module/components/global-styles/variations/variations-color.js +20 -14
  471. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  472. package/build-module/components/global-styles/variations/variations-panel.js +28 -18
  473. package/build-module/components/global-styles/variations/variations-panel.js.map +1 -1
  474. package/build-module/components/global-styles/variations/variations-typography.js +38 -31
  475. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  476. package/build-module/components/global-styles-renderer/index.js +5 -1
  477. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  478. package/build-module/components/global-styles-sidebar/default-sidebar.js +24 -18
  479. package/build-module/components/global-styles-sidebar/default-sidebar.js.map +1 -1
  480. package/build-module/components/global-styles-sidebar/index.js +37 -26
  481. package/build-module/components/global-styles-sidebar/index.js.map +1 -1
  482. package/build-module/components/layout/index.js +97 -121
  483. package/build-module/components/layout/index.js.map +1 -1
  484. package/build-module/components/layout/router.js +83 -103
  485. package/build-module/components/layout/router.js.map +1 -1
  486. package/build-module/components/media/index.js +2 -2
  487. package/build-module/components/media/index.js.map +1 -1
  488. package/build-module/components/{header-edit-mode/more-menu → more-menu}/index.js +9 -3
  489. package/build-module/components/more-menu/index.js.map +1 -0
  490. package/build-module/components/{header-edit-mode/more-menu → more-menu}/site-export.js +5 -4
  491. package/build-module/components/more-menu/site-export.js.map +1 -0
  492. package/build-module/components/{header-edit-mode/more-menu → more-menu}/welcome-guide-menu-item.js +5 -4
  493. package/build-module/components/more-menu/welcome-guide-menu-item.js.map +1 -0
  494. package/build-module/components/page/header.js +25 -19
  495. package/build-module/components/page/header.js.map +1 -1
  496. package/build-module/components/page/index.js +14 -11
  497. package/build-module/components/page/index.js.map +1 -1
  498. package/build-module/components/page-pages/index.js +138 -55
  499. package/build-module/components/page-pages/index.js.map +1 -1
  500. package/build-module/components/page-patterns/delete-category-menu-item.js +25 -20
  501. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -1
  502. package/build-module/components/page-patterns/header.js +48 -32
  503. package/build-module/components/page-patterns/header.js.map +1 -1
  504. package/build-module/components/page-patterns/index.js +117 -110
  505. package/build-module/components/page-patterns/index.js.map +1 -1
  506. package/build-module/components/page-patterns/rename-category-menu-item.js +16 -11
  507. package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -1
  508. package/build-module/components/page-patterns/use-patterns.js +7 -6
  509. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  510. package/build-module/components/page-templates/index.js +80 -59
  511. package/build-module/components/page-templates/index.js.map +1 -1
  512. package/build-module/components/pagination/index.js +60 -41
  513. package/build-module/components/pagination/index.js.map +1 -1
  514. package/build-module/components/plugin-template-setting-panel/index.js +4 -2
  515. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
  516. package/build-module/components/resizable-frame/index.js +40 -32
  517. package/build-module/components/resizable-frame/index.js.map +1 -1
  518. package/build-module/components/revisions/index.js +27 -20
  519. package/build-module/components/revisions/index.js.map +1 -1
  520. package/build-module/components/routes/link.js +5 -4
  521. package/build-module/components/routes/link.js.map +1 -1
  522. package/build-module/components/save-button/index.js +5 -4
  523. package/build-module/components/save-button/index.js.map +1 -1
  524. package/build-module/components/save-hub/index.js +12 -11
  525. package/build-module/components/save-hub/index.js.map +1 -1
  526. package/build-module/components/save-panel/index.js +35 -28
  527. package/build-module/components/save-panel/index.js.map +1 -1
  528. package/build-module/components/sidebar/index.js +14 -11
  529. package/build-module/components/sidebar/index.js.map +1 -1
  530. package/build-module/components/sidebar-button/index.js +2 -2
  531. package/build-module/components/sidebar-button/index.js.map +1 -1
  532. package/build-module/components/sidebar-dataviews/add-new-view.js +58 -48
  533. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  534. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +108 -89
  535. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  536. package/build-module/components/sidebar-dataviews/dataview-item.js +19 -12
  537. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  538. package/build-module/components/sidebar-dataviews/default-views.js +49 -1
  539. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  540. package/build-module/components/sidebar-dataviews/index.js +23 -22
  541. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  542. package/build-module/components/sidebar-navigation-item/index.js +28 -25
  543. package/build-module/components/sidebar-navigation-item/index.js.map +1 -1
  544. package/build-module/components/sidebar-navigation-screen/index.js +53 -39
  545. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  546. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +25 -17
  547. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  548. package/build-module/components/sidebar-navigation-screen-details-panel/index.js +10 -7
  549. package/build-module/components/sidebar-navigation-screen-details-panel/index.js.map +1 -1
  550. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js +5 -4
  551. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +1 -1
  552. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +5 -5
  553. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  554. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js +5 -4
  555. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +1 -1
  556. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +56 -45
  557. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  558. package/build-module/components/sidebar-navigation-screen-main/index.js +47 -22
  559. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  560. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +5 -4
  561. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -1
  562. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +11 -10
  563. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  564. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +55 -42
  565. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  566. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +10 -8
  567. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  568. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +44 -36
  569. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  570. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +17 -13
  571. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  572. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  573. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  574. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +27 -23
  575. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  576. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +52 -35
  577. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  578. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +14 -9
  579. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  580. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js +12 -10
  581. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  582. package/build-module/components/sidebar-navigation-screen-patterns/index.js +61 -64
  583. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  584. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +18 -17
  585. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  586. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +4 -4
  587. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  588. package/build-module/components/site-hub/index.js +56 -136
  589. package/build-module/components/site-hub/index.js.map +1 -1
  590. package/build-module/components/site-icon/index.js +8 -7
  591. package/build-module/components/site-icon/index.js.map +1 -1
  592. package/build-module/components/style-book/index.js +116 -99
  593. package/build-module/components/style-book/index.js.map +1 -1
  594. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -30
  595. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  596. package/build-module/components/table/index.js +24 -15
  597. package/build-module/components/table/index.js.map +1 -1
  598. package/build-module/components/template-part-converter/convert-to-regular.js +5 -4
  599. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  600. package/build-module/components/template-part-converter/convert-to-template-part.js +25 -16
  601. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  602. package/build-module/components/template-part-converter/index.js +12 -10
  603. package/build-module/components/template-part-converter/index.js.map +1 -1
  604. package/build-module/components/welcome-guide/editor.js +22 -15
  605. package/build-module/components/welcome-guide/editor.js.map +1 -1
  606. package/build-module/components/welcome-guide/image.js +14 -12
  607. package/build-module/components/welcome-guide/image.js.map +1 -1
  608. package/build-module/components/welcome-guide/index.js +6 -2
  609. package/build-module/components/welcome-guide/index.js.map +1 -1
  610. package/build-module/components/welcome-guide/page.js +20 -13
  611. package/build-module/components/welcome-guide/page.js.map +1 -1
  612. package/build-module/components/welcome-guide/styles.js +47 -28
  613. package/build-module/components/welcome-guide/styles.js.map +1 -1
  614. package/build-module/components/welcome-guide/template.js +20 -13
  615. package/build-module/components/welcome-guide/template.js.map +1 -1
  616. package/build-module/deprecated.js +4 -4
  617. package/build-module/deprecated.js.map +1 -1
  618. package/build-module/hooks/commands/use-common-commands.js +12 -23
  619. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  620. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -118
  621. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  622. package/build-module/hooks/index.js +0 -1
  623. package/build-module/hooks/index.js.map +1 -1
  624. package/build-module/hooks/push-changes-to-global-styles/index.js +28 -16
  625. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  626. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -1
  627. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  628. package/build-module/index.js +3 -3
  629. package/build-module/index.js.map +1 -1
  630. package/build-module/store/private-actions.js +34 -13
  631. package/build-module/store/private-actions.js.map +1 -1
  632. package/build-module/store/selectors.js +2 -2
  633. package/build-module/store/selectors.js.map +1 -1
  634. package/build-module/utils/template-part-create.js +0 -52
  635. package/build-module/utils/template-part-create.js.map +1 -1
  636. package/build-module/utils/use-activate-theme.js +4 -5
  637. package/build-module/utils/use-activate-theme.js.map +1 -1
  638. package/build-style/style-rtl.css +327 -634
  639. package/build-style/style.css +327 -634
  640. package/package.json +43 -44
  641. package/src/components/add-new-pattern/index.js +46 -37
  642. package/src/components/add-new-template/index.js +2 -0
  643. package/src/components/add-new-template/utils.js +77 -39
  644. package/src/components/block-editor/inserter-media-categories.js +1 -3
  645. package/src/components/block-editor/style.scss +12 -136
  646. package/src/components/block-editor/use-editor-iframe-props.js +79 -0
  647. package/src/components/canvas-loader/index.js +5 -2
  648. package/src/components/dataviews-actions/index.js +7 -2
  649. package/src/components/editor/index.js +116 -290
  650. package/src/components/editor/style.scss +1 -16
  651. package/src/components/editor/use-editor-title.js +35 -0
  652. package/src/components/editor-canvas-container/index.js +30 -35
  653. package/src/components/editor-canvas-container/style.scss +16 -0
  654. package/src/components/global-styles/background-panel.js +3 -2
  655. package/src/components/global-styles/color-palette-panel.js +1 -1
  656. package/src/components/global-styles/font-families.js +25 -18
  657. package/src/components/global-styles/font-family-item.js +2 -2
  658. package/src/components/global-styles/font-library-modal/collection-font-variant.js +2 -1
  659. package/src/components/global-styles/font-library-modal/context.js +6 -44
  660. package/src/components/global-styles/font-library-modal/font-collection.js +3 -5
  661. package/src/components/global-styles/font-library-modal/installed-fonts.js +42 -12
  662. package/src/components/global-styles/font-library-modal/library-font-variant.js +2 -1
  663. package/src/components/global-styles/font-library-modal/upload-fonts.js +1 -4
  664. package/src/components/global-styles/font-library-modal/utils/index.js +1 -1
  665. package/src/components/global-styles/hooks.js +10 -37
  666. package/src/components/global-styles/palette.js +9 -18
  667. package/src/components/global-styles/root-menu.js +16 -12
  668. package/src/components/global-styles/screen-block.js +1 -1
  669. package/src/components/global-styles/screen-css.js +1 -1
  670. package/src/components/global-styles/screen-layout.js +9 -2
  671. package/src/components/global-styles/screen-revisions/index.js +6 -0
  672. package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
  673. package/src/components/global-styles/screen-revisions/style.scss +4 -8
  674. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +1 -0
  675. package/src/components/global-styles/screen-shadows.js +13 -0
  676. package/src/components/global-styles/screen-typography.js +1 -1
  677. package/src/components/global-styles/shadow-utils.js +158 -0
  678. package/src/components/global-styles/shadows-edit-panel.js +555 -0
  679. package/src/components/global-styles/shadows-panel.js +147 -0
  680. package/src/components/global-styles/style-variations-container.js +73 -10
  681. package/src/components/global-styles/style.scss +54 -5
  682. package/src/components/global-styles/test/shadow-utils.spec.js +251 -0
  683. package/src/components/global-styles/test/utils.spec.js +59 -0
  684. package/src/components/global-styles/ui.js +10 -6
  685. package/src/components/global-styles/utils.js +27 -0
  686. package/src/components/global-styles/variations/style.scss +7 -4
  687. package/src/components/global-styles/variations/variation.js +2 -0
  688. package/src/components/global-styles/variations/variations-color.js +8 -4
  689. package/src/components/global-styles/variations/variations-panel.js +16 -5
  690. package/src/components/global-styles/variations/variations-typography.js +2 -1
  691. package/src/components/global-styles-renderer/index.js +7 -1
  692. package/src/components/global-styles-sidebar/index.js +2 -0
  693. package/src/components/layout/index.js +24 -69
  694. package/src/components/layout/router.js +64 -79
  695. package/src/components/layout/style.scss +29 -66
  696. package/src/components/{header-edit-mode/more-menu → more-menu}/index.js +1 -1
  697. package/src/components/page/header.js +17 -13
  698. package/src/components/page/index.js +1 -5
  699. package/src/components/page/style.scss +21 -7
  700. package/src/components/page-pages/index.js +154 -30
  701. package/src/components/page-pages/style.scss +15 -0
  702. package/src/components/page-patterns/delete-category-menu-item.js +1 -2
  703. package/src/components/page-patterns/header.js +45 -33
  704. package/src/components/page-patterns/index.js +29 -63
  705. package/src/components/page-patterns/style.scss +21 -14
  706. package/src/components/page-patterns/use-patterns.js +13 -6
  707. package/src/components/pagination/index.js +21 -16
  708. package/src/components/resizable-frame/index.js +1 -1
  709. package/src/components/save-panel/index.js +2 -4
  710. package/src/components/sidebar-dataviews/add-new-view.js +5 -5
  711. package/src/components/sidebar-dataviews/custom-dataviews-list.js +5 -7
  712. package/src/components/sidebar-dataviews/dataview-item.js +8 -4
  713. package/src/components/sidebar-dataviews/default-views.js +61 -1
  714. package/src/components/sidebar-dataviews/index.js +4 -9
  715. package/src/components/sidebar-navigation-item/index.js +7 -7
  716. package/src/components/sidebar-navigation-screen/index.js +1 -1
  717. package/src/components/sidebar-navigation-screen/style.scss +2 -2
  718. package/src/components/sidebar-navigation-screen-global-styles/index.js +8 -2
  719. package/src/components/sidebar-navigation-screen-main/index.js +14 -4
  720. package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +1 -0
  721. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  722. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +1 -1
  723. package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +6 -3
  724. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +0 -61
  725. package/src/components/sidebar-navigation-screen-patterns/category-item.js +15 -4
  726. package/src/components/sidebar-navigation-screen-patterns/index.js +11 -17
  727. package/src/components/sidebar-navigation-screen-templates-browse/content.js +1 -1
  728. package/src/components/sidebar-navigation-screen-templates-browse/index.js +1 -1
  729. package/src/components/site-hub/index.js +56 -148
  730. package/src/components/site-hub/style.scss +47 -13
  731. package/src/components/site-icon/style.scss +0 -4
  732. package/src/components/style-book/index.js +1 -1
  733. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +18 -23
  734. package/src/components/template-part-converter/convert-to-template-part.js +4 -1
  735. package/src/hooks/commands/use-common-commands.js +12 -23
  736. package/src/hooks/commands/use-edit-mode-commands.js +4 -118
  737. package/src/hooks/index.js +0 -1
  738. package/src/hooks/push-changes-to-global-styles/index.js +3 -1
  739. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +5 -1
  740. package/src/index.js +1 -1
  741. package/src/store/private-actions.js +59 -23
  742. package/src/store/selectors.js +2 -2
  743. package/src/style.scss +0 -6
  744. package/src/utils/template-part-create.js +0 -67
  745. package/src/utils/use-activate-theme.js +2 -2
  746. package/build/components/block-editor/editor-canvas.js +0 -139
  747. package/build/components/block-editor/editor-canvas.js.map +0 -1
  748. package/build/components/block-editor/resizable-editor.js +0 -86
  749. package/build/components/block-editor/resizable-editor.js.map +0 -1
  750. package/build/components/block-editor/resize-handle.js +0 -57
  751. package/build/components/block-editor/resize-handle.js.map +0 -1
  752. package/build/components/block-editor/site-editor-canvas.js +0 -95
  753. package/build/components/block-editor/site-editor-canvas.js.map +0 -1
  754. package/build/components/code-editor/index.js +0 -111
  755. package/build/components/code-editor/index.js.map +0 -1
  756. package/build/components/create-template-part-modal/index.js +0 -151
  757. package/build/components/create-template-part-modal/index.js.map +0 -1
  758. package/build/components/header-edit-mode/index.js +0 -50
  759. package/build/components/header-edit-mode/index.js.map +0 -1
  760. package/build/components/header-edit-mode/more-menu/index.js.map +0 -1
  761. package/build/components/header-edit-mode/more-menu/site-export.js.map +0 -1
  762. package/build/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +0 -1
  763. package/build/components/page-patterns/dataviews-pattern-actions.js +0 -311
  764. package/build/components/page-patterns/dataviews-pattern-actions.js.map +0 -1
  765. package/build/components/pattern-modal/duplicate.js +0 -70
  766. package/build/components/pattern-modal/duplicate.js.map +0 -1
  767. package/build/components/pattern-modal/index.js +0 -23
  768. package/build/components/pattern-modal/index.js.map +0 -1
  769. package/build/components/pattern-modal/rename.js +0 -45
  770. package/build/components/pattern-modal/rename.js.map +0 -1
  771. package/build/components/rename-post-menu-item/index.js +0 -109
  772. package/build/components/rename-post-menu-item/index.js.map +0 -1
  773. package/build/components/sidebar-navigation-screen-page/index.js +0 -163
  774. package/build/components/sidebar-navigation-screen-page/index.js.map +0 -1
  775. package/build/components/sidebar-navigation-screen-page/page-details.js +0 -127
  776. package/build/components/sidebar-navigation-screen-page/page-details.js.map +0 -1
  777. package/build/components/sidebar-navigation-screen-page/status-label.js +0 -65
  778. package/build/components/sidebar-navigation-screen-page/status-label.js.map +0 -1
  779. package/build/components/sidebar-navigation-screen-pattern/index.js +0 -67
  780. package/build/components/sidebar-navigation-screen-pattern/index.js.map +0 -1
  781. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +0 -38
  782. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +0 -1
  783. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js +0 -29
  784. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js.map +0 -1
  785. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +0 -37
  786. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +0 -1
  787. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +0 -45
  788. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +0 -1
  789. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +0 -88
  790. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +0 -1
  791. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +0 -29
  792. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +0 -1
  793. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +0 -138
  794. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +0 -1
  795. package/build/components/sidebar-navigation-screen-template/home-template-details.js +0 -110
  796. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +0 -1
  797. package/build/components/sidebar-navigation-screen-template/index.js +0 -121
  798. package/build/components/sidebar-navigation-screen-template/index.js.map +0 -1
  799. package/build/components/sidebar-navigation-screen-template/template-areas.js +0 -117
  800. package/build/components/sidebar-navigation-screen-template/template-areas.js.map +0 -1
  801. package/build/components/template-actions/index.js +0 -131
  802. package/build/components/template-actions/index.js.map +0 -1
  803. package/build/hooks/components.js +0 -10
  804. package/build/hooks/components.js.map +0 -1
  805. package/build/utils/get-is-list-page.js +0 -28
  806. package/build/utils/get-is-list-page.js.map +0 -1
  807. package/build-module/components/block-editor/editor-canvas.js +0 -131
  808. package/build-module/components/block-editor/editor-canvas.js.map +0 -1
  809. package/build-module/components/block-editor/resizable-editor.js +0 -79
  810. package/build-module/components/block-editor/resizable-editor.js.map +0 -1
  811. package/build-module/components/block-editor/resize-handle.js +0 -50
  812. package/build-module/components/block-editor/resize-handle.js.map +0 -1
  813. package/build-module/components/block-editor/site-editor-canvas.js +0 -86
  814. package/build-module/components/block-editor/site-editor-canvas.js.map +0 -1
  815. package/build-module/components/code-editor/index.js +0 -103
  816. package/build-module/components/code-editor/index.js.map +0 -1
  817. package/build-module/components/create-template-part-modal/index.js +0 -143
  818. package/build-module/components/create-template-part-modal/index.js.map +0 -1
  819. package/build-module/components/header-edit-mode/index.js +0 -42
  820. package/build-module/components/header-edit-mode/index.js.map +0 -1
  821. package/build-module/components/header-edit-mode/more-menu/index.js.map +0 -1
  822. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +0 -1
  823. package/build-module/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +0 -1
  824. package/build-module/components/page-patterns/dataviews-pattern-actions.js +0 -304
  825. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +0 -1
  826. package/build-module/components/pattern-modal/duplicate.js +0 -62
  827. package/build-module/components/pattern-modal/duplicate.js.map +0 -1
  828. package/build-module/components/pattern-modal/index.js +0 -14
  829. package/build-module/components/pattern-modal/index.js.map +0 -1
  830. package/build-module/components/pattern-modal/rename.js +0 -37
  831. package/build-module/components/pattern-modal/rename.js.map +0 -1
  832. package/build-module/components/rename-post-menu-item/index.js +0 -102
  833. package/build-module/components/rename-post-menu-item/index.js.map +0 -1
  834. package/build-module/components/sidebar-navigation-screen-page/index.js +0 -155
  835. package/build-module/components/sidebar-navigation-screen-page/index.js.map +0 -1
  836. package/build-module/components/sidebar-navigation-screen-page/page-details.js +0 -120
  837. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +0 -1
  838. package/build-module/components/sidebar-navigation-screen-page/status-label.js +0 -57
  839. package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +0 -1
  840. package/build-module/components/sidebar-navigation-screen-pattern/index.js +0 -59
  841. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +0 -1
  842. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +0 -30
  843. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +0 -1
  844. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js +0 -20
  845. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js.map +0 -1
  846. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +0 -29
  847. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +0 -1
  848. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +0 -36
  849. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +0 -1
  850. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +0 -80
  851. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +0 -1
  852. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +0 -22
  853. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +0 -1
  854. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +0 -130
  855. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +0 -1
  856. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +0 -103
  857. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +0 -1
  858. package/build-module/components/sidebar-navigation-screen-template/index.js +0 -113
  859. package/build-module/components/sidebar-navigation-screen-template/index.js.map +0 -1
  860. package/build-module/components/sidebar-navigation-screen-template/template-areas.js +0 -109
  861. package/build-module/components/sidebar-navigation-screen-template/template-areas.js.map +0 -1
  862. package/build-module/components/template-actions/index.js +0 -123
  863. package/build-module/components/template-actions/index.js.map +0 -1
  864. package/build-module/hooks/components.js +0 -7
  865. package/build-module/hooks/components.js.map +0 -1
  866. package/build-module/utils/get-is-list-page.js +0 -22
  867. package/build-module/utils/get-is-list-page.js.map +0 -1
  868. package/src/components/block-editor/editor-canvas.js +0 -158
  869. package/src/components/block-editor/resizable-editor.js +0 -82
  870. package/src/components/block-editor/resize-handle.js +0 -66
  871. package/src/components/block-editor/site-editor-canvas.js +0 -107
  872. package/src/components/code-editor/index.js +0 -94
  873. package/src/components/code-editor/style.scss +0 -95
  874. package/src/components/create-template-part-modal/index.js +0 -199
  875. package/src/components/create-template-part-modal/style.scss +0 -69
  876. package/src/components/header-edit-mode/index.js +0 -51
  877. package/src/components/header-edit-mode/style.scss +0 -3
  878. package/src/components/page-patterns/dataviews-pattern-actions.js +0 -350
  879. package/src/components/pattern-modal/duplicate.js +0 -55
  880. package/src/components/pattern-modal/index.js +0 -19
  881. package/src/components/pattern-modal/rename.js +0 -30
  882. package/src/components/rename-post-menu-item/index.js +0 -138
  883. package/src/components/sidebar-navigation-screen-page/index.js +0 -204
  884. package/src/components/sidebar-navigation-screen-page/page-details.js +0 -161
  885. package/src/components/sidebar-navigation-screen-page/status-label.js +0 -71
  886. package/src/components/sidebar-navigation-screen-page/style.scss +0 -69
  887. package/src/components/sidebar-navigation-screen-pattern/index.js +0 -57
  888. package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -26
  889. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +0 -31
  890. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js +0 -21
  891. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +0 -33
  892. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +0 -36
  893. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +0 -98
  894. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +0 -32
  895. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +0 -205
  896. package/src/components/sidebar-navigation-screen-template/home-template-details.js +0 -144
  897. package/src/components/sidebar-navigation-screen-template/index.js +0 -134
  898. package/src/components/sidebar-navigation-screen-template/style.scss +0 -53
  899. package/src/components/sidebar-navigation-screen-template/template-areas.js +0 -135
  900. package/src/components/template-actions/index.js +0 -165
  901. package/src/hooks/components.js +0 -11
  902. package/src/utils/get-is-list-page.js +0 -23
  903. package/src/utils/test/template-part-create.js +0 -63
  904. /package/src/components/{header-edit-mode/more-menu → more-menu}/site-export.js +0 -0
  905. /package/src/components/{header-edit-mode/more-menu → more-menu}/welcome-guide-menu-item.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalUseNavigator","useNavigator","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Flex","Notice","privateApis","componentsPrivateApis","store","coreStore","useSelect","useContext","useEffect","useState","__","sprintf","chevronLeft","unlock","FontLibraryContext","FontCard","LibraryFontVariant","sortFontFaces","ProgressBar","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamiliesHasChanges","notice","setNotice","fontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","customFontFamilyId","source","id","canUserDelete","select","canUser","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","getFontCardVariantsText","variantsInstalled","variantsActive","slug","createElement","className","Fragment","initialPath","path","spacing","status","type","onRemove","message","role","map","key","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","justify","icon","size","label","level","name","margin","face","i","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","cancelButtonText","confirmButtonText","onCancel","onConfirm"],"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\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { 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';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tfontFamiliesHasChanges,\n\t\tnotice,\n\t\tsetNotice,\n\t\tfontFamilies,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\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={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'/fontFamily'\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\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={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'/fontFamily'\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\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__tabpanel-layout__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\t__experimentalIsFocusable\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>\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":["Button","__experimentalConfirmDialog","ConfirmDialog","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalUseNavigator","useNavigator","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Flex","Notice","ProgressBar","useEntityRecord","store","coreStore","useSelect","useContext","useEffect","useState","__","sprintf","chevronLeft","privateApis","blockEditorPrivateApis","FontLibraryContext","FontCard","LibraryFontVariant","sortFontFaces","setUIValuesNeeded","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","InstalledFonts","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","notice","setNotice","fontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","baseFontFamilies","undefined","globalStylesId","select","__experimentalGetCurrentGlobalStylesId","globalStyles","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","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","getFontCardVariantsText","variantsInstalled","variantsActive","className","children","initialPath","path","spacing","status","type","onRemove","message","role","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","justify","icon","size","label","level","margin","face","i","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","cancelButtonText","confirmButtonText","onCancel","onConfirm"],"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__tabpanel-layout__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\t__experimentalIsFocusable\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>\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,4 +1,3 @@
1
- import { createElement, Fragment } from "react";
2
1
  /**
3
2
  * WordPress dependencies
4
3
  */
@@ -9,6 +8,9 @@ import { __experimentalVStack as VStack, __experimentalSpacer as Spacer } from '
9
8
  */
10
9
  import LibraryFontVariant from './library-font-variant';
11
10
  import { sortFontFaces } from './utils/sort-font-faces';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ import { jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { Fragment as _Fragment } from "react/jsx-runtime";
12
14
  function LibraryFontDetails({
13
15
  font
14
16
  }) {
@@ -17,19 +19,21 @@ function LibraryFontDetails({
17
19
  fontStyle: 'normal',
18
20
  fontWeight: '400'
19
21
  }];
20
- return createElement(Fragment, null, createElement(Spacer, {
21
- margin: 4
22
- }), createElement(VStack, {
23
- spacing: 0
24
- }, createElement(Spacer, {
25
- margin: 8
26
- }), fontFaces.map((face, i) => createElement(LibraryFontVariant, {
27
- font: font,
28
- face: face,
29
- key: `face${i}`
30
- }))), createElement(Spacer, {
31
- margin: 8
32
- }));
22
+ return /*#__PURE__*/_jsxs(_Fragment, {
23
+ children: [/*#__PURE__*/_jsx(Spacer, {
24
+ margin: 4
25
+ }), /*#__PURE__*/_jsxs(VStack, {
26
+ spacing: 0,
27
+ children: [/*#__PURE__*/_jsx(Spacer, {
28
+ margin: 8
29
+ }), fontFaces.map((face, i) => /*#__PURE__*/_jsx(LibraryFontVariant, {
30
+ font: font,
31
+ face: face
32
+ }, `face${i}`))]
33
+ }), /*#__PURE__*/_jsx(Spacer, {
34
+ margin: 8
35
+ })]
36
+ });
33
37
  }
34
38
  export default LibraryFontDetails;
35
39
  //# sourceMappingURL=library-font-details.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","__experimentalSpacer","Spacer","LibraryFontVariant","sortFontFaces","LibraryFontDetails","font","fontFaces","fontFace","length","fontFamily","fontStyle","fontWeight","createElement","Fragment","margin","spacing","map","face","i","key"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\n\nfunction LibraryFontDetails( { font } ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? sortFontFaces( font.fontFace )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default LibraryFontDetails;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;;AAE9B;AACA;AACA;AACA,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,SAASC,aAAa,QAAQ,yBAAyB;AAEvD,SAASC,kBAAkBA,CAAE;EAAEC;AAAK,CAAC,EAAG;EACvC,MAAMC,SAAS,GACdD,IAAI,CAACE,QAAQ,IAAIF,IAAI,CAACE,QAAQ,CAACC,MAAM,GAClCL,aAAa,CAAEE,IAAI,CAACE,QAAS,CAAC,GAC9B,CACA;IACCE,UAAU,EAAEJ,IAAI,CAACI,UAAU;IAC3BC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE;EACb,CAAC,CACA;EAEL,OACCC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACX,MAAM;IAACa,MAAM,EAAG;EAAG,CAAE,CAAC,EACvBF,aAAA,CAACb,MAAM;IAACgB,OAAO,EAAG;EAAG,GACpBH,aAAA,CAACX,MAAM;IAACa,MAAM,EAAG;EAAG,CAAE,CAAC,EACrBR,SAAS,CAACU,GAAG,CAAE,CAAEC,IAAI,EAAEC,CAAC,KACzBN,aAAA,CAACV,kBAAkB;IAClBG,IAAI,EAAGA,IAAM;IACbY,IAAI,EAAGA,IAAM;IACbE,GAAG,EAAI,OAAOD,CAAG;EAAG,CACpB,CACA,CACK,CAAC,EACTN,aAAA,CAACX,MAAM;IAACa,MAAM,EAAG;EAAG,CAAE,CACrB,CAAC;AAEL;AAEA,eAAeV,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalVStack","VStack","__experimentalSpacer","Spacer","LibraryFontVariant","sortFontFaces","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","LibraryFontDetails","font","fontFaces","fontFace","length","fontFamily","fontStyle","fontWeight","children","margin","spacing","map","face","i"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\n\nfunction LibraryFontDetails( { font } ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? sortFontFaces( font.fontFace )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default LibraryFontDetails;\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;;AAE9B;AACA;AACA;AACA,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,SAASC,aAAa,QAAQ,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAExD,SAASC,kBAAkBA,CAAE;EAAEC;AAAK,CAAC,EAAG;EACvC,MAAMC,SAAS,GACdD,IAAI,CAACE,QAAQ,IAAIF,IAAI,CAACE,QAAQ,CAACC,MAAM,GAClCX,aAAa,CAAEQ,IAAI,CAACE,QAAS,CAAC,GAC9B,CACA;IACCE,UAAU,EAAEJ,IAAI,CAACI,UAAU;IAC3BC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE;EACb,CAAC,CACA;EAEL,oBACCV,KAAA,CAAAE,SAAA;IAAAS,QAAA,gBACCb,IAAA,CAACJ,MAAM;MAACkB,MAAM,EAAG;IAAG,CAAE,CAAC,eACvBZ,KAAA,CAACR,MAAM;MAACqB,OAAO,EAAG,CAAG;MAAAF,QAAA,gBACpBb,IAAA,CAACJ,MAAM;QAACkB,MAAM,EAAG;MAAG,CAAE,CAAC,EACrBP,SAAS,CAACS,GAAG,CAAE,CAAEC,IAAI,EAAEC,CAAC,kBACzBlB,IAAA,CAACH,kBAAkB;QAClBS,IAAI,EAAGA,IAAM;QACbW,IAAI,EAAGA;MAAM,GACN,OAAOC,CAAG,EACjB,CACA,CAAC;IAAA,CACI,CAAC,eACTlB,IAAA,CAACJ,MAAM;MAACkB,MAAM,EAAG;IAAG,CAAE,CAAC;EAAA,CACtB,CAAC;AAEL;AAEA,eAAeT,kBAAkB","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import { createElement } from "react";
2
1
  /**
3
2
  * WordPress dependencies
4
3
  */
@@ -12,6 +11,11 @@ import { getFontFaceVariantName } from './utils';
12
11
  import { FontLibraryContext } from './context';
13
12
  import FontDemo from './font-demo';
14
13
  import { unlock } from '../../../lock-unlock';
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ import { jsxs as _jsxs } from "react/jsx-runtime";
16
+ const {
17
+ kebabCase
18
+ } = unlock(componentsPrivateApis);
15
19
  function LibraryFontVariant({
16
20
  face,
17
21
  font
@@ -29,28 +33,28 @@ function LibraryFontVariant({
29
33
  toggleActivateFont(font);
30
34
  };
31
35
  const displayName = font.name + ' ' + getFontFaceVariantName(face);
32
- const {
33
- kebabCase
34
- } = unlock(componentsPrivateApis);
35
36
  const checkboxId = kebabCase(`${font.slug}-${getFontFaceVariantName(face)}`);
36
- return createElement("div", {
37
- className: "font-library-modal__font-card"
38
- }, createElement(Flex, {
39
- justify: "flex-start",
40
- align: "center",
41
- gap: "1rem"
42
- }, createElement(CheckboxControl, {
43
- checked: isInstalled,
44
- onChange: handleToggleActivation,
45
- __nextHasNoMarginBottom: true,
46
- id: checkboxId
47
- }), createElement("label", {
48
- htmlFor: checkboxId
49
- }, createElement(FontDemo, {
50
- font: face,
51
- text: displayName,
52
- onClick: handleToggleActivation
53
- }))));
37
+ return /*#__PURE__*/_jsx("div", {
38
+ className: "font-library-modal__font-card",
39
+ children: /*#__PURE__*/_jsxs(Flex, {
40
+ justify: "flex-start",
41
+ align: "center",
42
+ gap: "1rem",
43
+ children: [/*#__PURE__*/_jsx(CheckboxControl, {
44
+ checked: isInstalled,
45
+ onChange: handleToggleActivation,
46
+ __nextHasNoMarginBottom: true,
47
+ id: checkboxId
48
+ }), /*#__PURE__*/_jsx("label", {
49
+ htmlFor: checkboxId,
50
+ children: /*#__PURE__*/_jsx(FontDemo, {
51
+ font: face,
52
+ text: displayName,
53
+ onClick: handleToggleActivation
54
+ })
55
+ })]
56
+ })
57
+ });
54
58
  }
55
59
  export default LibraryFontVariant;
56
60
  //# sourceMappingURL=library-font-variant.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","CheckboxControl","Flex","privateApis","componentsPrivateApis","getFontFaceVariantName","FontLibraryContext","FontDemo","unlock","LibraryFontVariant","face","font","isFontActivated","toggleActivateFont","isInstalled","fontFace","length","slug","fontStyle","fontWeight","source","handleToggleActivation","displayName","name","kebabCase","checkboxId","createElement","className","justify","align","gap","checked","onChange","__nextHasNoMarginBottom","id","htmlFor","text","onClick"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport { FontLibraryContext } from './context';\nimport FontDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nfunction LibraryFontVariant( { face, font } ) {\n\tconst { isFontActivated, toggleActivateFont } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst isInstalled =\n\t\tfont?.fontFace?.length > 0\n\t\t\t? isFontActivated(\n\t\t\t\t\tfont.slug,\n\t\t\t\t\tface.fontStyle,\n\t\t\t\t\tface.fontWeight,\n\t\t\t\t\tfont.source\n\t\t\t )\n\t\t\t: isFontActivated( font.slug, null, null, font.source );\n\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace?.length > 0 ) {\n\t\t\ttoggleActivateFont( font, face );\n\t\t\treturn;\n\t\t}\n\t\ttoggleActivateFont( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<div className=\"font-library-modal__font-card\">\n\t\t\t<Flex justify=\"flex-start\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ isInstalled }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t/>\n\t\t\t\t<label htmlFor={ checkboxId }>\n\t\t\t\t\t<FontDemo\n\t\t\t\t\t\tfont={ face }\n\t\t\t\t\t\ttext={ displayName }\n\t\t\t\t\t\tonClick={ handleToggleActivation }\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default LibraryFontVariant;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,oBAAoB;AAC/C,SACCC,eAAe,EACfC,IAAI,EACJC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;;AAE9B;AACA;AACA;AACA,SAASC,sBAAsB,QAAQ,SAAS;AAChD,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,SAASC,kBAAkBA,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAmB,CAAC,GAC5Cb,UAAU,CAAEM,kBAAmB,CAAC;EAEjC,MAAMQ,WAAW,GAChBH,IAAI,EAAEI,QAAQ,EAAEC,MAAM,GAAG,CAAC,GACvBJ,eAAe,CACfD,IAAI,CAACM,IAAI,EACTP,IAAI,CAACQ,SAAS,EACdR,IAAI,CAACS,UAAU,EACfR,IAAI,CAACS,MACL,CAAC,GACDR,eAAe,CAAED,IAAI,CAACM,IAAI,EAAE,IAAI,EAAE,IAAI,EAAEN,IAAI,CAACS,MAAO,CAAC;EAEzD,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACpC,IAAKV,IAAI,EAAEI,QAAQ,EAAEC,MAAM,GAAG,CAAC,EAAG;MACjCH,kBAAkB,CAAEF,IAAI,EAAED,IAAK,CAAC;MAChC;IACD;IACAG,kBAAkB,CAAEF,IAAK,CAAC;EAC3B,CAAC;EAED,MAAMW,WAAW,GAAGX,IAAI,CAACY,IAAI,GAAG,GAAG,GAAGlB,sBAAsB,CAAEK,IAAK,CAAC;EACpE,MAAM;IAAEc;EAAU,CAAC,GAAGhB,MAAM,CAAEJ,qBAAsB,CAAC;EACrD,MAAMqB,UAAU,GAAGD,SAAS,CAC1B,GAAGb,IAAI,CAACM,IAAM,IAAIZ,sBAAsB,CAAEK,IAAK,CAAG,EACpD,CAAC;EAED,OACCgB,aAAA;IAAKC,SAAS,EAAC;EAA+B,GAC7CD,aAAA,CAACxB,IAAI;IAAC0B,OAAO,EAAC,YAAY;IAACC,KAAK,EAAC,QAAQ;IAACC,GAAG,EAAC;EAAM,GACnDJ,aAAA,CAACzB,eAAe;IACf8B,OAAO,EAAGjB,WAAa;IACvBkB,QAAQ,EAAGX,sBAAwB;IACnCY,uBAAuB;IACvBC,EAAE,EAAGT;EAAY,CACjB,CAAC,EACFC,aAAA;IAAOS,OAAO,EAAGV;EAAY,GAC5BC,aAAA,CAACnB,QAAQ;IACRI,IAAI,EAAGD,IAAM;IACb0B,IAAI,EAAGd,WAAa;IACpBe,OAAO,EAAGhB;EAAwB,CAClC,CACK,CACF,CACF,CAAC;AAER;AAEA,eAAeZ,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["useContext","CheckboxControl","Flex","privateApis","componentsPrivateApis","getFontFaceVariantName","FontLibraryContext","FontDemo","unlock","jsx","_jsx","jsxs","_jsxs","kebabCase","LibraryFontVariant","face","font","isFontActivated","toggleActivateFont","isInstalled","fontFace","length","slug","fontStyle","fontWeight","source","handleToggleActivation","displayName","name","checkboxId","className","children","justify","align","gap","checked","onChange","__nextHasNoMarginBottom","id","htmlFor","text","onClick"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport { FontLibraryContext } from './context';\nimport FontDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nconst { kebabCase } = unlock( componentsPrivateApis );\n\nfunction LibraryFontVariant( { face, font } ) {\n\tconst { isFontActivated, toggleActivateFont } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst isInstalled =\n\t\tfont?.fontFace?.length > 0\n\t\t\t? isFontActivated(\n\t\t\t\t\tfont.slug,\n\t\t\t\t\tface.fontStyle,\n\t\t\t\t\tface.fontWeight,\n\t\t\t\t\tfont.source\n\t\t\t )\n\t\t\t: isFontActivated( font.slug, null, null, font.source );\n\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace?.length > 0 ) {\n\t\t\ttoggleActivateFont( font, face );\n\t\t\treturn;\n\t\t}\n\t\ttoggleActivateFont( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<div className=\"font-library-modal__font-card\">\n\t\t\t<Flex justify=\"flex-start\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ isInstalled }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t/>\n\t\t\t\t<label htmlFor={ checkboxId }>\n\t\t\t\t\t<FontDemo\n\t\t\t\t\t\tfont={ face }\n\t\t\t\t\t\ttext={ displayName }\n\t\t\t\t\t\tonClick={ handleToggleActivation }\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default LibraryFontVariant;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,oBAAoB;AAC/C,SACCC,eAAe,EACfC,IAAI,EACJC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;;AAE9B;AACA;AACA;AACA,SAASC,sBAAsB,QAAQ,SAAS;AAChD,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,MAAM,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,MAAM,CAAEJ,qBAAsB,CAAC;AAErD,SAASU,kBAAkBA,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAmB,CAAC,GAC5ClB,UAAU,CAAEM,kBAAmB,CAAC;EAEjC,MAAMa,WAAW,GAChBH,IAAI,EAAEI,QAAQ,EAAEC,MAAM,GAAG,CAAC,GACvBJ,eAAe,CACfD,IAAI,CAACM,IAAI,EACTP,IAAI,CAACQ,SAAS,EACdR,IAAI,CAACS,UAAU,EACfR,IAAI,CAACS,MACL,CAAC,GACDR,eAAe,CAAED,IAAI,CAACM,IAAI,EAAE,IAAI,EAAE,IAAI,EAAEN,IAAI,CAACS,MAAO,CAAC;EAEzD,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACpC,IAAKV,IAAI,EAAEI,QAAQ,EAAEC,MAAM,GAAG,CAAC,EAAG;MACjCH,kBAAkB,CAAEF,IAAI,EAAED,IAAK,CAAC;MAChC;IACD;IACAG,kBAAkB,CAAEF,IAAK,CAAC;EAC3B,CAAC;EAED,MAAMW,WAAW,GAAGX,IAAI,CAACY,IAAI,GAAG,GAAG,GAAGvB,sBAAsB,CAAEU,IAAK,CAAC;EACpE,MAAMc,UAAU,GAAGhB,SAAS,CAC1B,GAAGG,IAAI,CAACM,IAAM,IAAIjB,sBAAsB,CAAEU,IAAK,CAAG,EACpD,CAAC;EAED,oBACCL,IAAA;IAAKoB,SAAS,EAAC,+BAA+B;IAAAC,QAAA,eAC7CnB,KAAA,CAACV,IAAI;MAAC8B,OAAO,EAAC,YAAY;MAACC,KAAK,EAAC,QAAQ;MAACC,GAAG,EAAC,MAAM;MAAAH,QAAA,gBACnDrB,IAAA,CAACT,eAAe;QACfkC,OAAO,EAAGhB,WAAa;QACvBiB,QAAQ,EAAGV,sBAAwB;QACnCW,uBAAuB;QACvBC,EAAE,EAAGT;MAAY,CACjB,CAAC,eACFnB,IAAA;QAAO6B,OAAO,EAAGV,UAAY;QAAAE,QAAA,eAC5BrB,IAAA,CAACH,QAAQ;UACRS,IAAI,EAAGD,IAAM;UACbyB,IAAI,EAAGb,WAAa;UACpBc,OAAO,EAAGf;QAAwB,CAClC;MAAC,CACI,CAAC;IAAA,CACH;EAAC,CACH,CAAC;AAER;AAEA,eAAeZ,kBAAkB","ignoreList":[]}
@@ -1,9 +1,8 @@
1
- import { createElement } from "react";
2
1
  /**
3
2
  * WordPress dependencies
4
3
  */
5
4
  import { __ } from '@wordpress/i18n';
6
- import { __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Button, DropZone, Notice, FormFileUpload, FlexItem, privateApis as componentsPrivateApis } from '@wordpress/components';
5
+ import { __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Button, DropZone, Notice, FormFileUpload, FlexItem, ProgressBar } from '@wordpress/components';
7
6
  import { useContext, useState } from '@wordpress/element';
8
7
 
9
8
  /**
@@ -14,10 +13,8 @@ import { FontLibraryContext } from './context';
14
13
  import { Font } from '../../../../lib/lib-font.browser';
15
14
  import makeFamiliesFromFaces from './utils/make-families-from-faces';
16
15
  import { loadFontFaceInBrowser } from './utils';
17
- import { unlock } from '../../../lock-unlock';
18
- const {
19
- ProgressBar
20
- } = unlock(componentsPrivateApis);
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ import { jsxs as _jsxs } from "react/jsx-runtime";
21
18
  function UploadFonts() {
22
19
  const {
23
20
  installFonts,
@@ -169,35 +166,45 @@ function UploadFonts() {
169
166
  }
170
167
  setIsUploading(false);
171
168
  };
172
- return createElement("div", {
173
- className: "font-library-modal__tabpanel-layout"
174
- }, createElement(DropZone, {
175
- onFilesDrop: handleDropZone
176
- }), createElement(VStack, {
177
- className: "font-library-modal__local-fonts"
178
- }, notice && createElement(Notice, {
179
- status: notice.type,
180
- __unstableHTML: true,
181
- onRemove: () => setNotice(null)
182
- }, notice.message, notice.errors && createElement("ul", null, notice.errors.map((error, index) => createElement("li", {
183
- key: index
184
- }, error)))), isUploading && createElement(FlexItem, null, createElement("div", {
185
- className: "font-library-modal__upload-area"
186
- }, createElement(ProgressBar, null))), !isUploading && createElement(FormFileUpload, {
187
- accept: ALLOWED_FILE_EXTENSIONS.map(ext => `.${ext}`).join(','),
188
- multiple: true,
189
- onChange: onFilesUpload,
190
- render: ({
191
- openFileDialog
192
- }) => createElement(Button, {
193
- className: "font-library-modal__upload-area",
194
- onClick: openFileDialog
195
- }, __('Upload font'))
196
- }), createElement(Spacer, {
197
- margin: 2
198
- }), createElement(Text, {
199
- className: "font-library-modal__upload-area__text"
200
- }, __('Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'))));
169
+ return /*#__PURE__*/_jsxs("div", {
170
+ className: "font-library-modal__tabpanel-layout",
171
+ children: [/*#__PURE__*/_jsx(DropZone, {
172
+ onFilesDrop: handleDropZone
173
+ }), /*#__PURE__*/_jsxs(VStack, {
174
+ className: "font-library-modal__local-fonts",
175
+ children: [notice && /*#__PURE__*/_jsxs(Notice, {
176
+ status: notice.type,
177
+ __unstableHTML: true,
178
+ onRemove: () => setNotice(null),
179
+ children: [notice.message, notice.errors && /*#__PURE__*/_jsx("ul", {
180
+ children: notice.errors.map((error, index) => /*#__PURE__*/_jsx("li", {
181
+ children: error
182
+ }, index))
183
+ })]
184
+ }), isUploading && /*#__PURE__*/_jsx(FlexItem, {
185
+ children: /*#__PURE__*/_jsx("div", {
186
+ className: "font-library-modal__upload-area",
187
+ children: /*#__PURE__*/_jsx(ProgressBar, {})
188
+ })
189
+ }), !isUploading && /*#__PURE__*/_jsx(FormFileUpload, {
190
+ accept: ALLOWED_FILE_EXTENSIONS.map(ext => `.${ext}`).join(','),
191
+ multiple: true,
192
+ onChange: onFilesUpload,
193
+ render: ({
194
+ openFileDialog
195
+ }) => /*#__PURE__*/_jsx(Button, {
196
+ className: "font-library-modal__upload-area",
197
+ onClick: openFileDialog,
198
+ children: __('Upload font')
199
+ })
200
+ }), /*#__PURE__*/_jsx(Spacer, {
201
+ margin: 2
202
+ }), /*#__PURE__*/_jsx(Text, {
203
+ className: "font-library-modal__upload-area__text",
204
+ children: __('Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.')
205
+ })]
206
+ })]
207
+ });
201
208
  }
202
209
  export default UploadFonts;
203
210
  //# sourceMappingURL=upload-fonts.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Button","DropZone","Notice","FormFileUpload","FlexItem","privateApis","componentsPrivateApis","useContext","useState","ALLOWED_FILE_EXTENSIONS","FontLibraryContext","Font","makeFamiliesFromFaces","loadFontFaceInBrowser","unlock","ProgressBar","UploadFonts","installFonts","notice","setNotice","isUploading","setIsUploading","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","handleInstall","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","errors","installationErrors","createElement","className","onFilesDrop","status","__unstableHTML","onRemove","index","key","accept","ext","join","multiple","onChange","render","openFileDialog","onClick","margin"],"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\tprivateApis as componentsPrivateApis,\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';\nimport { unlock } from '../../../lock-unlock';\n\nconst { ProgressBar } = unlock( componentsPrivateApis );\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":["__","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Button","DropZone","Notice","FormFileUpload","FlexItem","ProgressBar","useContext","useState","ALLOWED_FILE_EXTENSIONS","FontLibraryContext","Font","makeFamiliesFromFaces","loadFontFaceInBrowser","jsx","_jsx","jsxs","_jsxs","UploadFonts","installFonts","notice","setNotice","isUploading","setIsUploading","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","handleInstall","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","errors","installationErrors","className","children","onFilesDrop","status","__unstableHTML","onRemove","index","accept","ext","join","multiple","onChange","render","openFileDialog","onClick","margin"],"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":[]}
@@ -17,6 +17,9 @@ import { formatFontFaceName } from './preview-styles';
17
17
  const {
18
18
  File
19
19
  } = window;
20
+ const {
21
+ kebabCase
22
+ } = unlock(componentsPrivateApis);
20
23
  export function setUIValuesNeeded(font, extraValues = {}) {
21
24
  if (!font.name && (font.fontFamily || font.slug)) {
22
25
  font.name = font.fontFamily || font.slug;
@@ -161,9 +164,6 @@ export function getDisplaySrcFromFontFace(input) {
161
164
  }
162
165
  export function makeFontFamilyFormData(fontFamily) {
163
166
  const formData = new FormData();
164
- const {
165
- kebabCase
166
- } = unlock(componentsPrivateApis);
167
167
  const {
168
168
  fontFace,
169
169
  category,
@@ -1 +1 @@
1
- {"version":3,"names":["privateApis","componentsPrivateApis","FONT_WEIGHTS","FONT_STYLES","unlock","fetchInstallFontFace","formatFontFaceName","File","window","setUIValuesNeeded","font","extraValues","name","fontFamily","slug","isUrlEncoded","url","decodeURIComponent","getFontFaceVariantName","face","weightName","fontWeight","styleName","fontStyle","mergeFontFaces","existing","incoming","map","Map","set","Array","from","values","mergeFontFamilies","has","fontFace","incomingFontFaces","restIncoming","existingFont","get","mergedFontFaces","loadFontFaceInBrowser","source","addTo","dataSource","arrayBuffer","newFont","FontFace","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","unloadFontFaceInBrowser","removeFrom","unloadFontFace","forEach","f","family","delete","getDisplaySrcFromFontFace","input","src","isArray","startsWith","encodeURI","makeFontFamilyFormData","formData","FormData","kebabCase","category","familyWithValidParameters","fontFamilySettings","append","JSON","stringify","makeFontFacesFormData","fontFacesFormData","item","faceIndex","file","files","key","fileId","push","length","batchInstallFontFaces","fontFamilyId","fontFacesData","responses","faceData","response","status","value","error","reason","results","errors","successes","result","index","id","data","message","downloadFontFaceAssets","Promise","all","fetch","Request","then","ok","Error","blob","filename","split","pop","type","checkFontFaceInstalled","collection","findIndex","collectionFontFace"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { unlock } from '../../../../lock-unlock';\nimport { fetchInstallFontFace } from '../resolvers';\nimport { formatFontFaceName } from './preview-styles';\n\n/**\n * Browser dependencies\n */\nconst { File } = window;\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t} else {\n\t\treturn;\n\t}\n\n\tconst newFont = new window.FontFace(\n\t\tformatFontFaceName( fontFace.fontFamily ),\n\t\tdataSource,\n\t\t{\n\t\t\tstyle: fontFace.fontStyle,\n\t\t\tweight: fontFace.fontWeight,\n\t\t}\n\t);\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\n/*\n * Unloads the font face and remove it from the browser.\n * It also removes it from the iframe document.\n *\n * Note that Font faces that were added to the set using the CSS @font-face rule\n * remain connected to the corresponding CSS, and cannot be deleted.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet/delete.\n */\nexport function unloadFontFaceInBrowser( fontFace, removeFrom = 'all' ) {\n\tconst unloadFontFace = ( fonts ) => {\n\t\tfonts.forEach( ( f ) => {\n\t\t\tif (\n\t\t\t\tf.family === formatFontFaceName( fontFace?.fontFamily ) &&\n\t\t\t\tf.weight === fontFace?.fontWeight &&\n\t\t\t\tf.style === fontFace?.fontStyle\n\t\t\t) {\n\t\t\t\tfonts.delete( f );\n\t\t\t}\n\t\t} );\n\t};\n\n\tif ( removeFrom === 'document' || removeFrom === 'all' ) {\n\t\tunloadFontFace( document.fonts );\n\t}\n\n\tif ( removeFrom === 'iframe' || removeFrom === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tunloadFontFace( iframeDocument.fonts );\n\t}\n}\n\n/**\n * Retrieves the display source from a font face src.\n *\n * @param {string|string[]} input - The font face src.\n * @return {string|undefined} The display source or undefined if the input is invalid.\n */\nexport function getDisplaySrcFromFontFace( input ) {\n\tif ( ! input ) {\n\t\treturn;\n\t}\n\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// It's expected theme fonts will already be loaded in the browser.\n\tif ( src.startsWith( 'file:.' ) ) {\n\t\treturn;\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFontFamilyFormData( fontFamily ) {\n\tconst formData = new FormData();\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\n\tconst { fontFace, category, ...familyWithValidParameters } = fontFamily;\n\tconst fontFamilySettings = {\n\t\t...familyWithValidParameters,\n\t\tslug: kebabCase( fontFamily.slug ),\n\t};\n\n\tformData.append(\n\t\t'font_family_settings',\n\t\tJSON.stringify( fontFamilySettings )\n\t);\n\treturn formData;\n}\n\nexport function makeFontFacesFormData( font ) {\n\tif ( font?.fontFace ) {\n\t\tconst fontFacesFormData = font.fontFace.map( ( item, faceIndex ) => {\n\t\t\tconst face = { ...item };\n\t\t\tconst formData = new FormData();\n\t\t\tif ( face.file ) {\n\t\t\t\t// Normalize to an array, since face.file may be a single file or an array of files.\n\t\t\t\tconst files = Array.isArray( face.file )\n\t\t\t\t\t? face.file\n\t\t\t\t\t: [ face.file ];\n\t\t\t\tconst src = [];\n\n\t\t\t\tfiles.forEach( ( file, key ) => {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ faceIndex }-${ key }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, file, file.name );\n\t\t\t\t\tsrc.push( fileId );\n\t\t\t\t} );\n\n\t\t\t\tface.src = src.length === 1 ? src[ 0 ] : src;\n\t\t\t\tdelete face.file;\n\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t} else {\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t}\n\t\t\treturn formData;\n\t\t} );\n\n\t\treturn fontFacesFormData;\n\t}\n}\n\nexport async function batchInstallFontFaces( fontFamilyId, fontFacesData ) {\n\tconst responses = [];\n\n\t/*\n\t * Uses the same response format as Promise.allSettled, but executes requests in sequence to work\n\t * around a race condition that can cause an error when the fonts directory doesn't exist yet.\n\t */\n\tfor ( const faceData of fontFacesData ) {\n\t\ttry {\n\t\t\tconst response = await fetchInstallFontFace(\n\t\t\t\tfontFamilyId,\n\t\t\t\tfaceData\n\t\t\t);\n\t\t\tresponses.push( { status: 'fulfilled', value: response } );\n\t\t} catch ( error ) {\n\t\t\tresponses.push( { status: 'rejected', reason: error } );\n\t\t}\n\t}\n\n\tconst results = {\n\t\terrors: [],\n\t\tsuccesses: [],\n\t};\n\n\tresponses.forEach( ( result, index ) => {\n\t\tif ( result.status === 'fulfilled' ) {\n\t\t\tconst response = result.value;\n\t\t\tif ( response.id ) {\n\t\t\t\tresults.successes.push( response );\n\t\t\t} else {\n\t\t\t\tresults.errors.push( {\n\t\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\t\tmessage: `Error: ${ response.message }`,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle network errors or other fetch-related errors\n\t\t\tresults.errors.push( {\n\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\tmessage: result.reason.message,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn results;\n}\n\n/*\n * Downloads a font face asset from a URL to the client and returns a File object.\n */\nexport async function downloadFontFaceAssets( src ) {\n\t// Normalize to an array, since `src` could be a string or array.\n\tsrc = Array.isArray( src ) ? src : [ src ];\n\n\tconst files = await Promise.all(\n\t\tsrc.map( async ( url ) => {\n\t\t\treturn fetch( new Request( url ) )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response.ok ) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Error downloading font face asset from ${ url }. Server responded with status: ${ response.status }`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn response.blob();\n\t\t\t\t} )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst filename = url.split( '/' ).pop();\n\t\t\t\t\tconst file = new File( [ blob ], filename, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\t\t\t\t\treturn file;\n\t\t\t\t} );\n\t\t} )\n\t);\n\n\t// If we only have one file return it (not the array). Otherwise return all of them in the array.\n\treturn files.length === 1 ? files[ 0 ] : files;\n}\n\n/*\n * Determine if a given Font Face is present in a given collection.\n * We determine that a font face has been installed by comparing the fontWeight and fontStyle\n *\n * @param {Object} fontFace The Font Face to seek\n * @param {Array} collection The Collection to seek in\n * @returns True if the font face is found in the collection. Otherwise False.\n */\nexport function checkFontFaceInstalled( fontFace, collection ) {\n\treturn (\n\t\t-1 !==\n\t\tcollection.findIndex( ( collectionFontFace ) => {\n\t\t\treturn (\n\t\t\t\tcollectionFontFace.fontWeight === fontFace.fontWeight &&\n\t\t\t\tcollectionFontFace.fontStyle === fontFace.fontStyle\n\t\t\t);\n\t\t} )\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["privateApis","componentsPrivateApis","FONT_WEIGHTS","FONT_STYLES","unlock","fetchInstallFontFace","formatFontFaceName","File","window","kebabCase","setUIValuesNeeded","font","extraValues","name","fontFamily","slug","isUrlEncoded","url","decodeURIComponent","getFontFaceVariantName","face","weightName","fontWeight","styleName","fontStyle","mergeFontFaces","existing","incoming","map","Map","set","Array","from","values","mergeFontFamilies","has","fontFace","incomingFontFaces","restIncoming","existingFont","get","mergedFontFaces","loadFontFaceInBrowser","source","addTo","dataSource","arrayBuffer","newFont","FontFace","style","weight","loadedFace","load","document","fonts","add","iframeDocument","querySelector","contentDocument","unloadFontFaceInBrowser","removeFrom","unloadFontFace","forEach","f","family","delete","getDisplaySrcFromFontFace","input","src","isArray","startsWith","encodeURI","makeFontFamilyFormData","formData","FormData","category","familyWithValidParameters","fontFamilySettings","append","JSON","stringify","makeFontFacesFormData","fontFacesFormData","item","faceIndex","file","files","key","fileId","push","length","batchInstallFontFaces","fontFamilyId","fontFacesData","responses","faceData","response","status","value","error","reason","results","errors","successes","result","index","id","data","message","downloadFontFaceAssets","Promise","all","fetch","Request","then","ok","Error","blob","filename","split","pop","type","checkFontFaceInstalled","collection","findIndex","collectionFontFace"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/utils/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { unlock } from '../../../../lock-unlock';\nimport { fetchInstallFontFace } from '../resolvers';\nimport { formatFontFaceName } from './preview-styles';\n\n/**\n * Browser dependencies\n */\nconst { File } = window;\nconst { kebabCase } = unlock( componentsPrivateApis );\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t} else {\n\t\treturn;\n\t}\n\n\tconst newFont = new window.FontFace(\n\t\tformatFontFaceName( fontFace.fontFamily ),\n\t\tdataSource,\n\t\t{\n\t\t\tstyle: fontFace.fontStyle,\n\t\t\tweight: fontFace.fontWeight,\n\t\t}\n\t);\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\n/*\n * Unloads the font face and remove it from the browser.\n * It also removes it from the iframe document.\n *\n * Note that Font faces that were added to the set using the CSS @font-face rule\n * remain connected to the corresponding CSS, and cannot be deleted.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet/delete.\n */\nexport function unloadFontFaceInBrowser( fontFace, removeFrom = 'all' ) {\n\tconst unloadFontFace = ( fonts ) => {\n\t\tfonts.forEach( ( f ) => {\n\t\t\tif (\n\t\t\t\tf.family === formatFontFaceName( fontFace?.fontFamily ) &&\n\t\t\t\tf.weight === fontFace?.fontWeight &&\n\t\t\t\tf.style === fontFace?.fontStyle\n\t\t\t) {\n\t\t\t\tfonts.delete( f );\n\t\t\t}\n\t\t} );\n\t};\n\n\tif ( removeFrom === 'document' || removeFrom === 'all' ) {\n\t\tunloadFontFace( document.fonts );\n\t}\n\n\tif ( removeFrom === 'iframe' || removeFrom === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tunloadFontFace( iframeDocument.fonts );\n\t}\n}\n\n/**\n * Retrieves the display source from a font face src.\n *\n * @param {string|string[]} input - The font face src.\n * @return {string|undefined} The display source or undefined if the input is invalid.\n */\nexport function getDisplaySrcFromFontFace( input ) {\n\tif ( ! input ) {\n\t\treturn;\n\t}\n\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// It's expected theme fonts will already be loaded in the browser.\n\tif ( src.startsWith( 'file:.' ) ) {\n\t\treturn;\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFontFamilyFormData( fontFamily ) {\n\tconst formData = new FormData();\n\n\tconst { fontFace, category, ...familyWithValidParameters } = fontFamily;\n\tconst fontFamilySettings = {\n\t\t...familyWithValidParameters,\n\t\tslug: kebabCase( fontFamily.slug ),\n\t};\n\n\tformData.append(\n\t\t'font_family_settings',\n\t\tJSON.stringify( fontFamilySettings )\n\t);\n\treturn formData;\n}\n\nexport function makeFontFacesFormData( font ) {\n\tif ( font?.fontFace ) {\n\t\tconst fontFacesFormData = font.fontFace.map( ( item, faceIndex ) => {\n\t\t\tconst face = { ...item };\n\t\t\tconst formData = new FormData();\n\t\t\tif ( face.file ) {\n\t\t\t\t// Normalize to an array, since face.file may be a single file or an array of files.\n\t\t\t\tconst files = Array.isArray( face.file )\n\t\t\t\t\t? face.file\n\t\t\t\t\t: [ face.file ];\n\t\t\t\tconst src = [];\n\n\t\t\t\tfiles.forEach( ( file, key ) => {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ faceIndex }-${ key }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, file, file.name );\n\t\t\t\t\tsrc.push( fileId );\n\t\t\t\t} );\n\n\t\t\t\tface.src = src.length === 1 ? src[ 0 ] : src;\n\t\t\t\tdelete face.file;\n\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t} else {\n\t\t\t\tformData.append( 'font_face_settings', JSON.stringify( face ) );\n\t\t\t}\n\t\t\treturn formData;\n\t\t} );\n\n\t\treturn fontFacesFormData;\n\t}\n}\n\nexport async function batchInstallFontFaces( fontFamilyId, fontFacesData ) {\n\tconst responses = [];\n\n\t/*\n\t * Uses the same response format as Promise.allSettled, but executes requests in sequence to work\n\t * around a race condition that can cause an error when the fonts directory doesn't exist yet.\n\t */\n\tfor ( const faceData of fontFacesData ) {\n\t\ttry {\n\t\t\tconst response = await fetchInstallFontFace(\n\t\t\t\tfontFamilyId,\n\t\t\t\tfaceData\n\t\t\t);\n\t\t\tresponses.push( { status: 'fulfilled', value: response } );\n\t\t} catch ( error ) {\n\t\t\tresponses.push( { status: 'rejected', reason: error } );\n\t\t}\n\t}\n\n\tconst results = {\n\t\terrors: [],\n\t\tsuccesses: [],\n\t};\n\n\tresponses.forEach( ( result, index ) => {\n\t\tif ( result.status === 'fulfilled' ) {\n\t\t\tconst response = result.value;\n\t\t\tif ( response.id ) {\n\t\t\t\tresults.successes.push( response );\n\t\t\t} else {\n\t\t\t\tresults.errors.push( {\n\t\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\t\tmessage: `Error: ${ response.message }`,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle network errors or other fetch-related errors\n\t\t\tresults.errors.push( {\n\t\t\t\tdata: fontFacesData[ index ],\n\t\t\t\tmessage: result.reason.message,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn results;\n}\n\n/*\n * Downloads a font face asset from a URL to the client and returns a File object.\n */\nexport async function downloadFontFaceAssets( src ) {\n\t// Normalize to an array, since `src` could be a string or array.\n\tsrc = Array.isArray( src ) ? src : [ src ];\n\n\tconst files = await Promise.all(\n\t\tsrc.map( async ( url ) => {\n\t\t\treturn fetch( new Request( url ) )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response.ok ) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Error downloading font face asset from ${ url }. Server responded with status: ${ response.status }`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn response.blob();\n\t\t\t\t} )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst filename = url.split( '/' ).pop();\n\t\t\t\t\tconst file = new File( [ blob ], filename, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\t\t\t\t\treturn file;\n\t\t\t\t} );\n\t\t} )\n\t);\n\n\t// If we only have one file return it (not the array). Otherwise return all of them in the array.\n\treturn files.length === 1 ? files[ 0 ] : files;\n}\n\n/*\n * Determine if a given Font Face is present in a given collection.\n * We determine that a font face has been installed by comparing the fontWeight and fontStyle\n *\n * @param {Object} fontFace The Font Face to seek\n * @param {Array} collection The Collection to seek in\n * @returns True if the font face is found in the collection. Otherwise False.\n */\nexport function checkFontFaceInstalled( fontFace, collection ) {\n\treturn (\n\t\t-1 !==\n\t\tcollection.findIndex( ( collectionFontFace ) => {\n\t\t\treturn (\n\t\t\t\tcollectionFontFace.fontWeight === fontFace.fontWeight &&\n\t\t\t\tcollectionFontFace.fontStyle === fontFace.fontStyle\n\t\t\t);\n\t\t} )\n\t);\n}\n"],"mappings":"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","ignoreList":[]}