@wordpress/edit-site 5.32.0 → 5.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (809) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-page/index.js.map +1 -1
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  5. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  6. package/build/components/add-new-template/index.js +282 -13
  7. package/build/components/add-new-template/index.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +22 -11
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/app/index.js.map +1 -1
  11. package/build/components/async/index.js +51 -0
  12. package/build/components/async/index.js.map +1 -0
  13. package/build/components/block-editor/block-inspector-button.js +10 -9
  14. package/build/components/block-editor/block-inspector-button.js.map +1 -1
  15. package/build/components/block-editor/editor-canvas.js +15 -6
  16. package/build/components/block-editor/editor-canvas.js.map +1 -1
  17. package/build/components/block-editor/inserter-media-categories.js.map +1 -1
  18. package/build/components/block-editor/resizable-editor.js.map +1 -1
  19. package/build/components/block-editor/resize-handle.js.map +1 -1
  20. package/build/components/block-editor/site-editor-canvas.js +5 -1
  21. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  22. package/build/components/block-editor/use-navigate-to-entity-record.js.map +1 -1
  23. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  24. package/build/components/canvas-loader/index.js.map +1 -1
  25. package/build/components/code-editor/index.js.map +1 -1
  26. package/build/components/create-template-part-modal/index.js.map +1 -1
  27. package/build/components/editor/index.js +35 -8
  28. package/build/components/editor/index.js.map +1 -1
  29. package/build/components/editor-canvas-container/index.js.map +1 -1
  30. package/build/components/error-boundary/index.js.map +1 -1
  31. package/build/components/error-boundary/warning.js.map +1 -1
  32. package/build/components/global-styles/background-panel.js +13 -1
  33. package/build/components/global-styles/background-panel.js.map +1 -1
  34. package/build/components/global-styles/block-preview-panel.js +6 -1
  35. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  36. package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
  37. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  38. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  39. package/build/components/global-styles/font-families.js +1 -1
  40. package/build/components/global-styles/font-families.js.map +1 -1
  41. package/build/components/global-styles/font-family-item.js.map +1 -1
  42. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  43. package/build/components/global-styles/font-library-modal/context.js +60 -32
  44. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  45. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  46. package/build/components/global-styles/font-library-modal/font-collection.js +11 -4
  47. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  48. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  49. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  50. package/build/components/global-styles/font-library-modal/index.js +1 -1
  51. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  52. package/build/components/global-styles/font-library-modal/installed-fonts.js +10 -9
  53. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  54. package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  55. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  56. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  57. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  58. package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  59. package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  60. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  61. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  62. package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
  63. package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  64. package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -1
  65. package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -1
  66. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  67. package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
  68. package/build/components/global-styles/header.js.map +1 -1
  69. package/build/components/global-styles/highlighted-colors.js +1 -1
  70. package/build/components/global-styles/highlighted-colors.js.map +1 -1
  71. package/build/components/global-styles/hooks.js +11 -3
  72. package/build/components/global-styles/hooks.js.map +1 -1
  73. package/build/components/global-styles/icon-with-current-color.js.map +1 -1
  74. package/build/components/global-styles/index.js.map +1 -1
  75. package/build/components/global-styles/navigation-button.js.map +1 -1
  76. package/build/components/global-styles/palette.js.map +1 -1
  77. package/build/components/global-styles/preview-colors.js.map +1 -1
  78. package/build/components/global-styles/preview-iframe.js.map +1 -1
  79. package/build/components/global-styles/preview-styles.js.map +1 -1
  80. package/build/components/global-styles/root-menu.js +2 -2
  81. package/build/components/global-styles/root-menu.js.map +1 -1
  82. package/build/components/global-styles/screen-background.js +1 -1
  83. package/build/components/global-styles/screen-background.js.map +1 -1
  84. package/build/components/global-styles/screen-block-list.js.map +1 -1
  85. package/build/components/global-styles/screen-block.js.map +1 -1
  86. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  87. package/build/components/global-styles/screen-colors.js.map +1 -1
  88. package/build/components/global-styles/screen-css.js.map +1 -1
  89. package/build/components/global-styles/screen-layout.js.map +1 -1
  90. package/build/components/global-styles/screen-revisions/index.js +1 -1
  91. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  92. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  93. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  94. package/build/components/global-styles/screen-root.js.map +1 -1
  95. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  96. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  97. package/build/components/global-styles/screen-typography.js.map +1 -1
  98. package/build/components/global-styles/style-variations-container.js.map +1 -1
  99. package/build/components/global-styles/subtitle.js.map +1 -1
  100. package/build/components/global-styles/typography-elements.js.map +1 -1
  101. package/build/components/global-styles/typography-example.js.map +1 -1
  102. package/build/components/global-styles/typography-panel.js.map +1 -1
  103. package/build/components/global-styles/typography-preview.js.map +1 -1
  104. package/build/components/global-styles/ui.js +1 -1
  105. package/build/components/global-styles/ui.js.map +1 -1
  106. package/build/components/global-styles/utils.js.map +1 -1
  107. package/build/components/global-styles/variations/variation.js.map +1 -1
  108. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  109. package/build/components/global-styles/variations/variations-panel.js.map +1 -1
  110. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  111. package/build/components/global-styles-renderer/index.js.map +1 -1
  112. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  113. package/build/components/header-edit-mode/index.js +4 -4
  114. package/build/components/header-edit-mode/index.js.map +1 -1
  115. package/build/components/header-edit-mode/more-menu/copy-content-menu-item.js.map +1 -1
  116. package/build/components/header-edit-mode/more-menu/index.js +10 -12
  117. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  118. package/build/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  119. package/build/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +1 -1
  120. package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -1
  121. package/build/components/keyboard-shortcuts/edit-mode.js +0 -23
  122. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  123. package/build/components/keyboard-shortcuts/global.js.map +1 -1
  124. package/build/components/keyboard-shortcuts/register.js +0 -18
  125. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  126. package/build/components/layout/animation.js +3 -2
  127. package/build/components/layout/animation.js.map +1 -1
  128. package/build/components/layout/hooks.js.map +1 -1
  129. package/build/components/layout/index.js +13 -48
  130. package/build/components/layout/index.js.map +1 -1
  131. package/build/components/layout/router.js +73 -7
  132. package/build/components/layout/router.js.map +1 -1
  133. package/build/components/media/index.js.map +1 -1
  134. package/build/components/page/header.js.map +1 -1
  135. package/build/components/page/index.js +5 -2
  136. package/build/components/page/index.js.map +1 -1
  137. package/build/components/page-pages/index.js +15 -17
  138. package/build/components/page-pages/index.js.map +1 -1
  139. package/build/components/page-patterns/dataviews-pattern-actions.js +5 -4
  140. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  141. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -1
  142. package/build/components/page-patterns/header.js +2 -2
  143. package/build/components/page-patterns/header.js.map +1 -1
  144. package/build/components/page-patterns/index.js +124 -17
  145. package/build/components/page-patterns/index.js.map +1 -1
  146. package/build/components/page-patterns/rename-category-menu-item.js.map +1 -1
  147. package/build/components/page-patterns/search-items.js +2 -1
  148. package/build/components/page-patterns/search-items.js.map +1 -1
  149. package/build/components/page-patterns/use-pattern-settings.js.map +1 -1
  150. package/build/components/page-patterns/use-patterns.js +5 -10
  151. package/build/components/page-patterns/use-patterns.js.map +1 -1
  152. package/build/components/page-patterns/utils.js.map +1 -1
  153. package/build/components/page-templates-template-parts/add-new-template-part.js +2 -1
  154. package/build/components/page-templates-template-parts/add-new-template-part.js.map +1 -1
  155. package/build/components/page-templates-template-parts/hooks.js.map +1 -1
  156. package/build/components/page-templates-template-parts/index.js +13 -25
  157. package/build/components/page-templates-template-parts/index.js.map +1 -1
  158. package/build/components/pagination/index.js.map +1 -1
  159. package/build/components/pattern-modal/duplicate.js +6 -3
  160. package/build/components/pattern-modal/duplicate.js.map +1 -1
  161. package/build/components/pattern-modal/index.js.map +1 -1
  162. package/build/components/pattern-modal/rename.js +6 -3
  163. package/build/components/pattern-modal/rename.js.map +1 -1
  164. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  165. package/build/components/{template-actions/rename-menu-item.js → rename-post-menu-item/index.js} +18 -16
  166. package/build/components/rename-post-menu-item/index.js.map +1 -0
  167. package/build/components/resizable-frame/index.js +1 -5
  168. package/build/components/resizable-frame/index.js.map +1 -1
  169. package/build/components/revisions/index.js.map +1 -1
  170. package/build/components/routes/link.js.map +1 -1
  171. package/build/components/routes/use-title.js.map +1 -1
  172. package/build/components/save-button/index.js.map +1 -1
  173. package/build/components/save-hub/index.js.map +1 -1
  174. package/build/components/save-panel/index.js +3 -3
  175. package/build/components/save-panel/index.js.map +1 -1
  176. package/build/components/sidebar/index.js +41 -75
  177. package/build/components/sidebar/index.js.map +1 -1
  178. package/build/components/sidebar-button/index.js.map +1 -1
  179. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  180. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  181. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  182. package/build/components/sidebar-dataviews/default-views.js +1 -1
  183. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  184. package/build/components/sidebar-dataviews/index.js +1 -1
  185. package/build/components/sidebar-dataviews/index.js.map +1 -1
  186. package/build/components/sidebar-edit-mode/default-sidebar.js +18 -7
  187. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  188. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +5 -3
  189. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  190. package/build/components/sidebar-edit-mode/index.js +29 -54
  191. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  192. package/build/components/sidebar-edit-mode/page-panels/index.js +23 -2
  193. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  194. package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  195. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  196. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -2
  197. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  198. package/build/components/sidebar-edit-mode/settings-header/index.js +4 -5
  199. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  200. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  201. package/build/components/sidebar-edit-mode/template-panel/index.js +1 -1
  202. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  203. package/build/components/sidebar-navigation-item/index.js +31 -0
  204. package/build/components/sidebar-navigation-item/index.js.map +1 -1
  205. package/build/components/sidebar-navigation-screen/index.js +36 -9
  206. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  207. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  208. package/build/components/sidebar-navigation-screen-details-panel/index.js.map +1 -1
  209. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +1 -1
  210. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  211. package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +1 -1
  212. package/build/components/sidebar-navigation-screen-global-styles/index.js +1 -2
  213. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  214. package/build/components/sidebar-navigation-screen-main/index.js +6 -15
  215. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  216. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +1 -1
  217. package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -1
  218. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +7 -2
  219. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  220. package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  221. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  222. package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  223. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
  224. package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  225. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +20 -15
  226. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  227. package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -1
  228. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
  229. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +1 -1
  230. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  231. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +6 -5
  232. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  233. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  234. package/build/components/sidebar-navigation-screen-page/index.js +22 -12
  235. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  236. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  237. package/build/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  238. package/build/components/sidebar-navigation-screen-pattern/index.js +14 -5
  239. package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  240. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  241. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js.map +1 -1
  242. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  243. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  244. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  245. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -1
  246. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  247. package/build/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  248. package/build/components/sidebar-navigation-screen-patterns/index.js +33 -27
  249. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  250. package/build/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js.map +1 -1
  251. package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  252. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  253. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  254. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  255. package/build/components/sidebar-navigation-screen-template/index.js +10 -7
  256. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  257. package/build/components/sidebar-navigation-screen-template/template-areas.js.map +1 -1
  258. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  259. package/build/components/sidebar-navigation-screen-templates-browse/index.js +6 -8
  260. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  261. package/build/components/site-hub/index.js +22 -21
  262. package/build/components/site-hub/index.js.map +1 -1
  263. package/build/components/site-icon/index.js.map +1 -1
  264. package/build/components/start-template-options/index.js.map +1 -1
  265. package/build/components/style-book/index.js.map +1 -1
  266. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +14 -5
  267. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  268. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  269. package/build/components/table/index.js.map +1 -1
  270. package/build/components/template-actions/index.js +7 -8
  271. package/build/components/template-actions/index.js.map +1 -1
  272. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  273. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  274. package/build/components/template-part-converter/index.js.map +1 -1
  275. package/build/components/use-edited-entity-record/index.js.map +1 -1
  276. package/build/components/welcome-guide/editor.js.map +1 -1
  277. package/build/components/welcome-guide/image.js.map +1 -1
  278. package/build/components/welcome-guide/index.js.map +1 -1
  279. package/build/components/welcome-guide/page.js.map +1 -1
  280. package/build/components/welcome-guide/styles.js +6 -3
  281. package/build/components/welcome-guide/styles.js.map +1 -1
  282. package/build/components/welcome-guide/template.js.map +1 -1
  283. package/build/hooks/commands/use-common-commands.js.map +1 -1
  284. package/build/hooks/commands/use-edit-mode-commands.js +10 -28
  285. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  286. package/build/hooks/components.js.map +1 -1
  287. package/build/hooks/index.js.map +1 -1
  288. package/build/hooks/push-changes-to-global-styles/index.js +3 -40
  289. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  290. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +1 -1
  291. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  292. package/build/index.js +3 -8
  293. package/build/index.js.map +1 -1
  294. package/build/lock-unlock.js.map +1 -1
  295. package/build/store/actions.js +21 -96
  296. package/build/store/actions.js.map +1 -1
  297. package/build/store/constants.js.map +1 -1
  298. package/build/store/index.js +1 -1
  299. package/build/store/index.js.map +1 -1
  300. package/build/store/private-actions.js +1 -85
  301. package/build/store/private-actions.js.map +1 -1
  302. package/build/store/private-selectors.js.map +1 -1
  303. package/build/store/reducer.js.map +1 -1
  304. package/build/store/selectors.js.map +1 -1
  305. package/build/utils/clone-deep.js.map +1 -1
  306. package/build/utils/constants.js +2 -1
  307. package/build/utils/constants.js.map +1 -1
  308. package/build/utils/get-is-list-page.js.map +1 -1
  309. package/build/utils/is-previewing-theme.js.map +1 -1
  310. package/build/utils/is-template-removable.js.map +1 -1
  311. package/build/utils/is-template-revertable.js.map +1 -1
  312. package/build/utils/math.js.map +1 -1
  313. package/build/utils/set-nested-value.js +44 -0
  314. package/build/utils/set-nested-value.js.map +1 -0
  315. package/build/utils/template-part-create.js.map +1 -1
  316. package/build/utils/use-activate-theme.js.map +1 -1
  317. package/build/utils/use-actual-current-theme.js.map +1 -1
  318. package/build-module/components/add-new-page/index.js.map +1 -1
  319. package/build-module/components/add-new-pattern/index.js.map +1 -1
  320. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  321. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  322. package/build-module/components/add-new-template/index.js +283 -14
  323. package/build-module/components/add-new-template/index.js.map +1 -1
  324. package/build-module/components/add-new-template/utils.js +21 -11
  325. package/build-module/components/add-new-template/utils.js.map +1 -1
  326. package/build-module/components/app/index.js.map +1 -1
  327. package/build-module/components/async/index.js +44 -0
  328. package/build-module/components/async/index.js.map +1 -0
  329. package/build-module/components/block-editor/block-inspector-button.js +9 -8
  330. package/build-module/components/block-editor/block-inspector-button.js.map +1 -1
  331. package/build-module/components/block-editor/editor-canvas.js +16 -7
  332. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  333. package/build-module/components/block-editor/inserter-media-categories.js.map +1 -1
  334. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  335. package/build-module/components/block-editor/resize-handle.js.map +1 -1
  336. package/build-module/components/block-editor/site-editor-canvas.js +5 -1
  337. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  338. package/build-module/components/block-editor/use-navigate-to-entity-record.js.map +1 -1
  339. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  340. package/build-module/components/canvas-loader/index.js.map +1 -1
  341. package/build-module/components/code-editor/index.js.map +1 -1
  342. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  343. package/build-module/components/editor/index.js +35 -8
  344. package/build-module/components/editor/index.js.map +1 -1
  345. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  346. package/build-module/components/error-boundary/index.js.map +1 -1
  347. package/build-module/components/error-boundary/warning.js.map +1 -1
  348. package/build-module/components/global-styles/background-panel.js +14 -1
  349. package/build-module/components/global-styles/background-panel.js.map +1 -1
  350. package/build-module/components/global-styles/block-preview-panel.js +6 -1
  351. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  352. package/build-module/components/global-styles/color-indicator-wrapper.js.map +1 -1
  353. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  354. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  355. package/build-module/components/global-styles/font-families.js.map +1 -1
  356. package/build-module/components/global-styles/font-family-item.js.map +1 -1
  357. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  358. package/build-module/components/global-styles/font-library-modal/context.js +59 -32
  359. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  360. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  361. package/build-module/components/global-styles/font-library-modal/font-collection.js +12 -5
  362. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  363. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  364. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  365. package/build-module/components/global-styles/font-library-modal/index.js +2 -2
  366. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  367. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +11 -10
  368. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  369. package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
  370. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  371. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  372. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  373. package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
  374. package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
  375. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  376. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  377. package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
  378. package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
  379. package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -1
  380. package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -1
  381. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  382. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  383. package/build-module/components/global-styles/header.js.map +1 -1
  384. package/build-module/components/global-styles/highlighted-colors.js +1 -1
  385. package/build-module/components/global-styles/highlighted-colors.js.map +1 -1
  386. package/build-module/components/global-styles/hooks.js +11 -3
  387. package/build-module/components/global-styles/hooks.js.map +1 -1
  388. package/build-module/components/global-styles/icon-with-current-color.js.map +1 -1
  389. package/build-module/components/global-styles/index.js.map +1 -1
  390. package/build-module/components/global-styles/navigation-button.js.map +1 -1
  391. package/build-module/components/global-styles/palette.js.map +1 -1
  392. package/build-module/components/global-styles/preview-colors.js.map +1 -1
  393. package/build-module/components/global-styles/preview-iframe.js.map +1 -1
  394. package/build-module/components/global-styles/preview-styles.js.map +1 -1
  395. package/build-module/components/global-styles/root-menu.js +2 -2
  396. package/build-module/components/global-styles/root-menu.js.map +1 -1
  397. package/build-module/components/global-styles/screen-background.js +1 -1
  398. package/build-module/components/global-styles/screen-background.js.map +1 -1
  399. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  400. package/build-module/components/global-styles/screen-block.js.map +1 -1
  401. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  402. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  403. package/build-module/components/global-styles/screen-css.js.map +1 -1
  404. package/build-module/components/global-styles/screen-layout.js.map +1 -1
  405. package/build-module/components/global-styles/screen-revisions/index.js +1 -1
  406. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  407. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  408. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  409. package/build-module/components/global-styles/screen-root.js.map +1 -1
  410. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  411. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  412. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  413. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  414. package/build-module/components/global-styles/subtitle.js.map +1 -1
  415. package/build-module/components/global-styles/typography-elements.js.map +1 -1
  416. package/build-module/components/global-styles/typography-example.js.map +1 -1
  417. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  418. package/build-module/components/global-styles/typography-preview.js.map +1 -1
  419. package/build-module/components/global-styles/ui.js.map +1 -1
  420. package/build-module/components/global-styles/utils.js.map +1 -1
  421. package/build-module/components/global-styles/variations/variation.js.map +1 -1
  422. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  423. package/build-module/components/global-styles/variations/variations-panel.js.map +1 -1
  424. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  425. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  426. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  427. package/build-module/components/header-edit-mode/index.js +3 -3
  428. package/build-module/components/header-edit-mode/index.js.map +1 -1
  429. package/build-module/components/header-edit-mode/more-menu/copy-content-menu-item.js.map +1 -1
  430. package/build-module/components/header-edit-mode/more-menu/index.js +8 -8
  431. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  432. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  433. package/build-module/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +1 -1
  434. package/build-module/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -1
  435. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -23
  436. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  437. package/build-module/components/keyboard-shortcuts/global.js.map +1 -1
  438. package/build-module/components/keyboard-shortcuts/register.js +0 -18
  439. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  440. package/build-module/components/layout/animation.js +4 -3
  441. package/build-module/components/layout/animation.js.map +1 -1
  442. package/build-module/components/layout/hooks.js.map +1 -1
  443. package/build-module/components/layout/index.js +13 -48
  444. package/build-module/components/layout/index.js.map +1 -1
  445. package/build-module/components/layout/router.js +73 -7
  446. package/build-module/components/layout/router.js.map +1 -1
  447. package/build-module/components/media/index.js.map +1 -1
  448. package/build-module/components/page/header.js.map +1 -1
  449. package/build-module/components/page/index.js +5 -2
  450. package/build-module/components/page/index.js.map +1 -1
  451. package/build-module/components/page-pages/index.js +14 -16
  452. package/build-module/components/page-pages/index.js.map +1 -1
  453. package/build-module/components/page-patterns/dataviews-pattern-actions.js +5 -4
  454. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  455. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -1
  456. package/build-module/components/page-patterns/header.js +2 -2
  457. package/build-module/components/page-patterns/header.js.map +1 -1
  458. package/build-module/components/page-patterns/index.js +126 -19
  459. package/build-module/components/page-patterns/index.js.map +1 -1
  460. package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -1
  461. package/build-module/components/page-patterns/search-items.js +3 -2
  462. package/build-module/components/page-patterns/search-items.js.map +1 -1
  463. package/build-module/components/page-patterns/use-pattern-settings.js.map +1 -1
  464. package/build-module/components/page-patterns/use-patterns.js +2 -6
  465. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  466. package/build-module/components/page-patterns/utils.js.map +1 -1
  467. package/build-module/components/page-templates-template-parts/add-new-template-part.js +3 -2
  468. package/build-module/components/page-templates-template-parts/add-new-template-part.js.map +1 -1
  469. package/build-module/components/page-templates-template-parts/hooks.js.map +1 -1
  470. package/build-module/components/page-templates-template-parts/index.js +13 -25
  471. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  472. package/build-module/components/pagination/index.js.map +1 -1
  473. package/build-module/components/pattern-modal/duplicate.js +4 -1
  474. package/build-module/components/pattern-modal/duplicate.js.map +1 -1
  475. package/build-module/components/pattern-modal/index.js.map +1 -1
  476. package/build-module/components/pattern-modal/rename.js +4 -1
  477. package/build-module/components/pattern-modal/rename.js.map +1 -1
  478. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
  479. package/build-module/components/{template-actions/rename-menu-item.js → rename-post-menu-item/index.js} +17 -15
  480. package/build-module/components/rename-post-menu-item/index.js.map +1 -0
  481. package/build-module/components/resizable-frame/index.js +1 -5
  482. package/build-module/components/resizable-frame/index.js.map +1 -1
  483. package/build-module/components/revisions/index.js.map +1 -1
  484. package/build-module/components/routes/link.js.map +1 -1
  485. package/build-module/components/routes/use-title.js.map +1 -1
  486. package/build-module/components/save-button/index.js.map +1 -1
  487. package/build-module/components/save-hub/index.js.map +1 -1
  488. package/build-module/components/save-panel/index.js +2 -2
  489. package/build-module/components/save-panel/index.js.map +1 -1
  490. package/build-module/components/sidebar/index.js +42 -75
  491. package/build-module/components/sidebar/index.js.map +1 -1
  492. package/build-module/components/sidebar-button/index.js.map +1 -1
  493. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  494. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  495. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  496. package/build-module/components/sidebar-dataviews/default-views.js +1 -1
  497. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  498. package/build-module/components/sidebar-dataviews/index.js +1 -1
  499. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  500. package/build-module/components/sidebar-edit-mode/default-sidebar.js +16 -5
  501. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  502. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +5 -3
  503. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  504. package/build-module/components/sidebar-edit-mode/index.js +28 -53
  505. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  506. package/build-module/components/sidebar-edit-mode/page-panels/index.js +23 -2
  507. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  508. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  509. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  510. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +4 -4
  511. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  512. package/build-module/components/sidebar-edit-mode/settings-header/index.js +4 -5
  513. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  514. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  515. package/build-module/components/sidebar-edit-mode/template-panel/index.js +1 -1
  516. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  517. package/build-module/components/sidebar-navigation-item/index.js +31 -0
  518. package/build-module/components/sidebar-navigation-item/index.js.map +1 -1
  519. package/build-module/components/sidebar-navigation-screen/index.js +37 -10
  520. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  521. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  522. package/build-module/components/sidebar-navigation-screen-details-panel/index.js.map +1 -1
  523. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +1 -1
  524. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
  525. package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +1 -1
  526. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -3
  527. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  528. package/build-module/components/sidebar-navigation-screen-main/index.js +7 -16
  529. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  530. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +1 -1
  531. package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -1
  532. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +8 -3
  533. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
  534. package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
  535. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  536. package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
  537. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
  538. package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
  539. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +20 -15
  540. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  541. package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -1
  542. package/build-module/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
  543. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +1 -1
  544. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  545. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +6 -5
  546. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  547. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  548. package/build-module/components/sidebar-navigation-screen-page/index.js +24 -14
  549. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  550. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  551. package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
  552. package/build-module/components/sidebar-navigation-screen-pattern/index.js +14 -5
  553. package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
  554. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  555. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js.map +1 -1
  556. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  557. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
  558. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  559. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -1
  560. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  561. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  562. package/build-module/components/sidebar-navigation-screen-patterns/index.js +34 -28
  563. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  564. package/build-module/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js.map +1 -1
  565. package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
  566. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  567. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  568. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  569. package/build-module/components/sidebar-navigation-screen-template/index.js +12 -8
  570. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  571. package/build-module/components/sidebar-navigation-screen-template/template-areas.js.map +1 -1
  572. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  573. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +6 -8
  574. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  575. package/build-module/components/site-hub/index.js +22 -21
  576. package/build-module/components/site-hub/index.js.map +1 -1
  577. package/build-module/components/site-icon/index.js.map +1 -1
  578. package/build-module/components/start-template-options/index.js.map +1 -1
  579. package/build-module/components/style-book/index.js.map +1 -1
  580. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +14 -5
  581. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  582. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  583. package/build-module/components/table/index.js.map +1 -1
  584. package/build-module/components/template-actions/index.js +7 -8
  585. package/build-module/components/template-actions/index.js.map +1 -1
  586. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  587. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  588. package/build-module/components/template-part-converter/index.js.map +1 -1
  589. package/build-module/components/use-edited-entity-record/index.js.map +1 -1
  590. package/build-module/components/welcome-guide/editor.js.map +1 -1
  591. package/build-module/components/welcome-guide/image.js.map +1 -1
  592. package/build-module/components/welcome-guide/index.js.map +1 -1
  593. package/build-module/components/welcome-guide/page.js.map +1 -1
  594. package/build-module/components/welcome-guide/styles.js +6 -3
  595. package/build-module/components/welcome-guide/styles.js.map +1 -1
  596. package/build-module/components/welcome-guide/template.js.map +1 -1
  597. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  598. package/build-module/hooks/commands/use-edit-mode-commands.js +11 -29
  599. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  600. package/build-module/hooks/components.js.map +1 -1
  601. package/build-module/hooks/index.js.map +1 -1
  602. package/build-module/hooks/push-changes-to-global-styles/index.js +1 -38
  603. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  604. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +1 -1
  605. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  606. package/build-module/index.js +4 -6
  607. package/build-module/index.js.map +1 -1
  608. package/build-module/lock-unlock.js.map +1 -1
  609. package/build-module/store/actions.js +16 -92
  610. package/build-module/store/actions.js.map +1 -1
  611. package/build-module/store/constants.js.map +1 -1
  612. package/build-module/store/index.js.map +1 -1
  613. package/build-module/store/private-actions.js +0 -83
  614. package/build-module/store/private-actions.js.map +1 -1
  615. package/build-module/store/private-selectors.js.map +1 -1
  616. package/build-module/store/reducer.js.map +1 -1
  617. package/build-module/store/selectors.js.map +1 -1
  618. package/build-module/utils/clone-deep.js.map +1 -1
  619. package/build-module/utils/constants.js +1 -0
  620. package/build-module/utils/constants.js.map +1 -1
  621. package/build-module/utils/get-is-list-page.js.map +1 -1
  622. package/build-module/utils/is-previewing-theme.js.map +1 -1
  623. package/build-module/utils/is-template-removable.js.map +1 -1
  624. package/build-module/utils/is-template-revertable.js.map +1 -1
  625. package/build-module/utils/math.js.map +1 -1
  626. package/build-module/utils/set-nested-value.js +38 -0
  627. package/build-module/utils/set-nested-value.js.map +1 -0
  628. package/build-module/utils/template-part-create.js.map +1 -1
  629. package/build-module/utils/use-activate-theme.js.map +1 -1
  630. package/build-module/utils/use-actual-current-theme.js.map +1 -1
  631. package/build-style/style-rtl.css +172 -585
  632. package/build-style/style.css +172 -585
  633. package/package.json +43 -44
  634. package/src/components/add-new-template/index.js +412 -12
  635. package/src/components/add-new-template/style.scss +0 -22
  636. package/src/components/add-new-template/utils.js +44 -24
  637. package/src/components/async/index.js +43 -0
  638. package/src/components/block-editor/block-inspector-button.js +9 -11
  639. package/src/components/block-editor/editor-canvas.js +45 -21
  640. package/src/components/block-editor/site-editor-canvas.js +6 -1
  641. package/src/components/editor/index.js +50 -13
  642. package/src/components/global-styles/background-panel.js +16 -0
  643. package/src/components/global-styles/block-preview-panel.js +6 -1
  644. package/src/components/global-styles/font-library-modal/context.js +76 -51
  645. package/src/components/global-styles/font-library-modal/font-collection.js +247 -223
  646. package/src/components/global-styles/font-library-modal/index.js +2 -2
  647. package/src/components/global-styles/font-library-modal/installed-fonts.js +156 -147
  648. package/src/components/global-styles/font-library-modal/style.scss +31 -13
  649. package/src/components/global-styles/highlighted-colors.js +1 -1
  650. package/src/components/global-styles/hooks.js +20 -3
  651. package/src/components/global-styles/root-menu.js +2 -2
  652. package/src/components/global-styles/screen-background.js +1 -1
  653. package/src/components/global-styles/screen-revisions/index.js +1 -1
  654. package/src/components/header-edit-mode/index.js +3 -5
  655. package/src/components/header-edit-mode/more-menu/index.js +6 -17
  656. package/src/components/header-edit-mode/style.scss +1 -1
  657. package/src/components/keyboard-shortcuts/edit-mode.js +0 -29
  658. package/src/components/keyboard-shortcuts/register.js +0 -20
  659. package/src/components/layout/animation.js +6 -3
  660. package/src/components/layout/index.js +12 -50
  661. package/src/components/layout/router.js +75 -12
  662. package/src/components/layout/style.scss +15 -37
  663. package/src/components/page/index.js +7 -2
  664. package/src/components/page-pages/index.js +33 -23
  665. package/src/components/page-pages/style.scss +29 -22
  666. package/src/components/page-patterns/dataviews-pattern-actions.js +5 -6
  667. package/src/components/page-patterns/header.js +4 -2
  668. package/src/components/page-patterns/index.js +168 -56
  669. package/src/components/page-patterns/search-items.js +3 -0
  670. package/src/components/page-patterns/style.scss +7 -6
  671. package/src/components/page-patterns/use-patterns.js +2 -6
  672. package/src/components/page-templates-template-parts/add-new-template-part.js +4 -2
  673. package/src/components/page-templates-template-parts/index.js +24 -39
  674. package/src/components/pattern-modal/duplicate.js +2 -1
  675. package/src/components/pattern-modal/rename.js +2 -1
  676. package/src/components/{template-actions/rename-menu-item.js → rename-post-menu-item/index.js} +20 -24
  677. package/src/components/resizable-frame/index.js +2 -6
  678. package/src/components/save-panel/index.js +2 -2
  679. package/src/components/sidebar/index.js +52 -100
  680. package/src/components/sidebar/style.scss +41 -6
  681. package/src/components/sidebar-dataviews/default-views.js +1 -1
  682. package/src/components/sidebar-dataviews/index.js +1 -1
  683. package/src/components/sidebar-edit-mode/default-sidebar.js +13 -6
  684. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +7 -3
  685. package/src/components/sidebar-edit-mode/index.js +39 -75
  686. package/src/components/sidebar-edit-mode/page-panels/index.js +25 -2
  687. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +20 -12
  688. package/src/components/sidebar-edit-mode/page-panels/style.scss +0 -6
  689. package/src/components/sidebar-edit-mode/settings-header/index.js +4 -5
  690. package/src/components/sidebar-edit-mode/style.scss +1 -1
  691. package/src/components/sidebar-edit-mode/template-panel/index.js +1 -1
  692. package/src/components/sidebar-navigation-item/index.js +29 -0
  693. package/src/components/sidebar-navigation-screen/index.js +29 -12
  694. package/src/components/sidebar-navigation-screen/style.scss +1 -21
  695. package/src/components/sidebar-navigation-screen-global-styles/index.js +2 -11
  696. package/src/components/sidebar-navigation-screen-main/index.js +11 -23
  697. package/src/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +1 -1
  698. package/src/components/sidebar-navigation-screen-navigation-menu/index.js +7 -6
  699. package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
  700. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +14 -14
  701. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +1 -1
  702. package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +4 -5
  703. package/src/components/sidebar-navigation-screen-page/index.js +23 -13
  704. package/src/components/sidebar-navigation-screen-page/style.scss +8 -2
  705. package/src/components/sidebar-navigation-screen-pattern/index.js +9 -6
  706. package/src/components/sidebar-navigation-screen-patterns/index.js +70 -60
  707. package/src/components/sidebar-navigation-screen-patterns/style.scss +5 -0
  708. package/src/components/sidebar-navigation-screen-template/index.js +8 -12
  709. package/src/components/sidebar-navigation-screen-templates-browse/index.js +2 -7
  710. package/src/components/site-hub/index.js +80 -90
  711. package/src/components/site-hub/style.scss +14 -34
  712. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +50 -35
  713. package/src/components/template-actions/index.js +8 -11
  714. package/src/components/welcome-guide/style.scss +1 -1
  715. package/src/components/welcome-guide/styles.js +6 -5
  716. package/src/hooks/commands/use-edit-mode-commands.js +12 -33
  717. package/src/hooks/push-changes-to-global-styles/index.js +1 -40
  718. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +4 -0
  719. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +5 -1
  720. package/src/index.js +9 -10
  721. package/src/store/actions.js +25 -141
  722. package/src/store/private-actions.js +0 -133
  723. package/src/store/test/actions.js +7 -2
  724. package/src/style.scss +0 -2
  725. package/src/utils/constants.js +1 -0
  726. package/src/utils/set-nested-value.js +39 -0
  727. package/build/components/add-new-template/new-template.js +0 -298
  728. package/build/components/add-new-template/new-template.js.map +0 -1
  729. package/build/components/add-new-template/template-actions-loading-screen.js +0 -27
  730. package/build/components/add-new-template/template-actions-loading-screen.js.map +0 -1
  731. package/build/components/header-edit-mode/plugin-more-menu-item/index.js +0 -78
  732. package/build/components/header-edit-mode/plugin-more-menu-item/index.js.map +0 -1
  733. package/build/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js +0 -71
  734. package/build/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js.map +0 -1
  735. package/build/components/keyboard-shortcut-help-modal/config.js +0 -78
  736. package/build/components/keyboard-shortcut-help-modal/config.js.map +0 -1
  737. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +0 -48
  738. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +0 -1
  739. package/build/components/keyboard-shortcut-help-modal/index.js +0 -119
  740. package/build/components/keyboard-shortcut-help-modal/index.js.map +0 -1
  741. package/build/components/keyboard-shortcut-help-modal/shortcut.js +0 -54
  742. package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +0 -1
  743. package/build/components/page-actions/index.js +0 -35
  744. package/build/components/page-actions/index.js.map +0 -1
  745. package/build/components/page-actions/trash-page-menu-item.js +0 -54
  746. package/build/components/page-actions/trash-page-menu-item.js.map +0 -1
  747. package/build/components/page-templates-template-parts/actions.js +0 -207
  748. package/build/components/page-templates-template-parts/actions.js.map +0 -1
  749. package/build/components/preferences-modal/index.js +0 -38
  750. package/build/components/preferences-modal/index.js.map +0 -1
  751. package/build/components/sidebar-edit-mode/constants.js +0 -9
  752. package/build/components/sidebar-edit-mode/constants.js.map +0 -1
  753. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -89
  754. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +0 -1
  755. package/build/components/sidebar-navigation-screen-navigation-item/index.js +0 -54
  756. package/build/components/sidebar-navigation-screen-navigation-item/index.js.map +0 -1
  757. package/build/components/sync-state-with-url/use-sync-path-with-url.js +0 -132
  758. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +0 -1
  759. package/build/components/template-actions/rename-menu-item.js.map +0 -1
  760. package/build-module/components/add-new-template/new-template.js +0 -290
  761. package/build-module/components/add-new-template/new-template.js.map +0 -1
  762. package/build-module/components/add-new-template/template-actions-loading-screen.js +0 -20
  763. package/build-module/components/add-new-template/template-actions-loading-screen.js.map +0 -1
  764. package/build-module/components/header-edit-mode/plugin-more-menu-item/index.js +0 -73
  765. package/build-module/components/header-edit-mode/plugin-more-menu-item/index.js.map +0 -1
  766. package/build-module/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js +0 -65
  767. package/build-module/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js.map +0 -1
  768. package/build-module/components/keyboard-shortcut-help-modal/config.js +0 -71
  769. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +0 -1
  770. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +0 -40
  771. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +0 -1
  772. package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -110
  773. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +0 -1
  774. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +0 -47
  775. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +0 -1
  776. package/build-module/components/page-actions/index.js +0 -27
  777. package/build-module/components/page-actions/index.js.map +0 -1
  778. package/build-module/components/page-actions/trash-page-menu-item.js +0 -47
  779. package/build-module/components/page-actions/trash-page-menu-item.js.map +0 -1
  780. package/build-module/components/page-templates-template-parts/actions.js +0 -199
  781. package/build-module/components/page-templates-template-parts/actions.js.map +0 -1
  782. package/build-module/components/preferences-modal/index.js +0 -30
  783. package/build-module/components/preferences-modal/index.js.map +0 -1
  784. package/build-module/components/sidebar-edit-mode/constants.js +0 -3
  785. package/build-module/components/sidebar-edit-mode/constants.js.map +0 -1
  786. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -83
  787. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +0 -1
  788. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js +0 -46
  789. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js.map +0 -1
  790. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +0 -124
  791. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +0 -1
  792. package/build-module/components/template-actions/rename-menu-item.js.map +0 -1
  793. package/src/components/add-new-template/new-template.js +0 -429
  794. package/src/components/add-new-template/template-actions-loading-screen.js +0 -23
  795. package/src/components/header-edit-mode/plugin-more-menu-item/index.js +0 -73
  796. package/src/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js +0 -64
  797. package/src/components/keyboard-shortcut-help-modal/config.js +0 -53
  798. package/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +0 -41
  799. package/src/components/keyboard-shortcut-help-modal/index.js +0 -151
  800. package/src/components/keyboard-shortcut-help-modal/shortcut.js +0 -70
  801. package/src/components/keyboard-shortcut-help-modal/style.scss +0 -61
  802. package/src/components/page-actions/index.js +0 -30
  803. package/src/components/page-actions/trash-page-menu-item.js +0 -63
  804. package/src/components/page-templates-template-parts/actions.js +0 -277
  805. package/src/components/preferences-modal/index.js +0 -29
  806. package/src/components/sidebar-edit-mode/constants.js +0 -2
  807. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -80
  808. package/src/components/sidebar-navigation-screen-navigation-item/index.js +0 -59
  809. package/src/components/sync-state-with-url/use-sync-path-with-url.js +0 -147
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_blockEditor","_data","_coreData","_i18n","_resolvers","_lockUnlock","_utils","_toggleFont","useGlobalSetting","unlock","blockEditorPrivateApis","FontLibraryContext","exports","createContext","FontLibraryProvider","children","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","useDispatch","coreStore","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","fontFamilies","isInstalling","setIsInstalling","useState","refreshKey","setRefreshKey","notice","setNotice","refreshLibrary","Date","now","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","useEntityRecords","_embed","libraryFonts","map","fontFamilyPost","id","font_family_settings","fontFace","_embedded","font_faces","face","font_face_settings","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","themeFonts","theme","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFonts","custom","baseCustomFonts","useEffect","handleSetLibraryFontSelected","font","fonts","fontSelected","find","toggleModal","tabName","loadedFontUrls","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","length","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFonts","fontFamiliesToInstall","fontFamiliesToActivate","installationErrors","fontFamilyToInstall","isANewFontFamily","installedFontFamily","fetchGetFontFamilyBySlug","fetchInstallFontFamily","makeFontFamilyFormData","alreadyInstalledFontFaces","fontFaceToInstall","checkFontFaceInstalled","sucessfullyInstalledFontFaces","unsucessfullyInstalledFontFaces","response","batchInstallFontFaces","makeFontFacesFormData","successes","errors","push","fetchUninstallFontFamily","unique","item","message","activateCustomFontFamilies","installError","Error","__","uninstallFontFamily","fontFamilyToUninstall","uninstalledFontFamily","deleted","deactivateFontFamily","error","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","forEach","unloadFontFaceInBrowser","fontsToAdd","fontsToActivate","_familyDbId","_faceDbId","mergeFontFamilies","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","toggleFont","isFaceActivated","loadFontFaceAsset","add","collections","setFontCollections","getFontCollections","fetchFontCollections","getFontCollection","hasData","collection","font_families","fetchFontCollection","updatedCollections","e","_react","createElement","Provider","value","_default","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useState, useEffect } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseEntityRecord,\n\tuseEntityRecords,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchGetFontFamilyBySlug,\n\tfetchInstallFontFamily,\n\tfetchUninstallFontFamily,\n\tfetchFontCollections,\n\tfetchFontCollection,\n} from './resolvers';\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport {\n\tsetUIValuesNeeded,\n\tmergeFontFamilies,\n\tloadFontFaceInBrowser,\n\tunloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n\tmakeFontFacesFormData,\n\tmakeFontFamilyFormData,\n\tbatchInstallFontFaces,\n\tcheckFontFaceInstalled,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\n\nexport const FontLibraryContext = createContext( {} );\n\nfunction FontLibraryProvider( { children } ) {\n\tconst { __experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits } =\n\t\tuseDispatch( coreStore );\n\tconst { globalStylesId } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn { globalStylesId: __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 [ isInstalling, setIsInstalling ] = useState( false );\n\tconst [ refreshKey, setRefreshKey ] = useState( 0 );\n\tconst [ notice, setNotice ] = useState( null );\n\n\tconst refreshLibrary = () => {\n\t\tsetRefreshKey( Date.now() );\n\t};\n\n\tconst {\n\t\trecords: libraryPosts = [],\n\t\tisResolving: isResolvingLibrary,\n\t\thasResolved: hasResolvedLibrary,\n\t} = useEntityRecords( 'postType', 'wp_font_family', {\n\t\trefreshKey,\n\t\t_embed: true,\n\t} );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( fontFamilyPost ) => {\n\t\t\treturn {\n\t\t\t\tid: fontFamilyPost.id,\n\t\t\t\t...fontFamilyPost.font_family_settings,\n\t\t\t\tfontFace:\n\t\t\t\t\tfontFamilyPost?._embedded?.font_faces.map(\n\t\t\t\t\t\t( face ) => face.font_face_settings\n\t\t\t\t\t) || [],\n\t\t\t};\n\t\t} ) || [];\n\n\t// Global Styles (settings) font families\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\t// theme.json file font families\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\n\t// Save font families to the global styles post in the database.\n\tconst saveFontFamilies = () => {\n\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t'settings.typography.fontFamilies',\n\t\t] );\n\t};\n\n\t// Library Fonts\n\tconst [ modalTabOpen, setModalTabOpen ] = useState( false );\n\tconst [ libraryFontSelected, setLibraryFontSelected ] = useState( null );\n\n\t// Themes Fonts are the fonts defined in the global styles (database persisted theme.json data).\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\n\tconst themeFontsSlugs = new Set( themeFonts.map( ( f ) => f.slug ) );\n\n\t/*\n\t * Base Theme Fonts are the fonts defined in the theme.json *file*.\n\t *\n\t * Uses the fonts from global styles + the ones from the theme.json file that hasn't repeated slugs.\n\t * Avoids incosistencies with the fonts listed in the font library modal as base (unactivated).\n\t * These inconsistencies can happen when the active theme fonts in global styles aren't defined in theme.json file as when a theme style variation is applied.\n\t */\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 customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst baseCustomFonts = libraryFonts\n\t\t? libraryFonts\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tuseEffect( () => {\n\t\tif ( ! modalTabOpen ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t}\n\t}, [ modalTabOpen ] );\n\n\tconst handleSetLibraryFontSelected = ( font ) => {\n\t\tsetNotice( null );\n\n\t\t// If font is null, reset the selected font\n\t\tif ( ! font ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst fonts = font.source === 'theme' ? themeFonts : baseCustomFonts;\n\n\t\t// Tries to find the font in the installed fonts\n\t\tconst fontSelected = fonts.find( ( f ) => f.slug === font.slug );\n\t\t// If the font is not found (it is only defined in custom styles), use the font from custom styles\n\t\tsetLibraryFontSelected( {\n\t\t\t...( fontSelected || font ),\n\t\t\tsource: font.source,\n\t\t} );\n\t};\n\n\tconst toggleModal = ( tabName ) => {\n\t\tsetModalTabOpen( tabName || null );\n\t};\n\n\t// Demo\n\tconst [ loadedFontUrls ] = useState( new Set() );\n\n\tconst getAvailableFontsOutline = ( availableFontFamilies ) => {\n\t\tconst outline = availableFontFamilies.reduce( ( acc, font ) => {\n\t\t\tconst availableFontFaces =\n\t\t\t\tfont?.fontFace && font.fontFace?.length > 0\n\t\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t\t )\n\t\t\t\t\t: [ 'normal400' ]; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400\n\n\t\t\tacc[ font.slug ] = availableFontFaces;\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn outline;\n\t};\n\n\tconst getActivatedFontsOutline = ( source ) => {\n\t\tswitch ( source ) {\n\t\t\tcase 'theme':\n\t\t\t\treturn getAvailableFontsOutline( themeFonts );\n\t\t\tcase 'custom':\n\t\t\tdefault:\n\t\t\t\treturn getAvailableFontsOutline( customFonts );\n\t\t}\n\t};\n\n\tconst isFontActivated = ( slug, style, weight, source ) => {\n\t\tif ( ! style && ! weight ) {\n\t\t\treturn !! getActivatedFontsOutline( source )[ slug ];\n\t\t}\n\t\treturn !! getActivatedFontsOutline( source )[ slug ]?.includes(\n\t\t\tstyle + weight\n\t\t);\n\t};\n\n\tconst getFontFacesActivated = ( slug, source ) => {\n\t\treturn getActivatedFontsOutline( source )[ slug ] || [];\n\t};\n\n\tasync function installFonts( fontFamiliesToInstall ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\tconst fontFamiliesToActivate = [];\n\t\t\tlet installationErrors = [];\n\n\t\t\tfor ( const fontFamilyToInstall of fontFamiliesToInstall ) {\n\t\t\t\tlet isANewFontFamily = false;\n\n\t\t\t\t// Get the font family if it already exists.\n\t\t\t\tlet installedFontFamily = await fetchGetFontFamilyBySlug(\n\t\t\t\t\tfontFamilyToInstall.slug\n\t\t\t\t);\n\n\t\t\t\t// Otherwise create it.\n\t\t\t\tif ( ! installedFontFamily ) {\n\t\t\t\t\tisANewFontFamily = true;\n\t\t\t\t\t// Prepare font family form data to install.\n\t\t\t\t\tinstalledFontFamily = await fetchInstallFontFamily(\n\t\t\t\t\t\tmakeFontFamilyFormData( fontFamilyToInstall )\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Collect font faces that have already been installed (to be activated later)\n\t\t\t\tconst alreadyInstalledFontFaces =\n\t\t\t\t\tinstalledFontFamily.fontFace && fontFamilyToInstall.fontFace\n\t\t\t\t\t\t? installedFontFamily.fontFace.filter(\n\t\t\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t\t\tcheckFontFaceInstalled(\n\t\t\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [];\n\n\t\t\t\t// Filter out Font Faces that have already been installed (so that they are not re-installed)\n\t\t\t\tif (\n\t\t\t\t\tinstalledFontFamily.fontFace &&\n\t\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t\t) {\n\t\t\t\t\tfontFamilyToInstall.fontFace =\n\t\t\t\t\t\tfontFamilyToInstall.fontFace.filter(\n\t\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t\t! checkFontFaceInstalled(\n\t\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\t\tinstalledFontFamily.fontFace\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\t\tlet sucessfullyInstalledFontFaces = [];\n\t\t\t\tlet unsucessfullyInstalledFontFaces = [];\n\t\t\t\tif ( fontFamilyToInstall?.fontFace?.length > 0 ) {\n\t\t\t\t\tconst response = await batchInstallFontFaces(\n\t\t\t\t\t\tinstalledFontFamily.id,\n\t\t\t\t\t\tmakeFontFacesFormData( fontFamilyToInstall )\n\t\t\t\t\t);\n\t\t\t\t\tsucessfullyInstalledFontFaces = response?.successes;\n\t\t\t\t\tunsucessfullyInstalledFontFaces = response?.errors;\n\t\t\t\t}\n\n\t\t\t\t// Use the sucessfully installed font faces\n\t\t\t\t// As well as any font faces that were already installed (those will be activated)\n\t\t\t\tif (\n\t\t\t\t\tsucessfullyInstalledFontFaces?.length > 0 ||\n\t\t\t\t\talreadyInstalledFontFaces?.length > 0\n\t\t\t\t) {\n\t\t\t\t\t// Use font data from REST API not from client to ensure\n\t\t\t\t\t// correct font information is used.\n\t\t\t\t\tinstalledFontFamily.fontFace = [\n\t\t\t\t\t\t...sucessfullyInstalledFontFaces,\n\t\t\t\t\t];\n\n\t\t\t\t\tfontFamiliesToActivate.push( installedFontFamily );\n\t\t\t\t}\n\n\t\t\t\t// If it's a system font but was installed successfully, activate it.\n\t\t\t\tif (\n\t\t\t\t\tinstalledFontFamily &&\n\t\t\t\t\t! fontFamilyToInstall?.fontFace?.length\n\t\t\t\t) {\n\t\t\t\t\tfontFamiliesToActivate.push( installedFontFamily );\n\t\t\t\t}\n\n\t\t\t\t// If the font family is new and is not a system font, delete it to avoid having font families without font faces.\n\t\t\t\tif (\n\t\t\t\t\tisANewFontFamily &&\n\t\t\t\t\tfontFamilyToInstall?.fontFace?.length > 0 &&\n\t\t\t\t\tsucessfullyInstalledFontFaces?.length === 0\n\t\t\t\t) {\n\t\t\t\t\tawait fetchUninstallFontFamily( installedFontFamily.id );\n\t\t\t\t}\n\n\t\t\t\tinstallationErrors = installationErrors.concat(\n\t\t\t\t\tunsucessfullyInstalledFontFaces\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tinstallationErrors = installationErrors.reduce(\n\t\t\t\t( unique, item ) =>\n\t\t\t\t\tunique.includes( item.message )\n\t\t\t\t\t\t? unique\n\t\t\t\t\t\t: [ ...unique, item.message ],\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\tif ( fontFamiliesToActivate.length > 0 ) {\n\t\t\t\t// Activate the font family (add the font family to the global styles).\n\t\t\t\tactivateCustomFontFamilies( fontFamiliesToActivate );\n\n\t\t\t\t// Save the global styles to the database.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t[ 'settings.typography.fontFamilies' ]\n\t\t\t\t);\n\n\t\t\t\trefreshLibrary();\n\t\t\t}\n\n\t\t\tif ( installationErrors.length > 0 ) {\n\t\t\t\tconst installError = new Error(\n\t\t\t\t\t__( 'There was an error installing fonts.' )\n\t\t\t\t);\n\n\t\t\t\tinstallError.installationErrors = installationErrors;\n\n\t\t\t\tthrow installError;\n\t\t\t}\n\t\t} finally {\n\t\t\tsetIsInstalling( false );\n\t\t}\n\t}\n\n\tasync function uninstallFontFamily( fontFamilyToUninstall ) {\n\t\ttry {\n\t\t\t// Uninstall the font family.\n\t\t\t// (Removes the font files from the server and the posts from the database).\n\t\t\tconst uninstalledFontFamily = await fetchUninstallFontFamily(\n\t\t\t\tfontFamilyToUninstall.id\n\t\t\t);\n\n\t\t\t// Deactivate the font family if delete request is successful\n\t\t\t// (Removes the font family from the global styles).\n\t\t\tif ( uninstalledFontFamily.deleted ) {\n\t\t\t\tdeactivateFontFamily( fontFamilyToUninstall );\n\t\t\t\t// Save the global styles to the database.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t[ 'settings.typography.fontFamilies' ]\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Refresh the library (the library font families from database).\n\t\t\trefreshLibrary();\n\n\t\t\treturn uninstalledFontFamily;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t`There was an error uninstalling the font family:`,\n\t\t\t\terror\n\t\t\t);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tconst deactivateFontFamily = ( font ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialCustomFonts = fontFamilies?.[ font.source ] ?? [];\n\t\tconst newCustomFonts = initialCustomFonts.filter(\n\t\t\t( f ) => f.slug !== font.slug\n\t\t);\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newCustomFonts,\n\t\t} );\n\n\t\tif ( font.fontFace ) {\n\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\tunloadFontFaceInBrowser( face, 'all' );\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst activateCustomFontFamilies = ( fontsToAdd ) => {\n\t\t// Removes the id from the families and faces to avoid saving that to global styles post content.\n\t\tconst fontsToActivate = fontsToAdd.map(\n\t\t\t( { id: _familyDbId, fontFace, ...font } ) => ( {\n\t\t\t\t...font,\n\t\t\t\t...( fontFace && fontFace.length > 0\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tfontFace: fontFace.map(\n\t\t\t\t\t\t\t\t( { id: _faceDbId, ...face } ) => face\n\t\t\t\t\t\t\t),\n\t\t\t\t\t }\n\t\t\t\t\t: {} ),\n\t\t\t} )\n\t\t);\n\n\t\t// Activate the fonts by set the new custom fonts array.\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t// Merge the existing custom fonts with the new fonts.\n\t\t\tcustom: mergeFontFamilies( fontFamilies?.custom, fontsToActivate ),\n\t\t} );\n\n\t\t// Add custom fonts to the browser.\n\t\tfontsToActivate.forEach( ( font ) => {\n\t\t\tif ( font.fontFace ) {\n\t\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\t\t// Load font faces just in the iframe because they already are in the document.\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face.src ),\n\t\t\t\t\t\t'all'\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t};\n\n\tconst toggleActivateFont = ( font, face ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialFonts = fontFamilies?.[ font.source ] ?? [];\n\t\t// Toggles the received font family or font face\n\t\tconst newFonts = toggleFont( font, face, initialFonts );\n\t\t// Updates the font families activated in global settings:\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newFonts,\n\t\t} );\n\n\t\tconst isFaceActivated = isFontActivated(\n\t\t\tfont.slug,\n\t\t\tface?.fontStyle,\n\t\t\tface?.fontWeight,\n\t\t\tfont.source\n\t\t);\n\n\t\tif ( isFaceActivated ) {\n\t\t\tloadFontFaceInBrowser(\n\t\t\t\tface,\n\t\t\t\tgetDisplaySrcFromFontFace( face?.src ),\n\t\t\t\t'all'\n\t\t\t);\n\t\t} else {\n\t\t\tunloadFontFaceInBrowser( face, 'all' );\n\t\t}\n\t};\n\n\tconst loadFontFaceAsset = async ( fontFace ) => {\n\t\t// If the font doesn't have a src, don't load it.\n\t\tif ( ! fontFace.src ) return;\n\t\t// Get the src of the font.\n\t\tconst src = getDisplaySrcFromFontFace( fontFace.src );\n\t\t// If the font is already loaded, don't load it again.\n\t\tif ( ! src || loadedFontUrls.has( src ) ) return;\n\t\t// Load the font in the browser.\n\t\tloadFontFaceInBrowser( fontFace, src, 'document' );\n\t\t// Add the font to the loaded fonts list.\n\t\tloadedFontUrls.add( src );\n\t};\n\n\t// Font Collections\n\tconst [ collections, setFontCollections ] = useState( [] );\n\tconst getFontCollections = async () => {\n\t\tconst response = await fetchFontCollections();\n\t\tsetFontCollections( response );\n\t};\n\tconst getFontCollection = async ( slug ) => {\n\t\ttry {\n\t\t\tconst hasData = !! collections.find(\n\t\t\t\t( collection ) => collection.slug === slug\n\t\t\t)?.font_families;\n\t\t\tif ( hasData ) return;\n\t\t\tconst response = await fetchFontCollection( slug );\n\t\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\t\tcollection.slug === slug\n\t\t\t\t\t? { ...collection, ...response }\n\t\t\t\t\t: collection\n\t\t\t);\n\t\t\tsetFontCollections( updatedCollections );\n\t\t} catch ( e ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( e );\n\t\t\tthrow e;\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tgetFontCollections();\n\t}, [] );\n\n\treturn (\n\t\t<FontLibraryContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tlibraryFontSelected,\n\t\t\t\thandleSetLibraryFontSelected,\n\t\t\t\tthemeFonts,\n\t\t\t\tbaseThemeFonts,\n\t\t\t\tcustomFonts,\n\t\t\t\tbaseCustomFonts,\n\t\t\t\tisFontActivated,\n\t\t\t\tgetFontFacesActivated,\n\t\t\t\tloadFontFaceAsset,\n\t\t\t\tinstallFonts,\n\t\t\t\tuninstallFontFamily,\n\t\t\t\ttoggleActivateFont,\n\t\t\t\tgetAvailableFontsOutline,\n\t\t\t\tmodalTabOpen,\n\t\t\t\ttoggleModal,\n\t\t\t\trefreshLibrary,\n\t\t\t\tnotice,\n\t\t\t\tsetNotice,\n\t\t\t\tsaveFontFamilies,\n\t\t\t\tfontFamiliesHasChanges,\n\t\t\t\tisResolvingLibrary,\n\t\t\t\thasResolvedLibrary,\n\t\t\t\tisInstalling,\n\t\t\t\tcollections,\n\t\t\t\tgetFontCollection,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</FontLibraryContext.Provider>\n\t);\n}\n\nexport default FontLibraryProvider;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_blockEditor","_data","_coreData","_i18n","_resolvers","_lockUnlock","_utils","_toggleFont","_setNestedValue","_interopRequireDefault","useGlobalSetting","unlock","blockEditorPrivateApis","FontLibraryContext","exports","createContext","FontLibraryProvider","children","saveEntityRecord","useDispatch","coreStore","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","fontFamilies","isInstalling","setIsInstalling","useState","refreshKey","setRefreshKey","notice","setNotice","refreshLibrary","Date","now","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","useEntityRecords","_embed","libraryFonts","map","fontFamilyPost","id","font_family_settings","fontFace","_embedded","font_faces","face","font_face_settings","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","fonts","updatedGlobalStyles","record","setNestedValue","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","themeFonts","theme","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFonts","custom","baseCustomFonts","useEffect","handleSetLibraryFontSelected","font","fontSelected","find","toggleModal","tabName","loadedFontUrls","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","length","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFonts","fontFamiliesToInstall","fontFamiliesToActivate","installationErrors","fontFamilyToInstall","isANewFontFamily","installedFontFamily","fetchGetFontFamilyBySlug","fetchInstallFontFamily","makeFontFamilyFormData","alreadyInstalledFontFaces","fontFaceToInstall","checkFontFaceInstalled","successfullyInstalledFontFaces","unsuccessfullyInstalledFontFaces","response","batchInstallFontFaces","makeFontFacesFormData","successes","errors","push","fetchUninstallFontFamily","unique","item","message","activeFonts","activateCustomFontFamilies","installError","Error","__","uninstallFontFamily","fontFamilyToUninstall","uninstalledFontFamily","deleted","deactivateFontFamily","error","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","forEach","unloadFontFaceInBrowser","fontsToAdd","fontsToActivate","cleanFontsForSave","mergeFontFamilies","loadFontsInBrowser","_familyDbId","_faceDbId","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","toggleFont","isFaceActivated","loadFontFaceAsset","add","collections","setFontCollections","getFontCollections","fetchFontCollections","getFontCollection","hasData","collection","font_families","fetchFontCollection","updatedCollections","e","_react","createElement","Provider","value","_default","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useState, useEffect } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseEntityRecord,\n\tuseEntityRecords,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchGetFontFamilyBySlug,\n\tfetchInstallFontFamily,\n\tfetchUninstallFontFamily,\n\tfetchFontCollections,\n\tfetchFontCollection,\n} from './resolvers';\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport {\n\tsetUIValuesNeeded,\n\tmergeFontFamilies,\n\tloadFontFaceInBrowser,\n\tunloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n\tmakeFontFacesFormData,\n\tmakeFontFamilyFormData,\n\tbatchInstallFontFaces,\n\tcheckFontFaceInstalled,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\nimport setNestedValue from '../../../utils/set-nested-value';\n\nexport const FontLibraryContext = createContext( {} );\n\nfunction FontLibraryProvider( { children } ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { globalStylesId } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn { globalStylesId: __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 [ isInstalling, setIsInstalling ] = useState( false );\n\tconst [ refreshKey, setRefreshKey ] = useState( 0 );\n\tconst [ notice, setNotice ] = useState( null );\n\n\tconst refreshLibrary = () => {\n\t\tsetRefreshKey( Date.now() );\n\t};\n\n\tconst {\n\t\trecords: libraryPosts = [],\n\t\tisResolving: isResolvingLibrary,\n\t\thasResolved: hasResolvedLibrary,\n\t} = useEntityRecords( 'postType', 'wp_font_family', {\n\t\trefreshKey,\n\t\t_embed: true,\n\t} );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( fontFamilyPost ) => {\n\t\t\treturn {\n\t\t\t\tid: fontFamilyPost.id,\n\t\t\t\t...fontFamilyPost.font_family_settings,\n\t\t\t\tfontFace:\n\t\t\t\t\tfontFamilyPost?._embedded?.font_faces.map(\n\t\t\t\t\t\t( face ) => face.font_face_settings\n\t\t\t\t\t) || [],\n\t\t\t};\n\t\t} ) || [];\n\n\t// Global Styles (settings) font families\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\t// theme.json file font families\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\n\t/*\n\t * Save the font families to the database.\n\n\t * This function is called when the user activates or deactivates a font family.\n\t * It only updates the global styles post content in the database for new font families.\n\t * This avoids saving other styles/settings changed by the user using other parts of the editor.\n\t *\n\t * It uses the font families from the param to avoid using the font families from an outdated state.\n\t *\n\t * @param {Array} fonts - The font families that will be saved to the database.\n\t */\n\tconst saveFontFamilies = async ( fonts ) => {\n\t\t// Gets the global styles database post content.\n\t\tconst updatedGlobalStyles = globalStyles.record;\n\n\t\t// Updates the database version of global styles with the edited font families in the client.\n\t\tsetNestedValue(\n\t\t\tupdatedGlobalStyles,\n\t\t\t[ 'settings', 'typography', 'fontFamilies' ],\n\t\t\tfonts\n\t\t);\n\n\t\t// Saves a new version of the global styles in the database.\n\t\tawait saveEntityRecord( 'root', 'globalStyles', updatedGlobalStyles );\n\t};\n\n\t// Library Fonts\n\tconst [ modalTabOpen, setModalTabOpen ] = useState( false );\n\tconst [ libraryFontSelected, setLibraryFontSelected ] = useState( null );\n\n\t// Themes Fonts are the fonts defined in the global styles (database persisted theme.json data).\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\n\tconst themeFontsSlugs = new Set( themeFonts.map( ( f ) => f.slug ) );\n\n\t/*\n\t * Base Theme Fonts are the fonts defined in the theme.json *file*.\n\t *\n\t * Uses the fonts from global styles + the ones from the theme.json file that hasn't repeated slugs.\n\t * Avoids inconsistencies with the fonts listed in the font library modal as base (inactivated).\n\t * These inconsistencies can happen when the active theme fonts in global styles aren't defined in theme.json file as when a theme style variation is applied.\n\t */\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 customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst baseCustomFonts = libraryFonts\n\t\t? libraryFonts\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tuseEffect( () => {\n\t\tif ( ! modalTabOpen ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t}\n\t}, [ modalTabOpen ] );\n\n\tconst handleSetLibraryFontSelected = ( font ) => {\n\t\tsetNotice( null );\n\n\t\t// If font is null, reset the selected font\n\t\tif ( ! font ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst fonts = font.source === 'theme' ? themeFonts : baseCustomFonts;\n\n\t\t// Tries to find the font in the installed fonts\n\t\tconst fontSelected = fonts.find( ( f ) => f.slug === font.slug );\n\t\t// If the font is not found (it is only defined in custom styles), use the font from custom styles\n\t\tsetLibraryFontSelected( {\n\t\t\t...( fontSelected || font ),\n\t\t\tsource: font.source,\n\t\t} );\n\t};\n\n\tconst toggleModal = ( tabName ) => {\n\t\tsetModalTabOpen( tabName || null );\n\t};\n\n\t// Demo\n\tconst [ loadedFontUrls ] = useState( new Set() );\n\n\tconst getAvailableFontsOutline = ( availableFontFamilies ) => {\n\t\tconst outline = availableFontFamilies.reduce( ( acc, font ) => {\n\t\t\tconst availableFontFaces =\n\t\t\t\tfont?.fontFace && font.fontFace?.length > 0\n\t\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t\t )\n\t\t\t\t\t: [ 'normal400' ]; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400\n\n\t\t\tacc[ font.slug ] = availableFontFaces;\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn outline;\n\t};\n\n\tconst getActivatedFontsOutline = ( source ) => {\n\t\tswitch ( source ) {\n\t\t\tcase 'theme':\n\t\t\t\treturn getAvailableFontsOutline( themeFonts );\n\t\t\tcase 'custom':\n\t\t\tdefault:\n\t\t\t\treturn getAvailableFontsOutline( customFonts );\n\t\t}\n\t};\n\n\tconst isFontActivated = ( slug, style, weight, source ) => {\n\t\tif ( ! style && ! weight ) {\n\t\t\treturn !! getActivatedFontsOutline( source )[ slug ];\n\t\t}\n\t\treturn !! getActivatedFontsOutline( source )[ slug ]?.includes(\n\t\t\tstyle + weight\n\t\t);\n\t};\n\n\tconst getFontFacesActivated = ( slug, source ) => {\n\t\treturn getActivatedFontsOutline( source )[ slug ] || [];\n\t};\n\n\tasync function installFonts( fontFamiliesToInstall ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\tconst fontFamiliesToActivate = [];\n\t\t\tlet installationErrors = [];\n\n\t\t\tfor ( const fontFamilyToInstall of fontFamiliesToInstall ) {\n\t\t\t\tlet isANewFontFamily = false;\n\n\t\t\t\t// Get the font family if it already exists.\n\t\t\t\tlet installedFontFamily = await fetchGetFontFamilyBySlug(\n\t\t\t\t\tfontFamilyToInstall.slug\n\t\t\t\t);\n\n\t\t\t\t// Otherwise create it.\n\t\t\t\tif ( ! installedFontFamily ) {\n\t\t\t\t\tisANewFontFamily = true;\n\t\t\t\t\t// Prepare font family form data to install.\n\t\t\t\t\tinstalledFontFamily = await fetchInstallFontFamily(\n\t\t\t\t\t\tmakeFontFamilyFormData( fontFamilyToInstall )\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Collect font faces that have already been installed (to be activated later)\n\t\t\t\tconst alreadyInstalledFontFaces =\n\t\t\t\t\tinstalledFontFamily.fontFace && fontFamilyToInstall.fontFace\n\t\t\t\t\t\t? installedFontFamily.fontFace.filter(\n\t\t\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t\t\tcheckFontFaceInstalled(\n\t\t\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [];\n\n\t\t\t\t// Filter out Font Faces that have already been installed (so that they are not re-installed)\n\t\t\t\tif (\n\t\t\t\t\tinstalledFontFamily.fontFace &&\n\t\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t\t) {\n\t\t\t\t\tfontFamilyToInstall.fontFace =\n\t\t\t\t\t\tfontFamilyToInstall.fontFace.filter(\n\t\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t\t! checkFontFaceInstalled(\n\t\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\t\tinstalledFontFamily.fontFace\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\t\tlet successfullyInstalledFontFaces = [];\n\t\t\t\tlet unsuccessfullyInstalledFontFaces = [];\n\t\t\t\tif ( fontFamilyToInstall?.fontFace?.length > 0 ) {\n\t\t\t\t\tconst response = await batchInstallFontFaces(\n\t\t\t\t\t\tinstalledFontFamily.id,\n\t\t\t\t\t\tmakeFontFacesFormData( fontFamilyToInstall )\n\t\t\t\t\t);\n\t\t\t\t\tsuccessfullyInstalledFontFaces = response?.successes;\n\t\t\t\t\tunsuccessfullyInstalledFontFaces = response?.errors;\n\t\t\t\t}\n\n\t\t\t\t// Use the successfully installed font faces\n\t\t\t\t// As well as any font faces that were already installed (those will be activated)\n\t\t\t\tif (\n\t\t\t\t\tsuccessfullyInstalledFontFaces?.length > 0 ||\n\t\t\t\t\talreadyInstalledFontFaces?.length > 0\n\t\t\t\t) {\n\t\t\t\t\t// Use font data from REST API not from client to ensure\n\t\t\t\t\t// correct font information is used.\n\t\t\t\t\tinstalledFontFamily.fontFace = [\n\t\t\t\t\t\t...successfullyInstalledFontFaces,\n\t\t\t\t\t];\n\n\t\t\t\t\tfontFamiliesToActivate.push( installedFontFamily );\n\t\t\t\t}\n\n\t\t\t\t// If it's a system font but was installed successfully, activate it.\n\t\t\t\tif (\n\t\t\t\t\tinstalledFontFamily &&\n\t\t\t\t\t! fontFamilyToInstall?.fontFace?.length\n\t\t\t\t) {\n\t\t\t\t\tfontFamiliesToActivate.push( installedFontFamily );\n\t\t\t\t}\n\n\t\t\t\t// If the font family is new and is not a system font, delete it to avoid having font families without font faces.\n\t\t\t\tif (\n\t\t\t\t\tisANewFontFamily &&\n\t\t\t\t\tfontFamilyToInstall?.fontFace?.length > 0 &&\n\t\t\t\t\tsuccessfullyInstalledFontFaces?.length === 0\n\t\t\t\t) {\n\t\t\t\t\tawait fetchUninstallFontFamily( installedFontFamily.id );\n\t\t\t\t}\n\n\t\t\t\tinstallationErrors = installationErrors.concat(\n\t\t\t\t\tunsuccessfullyInstalledFontFaces\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tinstallationErrors = installationErrors.reduce(\n\t\t\t\t( unique, item ) =>\n\t\t\t\t\tunique.includes( item.message )\n\t\t\t\t\t\t? unique\n\t\t\t\t\t\t: [ ...unique, item.message ],\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\tif ( fontFamiliesToActivate.length > 0 ) {\n\t\t\t\t// Activate the font family (add the font family to the global styles).\n\t\t\t\tconst activeFonts = activateCustomFontFamilies(\n\t\t\t\t\tfontFamiliesToActivate\n\t\t\t\t);\n\t\t\t\t// Save the global styles to the database.\n\t\t\t\tawait saveFontFamilies( activeFonts );\n\n\t\t\t\trefreshLibrary();\n\t\t\t}\n\n\t\t\tif ( installationErrors.length > 0 ) {\n\t\t\t\tconst installError = new Error(\n\t\t\t\t\t__( 'There was an error installing fonts.' )\n\t\t\t\t);\n\n\t\t\t\tinstallError.installationErrors = installationErrors;\n\n\t\t\t\tthrow installError;\n\t\t\t}\n\t\t} finally {\n\t\t\tsetIsInstalling( false );\n\t\t}\n\t}\n\n\tasync function uninstallFontFamily( fontFamilyToUninstall ) {\n\t\ttry {\n\t\t\t// Uninstall the font family.\n\t\t\t// (Removes the font files from the server and the posts from the database).\n\t\t\tconst uninstalledFontFamily = await fetchUninstallFontFamily(\n\t\t\t\tfontFamilyToUninstall.id\n\t\t\t);\n\n\t\t\t// Deactivate the font family if delete request is successful\n\t\t\t// (Removes the font family from the global styles).\n\t\t\tif ( uninstalledFontFamily.deleted ) {\n\t\t\t\tconst activeFonts = deactivateFontFamily(\n\t\t\t\t\tfontFamilyToUninstall\n\t\t\t\t);\n\t\t\t\t// Save the global styles to the database.\n\t\t\t\tawait saveFontFamilies( activeFonts );\n\t\t\t}\n\n\t\t\t// Refresh the library (the library font families from database).\n\t\t\trefreshLibrary();\n\n\t\t\treturn uninstalledFontFamily;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t`There was an error uninstalling the font family:`,\n\t\t\t\terror\n\t\t\t);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tconst deactivateFontFamily = ( font ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialCustomFonts = fontFamilies?.[ font.source ] ?? [];\n\t\tconst newCustomFonts = initialCustomFonts.filter(\n\t\t\t( f ) => f.slug !== font.slug\n\t\t);\n\t\tconst activeFonts = {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newCustomFonts,\n\t\t};\n\t\tsetFontFamilies( activeFonts );\n\n\t\tif ( font.fontFace ) {\n\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\tunloadFontFaceInBrowser( face, 'all' );\n\t\t\t} );\n\t\t}\n\t\treturn activeFonts;\n\t};\n\n\tconst activateCustomFontFamilies = ( fontsToAdd ) => {\n\t\tconst fontsToActivate = cleanFontsForSave( fontsToAdd );\n\n\t\tconst activeFonts = {\n\t\t\t...fontFamilies,\n\t\t\t// Merge the existing custom fonts with the new fonts.\n\t\t\tcustom: mergeFontFamilies( fontFamilies?.custom, fontsToActivate ),\n\t\t};\n\n\t\t// Activate the fonts by set the new custom fonts array.\n\t\tsetFontFamilies( activeFonts );\n\n\t\tloadFontsInBrowser( fontsToActivate );\n\n\t\treturn activeFonts;\n\t};\n\n\t// Removes the id from the families and faces to avoid saving that to global styles post content.\n\tconst cleanFontsForSave = ( fonts ) => {\n\t\treturn fonts.map( ( { id: _familyDbId, fontFace, ...font } ) => ( {\n\t\t\t...font,\n\t\t\t...( fontFace && fontFace.length > 0\n\t\t\t\t? {\n\t\t\t\t\t\tfontFace: fontFace.map(\n\t\t\t\t\t\t\t( { id: _faceDbId, ...face } ) => face\n\t\t\t\t\t\t),\n\t\t\t\t }\n\t\t\t\t: {} ),\n\t\t} ) );\n\t};\n\n\tconst loadFontsInBrowser = ( fonts ) => {\n\t\t// Add custom fonts to the browser.\n\t\tfonts.forEach( ( font ) => {\n\t\t\tif ( font.fontFace ) {\n\t\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\t\t// Load font faces just in the iframe because they already are in the document.\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face.src ),\n\t\t\t\t\t\t'all'\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t};\n\n\tconst toggleActivateFont = ( font, face ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialFonts = fontFamilies?.[ font.source ] ?? [];\n\t\t// Toggles the received font family or font face\n\t\tconst newFonts = toggleFont( font, face, initialFonts );\n\t\t// Updates the font families activated in global settings:\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newFonts,\n\t\t} );\n\n\t\tconst isFaceActivated = isFontActivated(\n\t\t\tfont.slug,\n\t\t\tface?.fontStyle,\n\t\t\tface?.fontWeight,\n\t\t\tfont.source\n\t\t);\n\n\t\tif ( isFaceActivated ) {\n\t\t\tloadFontFaceInBrowser(\n\t\t\t\tface,\n\t\t\t\tgetDisplaySrcFromFontFace( face?.src ),\n\t\t\t\t'all'\n\t\t\t);\n\t\t} else {\n\t\t\tunloadFontFaceInBrowser( face, 'all' );\n\t\t}\n\t};\n\n\tconst loadFontFaceAsset = async ( fontFace ) => {\n\t\t// If the font doesn't have a src, don't load it.\n\t\tif ( ! fontFace.src ) return;\n\t\t// Get the src of the font.\n\t\tconst src = getDisplaySrcFromFontFace( fontFace.src );\n\t\t// If the font is already loaded, don't load it again.\n\t\tif ( ! src || loadedFontUrls.has( src ) ) return;\n\t\t// Load the font in the browser.\n\t\tloadFontFaceInBrowser( fontFace, src, 'document' );\n\t\t// Add the font to the loaded fonts list.\n\t\tloadedFontUrls.add( src );\n\t};\n\n\t// Font Collections\n\tconst [ collections, setFontCollections ] = useState( [] );\n\tconst getFontCollections = async () => {\n\t\tconst response = await fetchFontCollections();\n\t\tsetFontCollections( response );\n\t};\n\tconst getFontCollection = async ( slug ) => {\n\t\ttry {\n\t\t\tconst hasData = !! collections.find(\n\t\t\t\t( collection ) => collection.slug === slug\n\t\t\t)?.font_families;\n\t\t\tif ( hasData ) return;\n\t\t\tconst response = await fetchFontCollection( slug );\n\t\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\t\tcollection.slug === slug\n\t\t\t\t\t? { ...collection, ...response }\n\t\t\t\t\t: collection\n\t\t\t);\n\t\t\tsetFontCollections( updatedCollections );\n\t\t} catch ( e ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( e );\n\t\t\tthrow e;\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tgetFontCollections();\n\t}, [] );\n\n\treturn (\n\t\t<FontLibraryContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tlibraryFontSelected,\n\t\t\t\thandleSetLibraryFontSelected,\n\t\t\t\tfontFamilies,\n\t\t\t\tthemeFonts,\n\t\t\t\tbaseThemeFonts,\n\t\t\t\tcustomFonts,\n\t\t\t\tbaseCustomFonts,\n\t\t\t\tisFontActivated,\n\t\t\t\tgetFontFacesActivated,\n\t\t\t\tloadFontFaceAsset,\n\t\t\t\tinstallFonts,\n\t\t\t\tuninstallFontFamily,\n\t\t\t\ttoggleActivateFont,\n\t\t\t\tgetAvailableFontsOutline,\n\t\t\t\tmodalTabOpen,\n\t\t\t\ttoggleModal,\n\t\t\t\trefreshLibrary,\n\t\t\t\tnotice,\n\t\t\t\tsetNotice,\n\t\t\t\tsaveFontFamilies,\n\t\t\t\tfontFamiliesHasChanges,\n\t\t\t\tisResolvingLibrary,\n\t\t\t\thasResolvedLibrary,\n\t\t\t\tisInstalling,\n\t\t\t\tcollections,\n\t\t\t\tgetFontCollection,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</FontLibraryContext.Provider>\n\t);\n}\n\nexport default FontLibraryProvider;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_fontDemo","_interopRequireDefault","_icons","FontCard","font","onClick","variantsText","navigatorPath","variantsCount","fontFace","length","style","cursor","navigator","useNavigator","_react","createElement","Button","goTo","className","Flex","justify","wrap","default","FlexItem","__experimentalText","sprintf","_n","Icon","icon","chevronRight","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-card.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _n, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalText as Text,\n\tButton,\n\tFlex,\n\tFlexItem,\n\tIcon,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport FontDemo from './font-demo';\nimport { chevronRight } from '@wordpress/icons';\n\nfunction FontCard( { font, onClick, variantsText, navigatorPath } ) {\n\tconst variantsCount = font.fontFace?.length || 1;\n\n\tconst style = {\n\t\tcursor: !! onClick ? 'pointer' : 'default',\n\t};\n\n\tconst navigator = useNavigator();\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={ () => {\n\t\t\t\tonClick();\n\t\t\t\tif ( navigatorPath ) {\n\t\t\t\t\tnavigator.goTo( navigatorPath );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tstyle={ style }\n\t\t\tclassName=\"font-library-modal__font-card\"\n\t\t>\n\t\t\t<Flex justify=\"space-between\" wrap={ false }>\n\t\t\t\t<FontDemo font={ font } />\n\t\t\t\t<Flex justify=\"flex-end\">\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Text className=\"font-library-modal__font-card__count\">\n\t\t\t\t\t\t\t{ variantsText ||\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: Number of font variants. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'%d variant',\n\t\t\t\t\t\t\t\t\t\t'%d variants',\n\t\t\t\t\t\t\t\t\t\tvariantsCount\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tvariantsCount\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Icon icon={ chevronRight } />\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nexport default FontCard;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAYA,IAAAE,SAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAjBA;AACA;AACA;;AAWA;AACA;AACA;;AAIA,SAASK,QAAQA,CAAE;EAAEC,IAAI;EAAEC,OAAO;EAAEC,YAAY;EAAEC;AAAc,CAAC,EAAG;EACnE,MAAMC,aAAa,GAAGJ,IAAI,CAACK,QAAQ,EAAEC,MAAM,IAAI,CAAC;EAEhD,MAAMC,KAAK,GAAG;IACbC,MAAM,EAAE,CAAC,CAAEP,OAAO,GAAG,SAAS,GAAG;EAClC,CAAC;EAED,MAAMQ,SAAS,GAAG,IAAAC,sCAAY,EAAC,CAAC;EAEhC,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAkB,MAAM;IACNZ,OAAO,EAAGA,CAAA,KAAM;MACfA,OAAO,CAAC,CAAC;MACT,IAAKE,aAAa,EAAG;QACpBM,SAAS,CAACK,IAAI,CAAEX,aAAc,CAAC;MAChC;IACD,CAAG;IACHI,KAAK,EAAGA,KAAO;IACfQ,SAAS,EAAC;EAA+B,GAEzC,IAAAJ,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAqB,IAAI;IAACC,OAAO,EAAC,eAAe;IAACC,IAAI,EAAG;EAAO,GAC3C,IAAAP,MAAA,CAAAC,aAAA,EAAChB,SAAA,CAAAuB,OAAQ;IAACnB,IAAI,EAAGA;EAAM,CAAE,CAAC,EAC1B,IAAAW,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAqB,IAAI;IAACC,OAAO,EAAC;EAAU,GACvB,IAAAN,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAyB,QAAQ,QACR,IAAAT,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAA0B,kBAAI;IAACN,SAAS,EAAC;EAAsC,GACnDb,YAAY,IACb,IAAAoB,aAAO,GACN;EACA,IAAAC,QAAE,EACD,YAAY,EACZ,aAAa,EACbnB,aACD,CAAC,EACDA,aACD,CACI,CACG,CAAC,EACX,IAAAO,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAyB,QAAQ,QACR,IAAAT,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAA6B,IAAI;IAACC,IAAI,EAAGC;EAAc,CAAE,CACpB,CACL,CACD,CACC,CAAC;AAEX;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAT,OAAA,GAEcpB,QAAQ"}
1
+ {"version":3,"names":["_i18n","require","_components","_fontDemo","_interopRequireDefault","_icons","FontCard","font","onClick","variantsText","navigatorPath","variantsCount","fontFace","length","style","cursor","navigator","useNavigator","_react","createElement","Button","goTo","className","Flex","justify","wrap","default","FlexItem","__experimentalText","sprintf","_n","Icon","icon","chevronRight","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-card.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _n, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalText as Text,\n\tButton,\n\tFlex,\n\tFlexItem,\n\tIcon,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport FontDemo from './font-demo';\nimport { chevronRight } from '@wordpress/icons';\n\nfunction FontCard( { font, onClick, variantsText, navigatorPath } ) {\n\tconst variantsCount = font.fontFace?.length || 1;\n\n\tconst style = {\n\t\tcursor: !! onClick ? 'pointer' : 'default',\n\t};\n\n\tconst navigator = useNavigator();\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={ () => {\n\t\t\t\tonClick();\n\t\t\t\tif ( navigatorPath ) {\n\t\t\t\t\tnavigator.goTo( navigatorPath );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tstyle={ style }\n\t\t\tclassName=\"font-library-modal__font-card\"\n\t\t>\n\t\t\t<Flex justify=\"space-between\" wrap={ false }>\n\t\t\t\t<FontDemo font={ font } />\n\t\t\t\t<Flex justify=\"flex-end\">\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Text className=\"font-library-modal__font-card__count\">\n\t\t\t\t\t\t\t{ variantsText ||\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: Number of font variants. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'%d variant',\n\t\t\t\t\t\t\t\t\t\t'%d variants',\n\t\t\t\t\t\t\t\t\t\tvariantsCount\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tvariantsCount\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Icon icon={ chevronRight } />\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nexport default FontCard;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAYA,IAAAE,SAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAjBA;AACA;AACA;;AAWA;AACA;AACA;;AAIA,SAASK,QAAQA,CAAE;EAAEC,IAAI;EAAEC,OAAO;EAAEC,YAAY;EAAEC;AAAc,CAAC,EAAG;EACnE,MAAMC,aAAa,GAAGJ,IAAI,CAACK,QAAQ,EAAEC,MAAM,IAAI,CAAC;EAEhD,MAAMC,KAAK,GAAG;IACbC,MAAM,EAAE,CAAC,CAAEP,OAAO,GAAG,SAAS,GAAG;EAClC,CAAC;EAED,MAAMQ,SAAS,GAAG,IAAAC,sCAAY,EAAC,CAAC;EAEhC,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAkB,MAAM;IACNZ,OAAO,EAAGA,CAAA,KAAM;MACfA,OAAO,CAAC,CAAC;MACT,IAAKE,aAAa,EAAG;QACpBM,SAAS,CAACK,IAAI,CAAEX,aAAc,CAAC;MAChC;IACD,CAAG;IACHI,KAAK,EAAGA,KAAO;IACfQ,SAAS,EAAC;EAA+B,GAEzC,IAAAJ,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAqB,IAAI;IAACC,OAAO,EAAC,eAAe;IAACC,IAAI,EAAG;EAAO,GAC3C,IAAAP,MAAA,CAAAC,aAAA,EAAChB,SAAA,CAAAuB,OAAQ;IAACnB,IAAI,EAAGA;EAAM,CAAE,CAAC,EAC1B,IAAAW,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAqB,IAAI;IAACC,OAAO,EAAC;EAAU,GACvB,IAAAN,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAyB,QAAQ,QACR,IAAAT,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAA0B,kBAAI;IAACN,SAAS,EAAC;EAAsC,GACnDb,YAAY,IACb,IAAAoB,aAAO,GACN;EACA,IAAAC,QAAE,EACD,YAAY,EACZ,aAAa,EACbnB,aACD,CAAC,EACDA,aACD,CACI,CACG,CAAC,EACX,IAAAO,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAAyB,QAAQ,QACR,IAAAT,MAAA,CAAAC,aAAA,EAACjB,WAAA,CAAA6B,IAAI;IAACC,IAAI,EAAGC;EAAc,CAAE,CACpB,CACL,CACD,CACC,CAAC;AAEX;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAT,OAAA,GAEcpB,QAAQ","ignoreList":[]}
@@ -20,6 +20,7 @@ var _googleFontsConfirmDialog = _interopRequireDefault(require("./google-fonts-c
20
20
  var _utils = require("./utils");
21
21
  var _sortFontFaces = require("./utils/sort-font-faces");
22
22
  var _collectionFontVariant = _interopRequireDefault(require("./collection-font-variant"));
23
+ var _lockUnlock = require("../../../lock-unlock");
23
24
  /**
24
25
  * WordPress dependencies
25
26
  */
@@ -28,6 +29,9 @@ var _collectionFontVariant = _interopRequireDefault(require("./collection-font-v
28
29
  * Internal dependencies
29
30
  */
30
31
 
32
+ const {
33
+ ProgressBar
34
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
31
35
  const DEFAULT_CATEGORY = {
32
36
  slug: 'all',
33
37
  name: (0, _i18n._x)('All', 'font categories')
@@ -99,6 +103,7 @@ function FontCollection({
99
103
  const collectionCategories = (_selectedCollection$c = selectedCollection?.categories) !== null && _selectedCollection$c !== void 0 ? _selectedCollection$c : [];
100
104
  const categories = [DEFAULT_CATEGORY, ...collectionCategories];
101
105
  const fonts = (0, _element.useMemo)(() => (0, _filterFonts.default)(collectionFonts, filters), [collectionFonts, filters]);
106
+ const isLoading = !selectedCollection?.font_families && !notice;
102
107
 
103
108
  // NOTE: The height of the font library modal unavailable to use for rendering font family items is roughly 417px
104
109
  // The height of each font family item is 61px.
@@ -203,7 +208,9 @@ function FontCollection({
203
208
  };
204
209
  return (0, _react.createElement)("div", {
205
210
  className: "font-library-modal__tabpanel-layout"
206
- }, (0, _react.createElement)(_components.__experimentalNavigatorProvider, {
211
+ }, isLoading && (0, _react.createElement)("div", {
212
+ className: "font-library-modal__loading"
213
+ }, (0, _react.createElement)(ProgressBar, null)), !isLoading && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalNavigatorProvider, {
207
214
  initialPath: "/",
208
215
  className: "font-library-modal__tabpanel-layout"
209
216
  }, (0, _react.createElement)(_components.__experimentalNavigatorScreen, {
@@ -232,7 +239,7 @@ function FontCollection({
232
239
  key: category.slug
233
240
  }, category.name))))), (0, _react.createElement)(_components.__experimentalSpacer, {
234
241
  margin: 4
235
- }), !selectedCollection?.font_families && !notice && (0, _react.createElement)(_components.Spinner, null), !!selectedCollection?.font_families?.length && !fonts.length && (0, _react.createElement)(_components.__experimentalText, null, (0, _i18n.__)('No fonts found. Try with a different search term')), (0, _react.createElement)("div", {
242
+ }), !!selectedCollection?.font_families?.length && !fonts.length && (0, _react.createElement)(_components.__experimentalText, null, (0, _i18n.__)('No fonts found. Try with a different search term')), (0, _react.createElement)("div", {
236
243
  className: "font-library-modal__fonts-grid__main"
237
244
  }, items.map(font => (0, _react.createElement)(_fontCard.default, {
238
245
  key: font.font_family_settings.slug,
@@ -266,7 +273,7 @@ function FontCollection({
266
273
  margin: 1
267
274
  })), (0, _react.createElement)(_components.__experimentalSpacer, {
268
275
  margin: 4
269
- }), (0, _react.createElement)(_components.__experimentalText, null, " ", (0, _i18n.__)('Select font variants to install.'), " "), (0, _react.createElement)(_components.__experimentalSpacer, {
276
+ }), (0, _react.createElement)(_components.__experimentalText, null, (0, _i18n.__)('Select font variants to install.')), (0, _react.createElement)(_components.__experimentalSpacer, {
270
277
  margin: 4
271
278
  }), (0, _react.createElement)(_components.__experimentalVStack, {
272
279
  spacing: 0
@@ -338,7 +345,7 @@ function FontCollection({
338
345
  onClick: () => setPage(totalPages),
339
346
  disabled: page === totalPages,
340
347
  __experimentalIsFocusable: true
341
- }, (0, _react.createElement)("span", null, "\xBB"))));
348
+ }, (0, _react.createElement)("span", null, "\xBB")))));
342
349
  }
343
350
  var _default = exports.default = FontCollection;
344
351
  //# sourceMappingURL=font-collection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_components","_compose","_i18n","_icons","_context","_fontCard","_interopRequireDefault","_filterFonts","_toggleFont","_fontsOutline","_googleFontsConfirmDialog","_utils","_sortFontFaces","_collectionFontVariant","DEFAULT_CATEGORY","slug","name","_x","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","useState","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","notice","setNotice","useContext","FontLibraryContext","selectedCollection","find","collection","useEffect","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","useMemo","_selectedCollection$f","font_families","collectionCategories","categories","fonts","filterFonts","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","debounce","handleToggleVariant","font","face","newFontsToInstall","toggleFont","fontToInstallOutline","getFontsOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","downloadFontFaceAssets","error","__","getSortedFontFaces","fontStyle","fontWeight","sortFontFaces","_react","createElement","default","ActionsComponent","DropdownMenu","icon","moreVertical","label","popoverProps","position","controls","title","onClick","className","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalHStack","justify","__experimentalVStack","__experimentalHeading","level","size","__experimentalText","description","__experimentalSpacer","margin","Flex","FlexItem","SearchControl","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","SelectControl","key","Spinner","font_family_settings","navigatorPath","__experimentalNavigatorToParentButton","chevronLeft","Fragment","Notice","status","onRemove","spacing","i","selected","isFontFontFaceInOutline","Button","variant","isBusy","disabled","__experimentalIsFocusable","expanded","createInterpolateElement","sprintf","CurrentPageControl","options","Array","newPage","parseInt","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalHeading as Heading,\n\tNotice,\n\tSelectControl,\n\tSpinner,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tDropdownMenu,\n\tSearchControl,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { moreVertical, chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport { toggleFont } from './utils/toggleFont';\nimport {\n\tgetFontsOutline,\n\tisFontFontFaceInOutline,\n} from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { downloadFontFaceAssets } from './utils';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport CollectionFontVariant from './collection-font-variant';\n\nconst DEFAULT_CATEGORY = {\n\tslug: 'all',\n\tname: _x( 'All', 'font categories' ),\n};\n\nconst LOCAL_STORAGE_ITEM = 'wp-font-library-google-fonts-permission';\nconst MIN_WINDOW_HEIGHT = 500;\n\nfunction FontCollection( { slug } ) {\n\tconst requiresPermission = slug === 'google-fonts';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn window.localStorage.getItem( LOCAL_STORAGE_ITEM ) === 'true';\n\t};\n\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst {\n\t\tcollections,\n\t\tgetFontCollection,\n\t\tinstallFonts,\n\t\tisInstalling,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.slug === slug\n\t);\n\n\tuseEffect( () => {\n\t\tconst handleStorage = () => {\n\t\t\tsetRenderConfirmDialog(\n\t\t\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t\t\t);\n\t\t};\n\t\thandleStorage();\n\t\twindow.addEventListener( 'storage', handleStorage );\n\t\treturn () => window.removeEventListener( 'storage', handleStorage );\n\t}, [ slug, requiresPermission ] );\n\n\tconst revokeAccess = () => {\n\t\twindow.localStorage.setItem( LOCAL_STORAGE_ITEM, 'false' );\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( slug );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tif ( ! notice ) {\n\t\t\t\t\tsetNotice( {\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ slug, getFontCollection, setNotice, notice ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ slug, setNotice ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.font_families ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\t// NOTE: The height of the font library modal unavailable to use for rendering font family items is roughly 417px\n\t// The height of each font family item is 61px.\n\tconst windowHeight = Math.max( window.innerHeight, MIN_WINDOW_HEIGHT );\n\tconst pageSize = Math.floor( ( windowHeight - 417 ) / 61 );\n\tconst totalPages = Math.ceil( fonts.length / pageSize );\n\tconst itemsStart = ( page - 1 ) * pageSize;\n\tconst itemsLimit = page * pageSize;\n\tconst items = fonts.slice( itemsStart, itemsLimit );\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst handleInstall = async () => {\n\t\tsetNotice( null );\n\n\t\tconst fontFamily = fontsToInstall[ 0 ];\n\n\t\ttry {\n\t\t\tif ( fontFamily?.fontFace ) {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tfontFamily.fontFace.map( async ( fontFace ) => {\n\t\t\t\t\t\tif ( fontFace.src ) {\n\t\t\t\t\t\t\tfontFace.file = await downloadFontFaceAssets(\n\t\t\t\t\t\t\t\tfontFace.src\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\t// If any of the fonts fail to download,\n\t\t\t// show an error notice and stop the request from being sent.\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Error installing the fonts, could not be downloaded.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFonts( [ fontFamily ] );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\t\tresetFontsToInstall();\n\t};\n\n\tconst getSortedFontFaces = ( fontFamily ) => {\n\t\tif ( ! fontFamily ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! fontFamily.fontFace || ! fontFamily.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: fontFamily.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( fontFamily.fontFace );\n\t};\n\n\tif ( renderConfirmDialog ) {\n\t\treturn <GoogleFontsConfirmDialog />;\n\t}\n\n\tconst ActionsComponent = () => {\n\t\tif ( slug !== 'google-fonts' || renderConfirmDialog || selectedFont ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tposition: 'bottom left',\n\t\t\t\t} }\n\t\t\t\tcontrols={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: __( 'Revoke access to Google Fonts' ),\n\t\t\t\t\t\tonClick: revokeAccess,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<NavigatorProvider\n\t\t\t\tinitialPath=\"/\"\n\t\t\t\tclassName=\"font-library-modal__tabpanel-layout\"\n\t\t\t>\n\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t\t\t{ selectedCollection.name }\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t<Text>{ selectedCollection.description }</Text>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t<ActionsComponent />\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Flex>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__search\"\n\t\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\thideLabelFromVision={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\t\tvalue={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\n\t\t\t\t\t<Spacer margin={ 4 } />\n\n\t\t\t\t\t{ ! selectedCollection?.font_families && ! notice && (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ !! selectedCollection?.font_families?.length &&\n\t\t\t\t\t\t! fonts.length && (\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'No fonts found. Try with a different search term'\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) }\n\n\t\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t\t{ items.map( ( font ) => (\n\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\tkey={ font.font_family_settings.slug }\n\t\t\t\t\t\t\t\tfont={ font.font_family_settings }\n\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetSelectedFont(\n\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\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/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</div>\n\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetSelectedFont( null );\n\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ selectedFont?.name }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Text> { __( 'Select font variants to install.' ) } </Text>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t{ getSortedFontFaces( selectedFont ).map(\n\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\t\t\t\tselectedFont.slug,\n\t\t\t\t\t\t\t\t\t\tselectedFont.fontFace ? face : null, // If the font has no fontFace, we want to check if the font is in the outline\n\t\t\t\t\t\t\t\t\t\tfontToInstallOutline\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)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t</NavigatorScreen>\n\t\t\t</NavigatorProvider>\n\n\t\t\t{ selectedFont && (\n\t\t\t\t<Flex\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ handleInstall }\n\t\t\t\t\t\tisBusy={ isInstalling }\n\t\t\t\t\t\tdisabled={ fontsToInstall.length === 0 || isInstalling }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Install' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Flex>\n\t\t\t) }\n\n\t\t\t{ ! selectedFont && (\n\t\t\t\t<Flex\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'First page' ) }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => setPage( 1 ) }\n\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>«</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => setPage( page - 1 ) }\n\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>‹</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Total number of pages.\n\t\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t\t'Page <CurrentPageControl /> of %s',\n\t\t\t\t\t\t\t\t\t'paging'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tCurrentPageControl: (\n\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'Current page' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ page }\n\t\t\t\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t\t\t\t...Array( totalPages ),\n\t\t\t\t\t\t\t\t\t\t].map( ( e, i ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( newPage ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetPage( parseInt( newPage ) )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsize={ 'compact' }\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => setPage( page + 1 ) }\n\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>›</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Last page' ) }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => setPage( totalPages ) }\n\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>»</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAOA,IAAAC,WAAA,GAAAD,OAAA;AAkBA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAKA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAD,sBAAA,CAAAP,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AAIA,IAAAW,yBAAA,GAAAJ,sBAAA,CAAAP,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,cAAA,GAAAb,OAAA;AACA,IAAAc,sBAAA,GAAAP,sBAAA,CAAAP,OAAA;AA9CA;AACA;AACA;;AA8BA;AACA;AACA;;AAcA,MAAMe,gBAAgB,GAAG;EACxBC,IAAI,EAAE,KAAK;EACXC,IAAI,EAAE,IAAAC,QAAE,EAAE,KAAK,EAAE,iBAAkB;AACpC,CAAC;AAED,MAAMC,kBAAkB,GAAG,yCAAyC;AACpE,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,SAASC,cAAcA,CAAE;EAAEL;AAAK,CAAC,EAAG;EAAA,IAAAM,qBAAA;EACnC,MAAMC,kBAAkB,GAAGP,IAAI,KAAK,cAAc;EAElD,MAAMQ,mCAAmC,GAAGA,CAAA,KAAM;IACjD,OAAOC,MAAM,CAACC,YAAY,CAACC,OAAO,CAAER,kBAAmB,CAAC,KAAK,MAAM;EACpE,CAAC;EAED,MAAM,CAAES,YAAY,EAAEC,eAAe,CAAE,GAAG,IAAAC,iBAAQ,EAAE,IAAK,CAAC;EAC1D,MAAM,CAAEC,cAAc,EAAEC,iBAAiB,CAAE,GAAG,IAAAF,iBAAQ,EAAE,EAAG,CAAC;EAC5D,MAAM,CAAEG,IAAI,EAAEC,OAAO,CAAE,GAAG,IAAAJ,iBAAQ,EAAE,CAAE,CAAC;EACvC,MAAM,CAAEK,OAAO,EAAEC,UAAU,CAAE,GAAG,IAAAN,iBAAQ,EAAE,CAAC,CAAE,CAAC;EAC9C,MAAM,CAAEO,mBAAmB,EAAEC,sBAAsB,CAAE,GAAG,IAAAR,iBAAQ,EAC/DP,kBAAkB,IAAI,CAAEC,mCAAmC,CAAC,CAC7D,CAAC;EACD,MAAM;IACLe,WAAW;IACXC,iBAAiB;IACjBC,YAAY;IACZC,YAAY;IACZC,MAAM;IACNC;EACD,CAAC,GAAG,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EACpC,MAAMC,kBAAkB,GAAGR,WAAW,CAACS,IAAI,CACxCC,UAAU,IAAMA,UAAU,CAACjC,IAAI,KAAKA,IACvC,CAAC;EAED,IAAAkC,kBAAS,EAAE,MAAM;IAChB,MAAMC,aAAa,GAAGA,CAAA,KAAM;MAC3Bb,sBAAsB,CACrBf,kBAAkB,IAAI,CAAEC,mCAAmC,CAAC,CAC7D,CAAC;IACF,CAAC;IACD2B,aAAa,CAAC,CAAC;IACf1B,MAAM,CAAC2B,gBAAgB,CAAE,SAAS,EAAED,aAAc,CAAC;IACnD,OAAO,MAAM1B,MAAM,CAAC4B,mBAAmB,CAAE,SAAS,EAAEF,aAAc,CAAC;EACpE,CAAC,EAAE,CAAEnC,IAAI,EAAEO,kBAAkB,CAAG,CAAC;EAEjC,MAAM+B,YAAY,GAAGA,CAAA,KAAM;IAC1B7B,MAAM,CAACC,YAAY,CAAC6B,OAAO,CAAEpC,kBAAkB,EAAE,OAAQ,CAAC;IAC1DM,MAAM,CAAC+B,aAAa,CAAE,IAAIC,KAAK,CAAE,SAAU,CAAE,CAAC;EAC/C,CAAC;EAED,IAAAP,kBAAS,EAAE,MAAM;IAChB,MAAMQ,mBAAmB,GAAG,MAAAA,CAAA,KAAY;MACvC,IAAI;QACH,MAAMlB,iBAAiB,CAAExB,IAAK,CAAC;QAC/B2C,YAAY,CAAC,CAAC;MACf,CAAC,CAAC,OAAQC,CAAC,EAAG;QACb,IAAK,CAAEjB,MAAM,EAAG;UACfC,SAAS,CAAE;YACViB,IAAI,EAAE,OAAO;YACbC,OAAO,EAAEF,CAAC,EAAEE;UACb,CAAE,CAAC;QACJ;MACD;IACD,CAAC;IACDJ,mBAAmB,CAAC,CAAC;EACtB,CAAC,EAAE,CAAE1C,IAAI,EAAEwB,iBAAiB,EAAEI,SAAS,EAAED,MAAM,CAAG,CAAC;EAEnD,IAAAO,kBAAS,EAAE,MAAM;IAChBrB,eAAe,CAAE,IAAK,CAAC;IACvBe,SAAS,CAAE,IAAK,CAAC;EAClB,CAAC,EAAE,CAAE5B,IAAI,EAAE4B,SAAS,CAAG,CAAC;EAExB,IAAAM,kBAAS,EAAE,MAAM;IAChB;IACAlB,iBAAiB,CAAE,EAAG,CAAC;EACxB,CAAC,EAAE,CAAEJ,YAAY,CAAG,CAAC;EAErB,MAAMmC,eAAe,GAAG,IAAAC,gBAAO,EAC9B;IAAA,IAAAC,qBAAA;IAAA,QAAAA,qBAAA,GAAMlB,kBAAkB,EAAEmB,aAAa,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GAC7C,CAAElB,kBAAkB,CACrB,CAAC;EACD,MAAMoB,oBAAoB,IAAA7C,qBAAA,GAAGyB,kBAAkB,EAAEqB,UAAU,cAAA9C,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAEjE,MAAM8C,UAAU,GAAG,CAAErD,gBAAgB,EAAE,GAAGoD,oBAAoB,CAAE;EAEhE,MAAME,KAAK,GAAG,IAAAL,gBAAO,EACpB,MAAM,IAAAM,oBAAW,EAAEP,eAAe,EAAE5B,OAAQ,CAAC,EAC7C,CAAE4B,eAAe,EAAE5B,OAAO,CAC3B,CAAC;;EAED;EACA;EACA,MAAMoC,YAAY,GAAGC,IAAI,CAACC,GAAG,CAAEhD,MAAM,CAACiD,WAAW,EAAEtD,iBAAkB,CAAC;EACtE,MAAMuD,QAAQ,GAAGH,IAAI,CAACI,KAAK,CAAE,CAAEL,YAAY,GAAG,GAAG,IAAK,EAAG,CAAC;EAC1D,MAAMM,UAAU,GAAGL,IAAI,CAACM,IAAI,CAAET,KAAK,CAACU,MAAM,GAAGJ,QAAS,CAAC;EACvD,MAAMK,UAAU,GAAG,CAAE/C,IAAI,GAAG,CAAC,IAAK0C,QAAQ;EAC1C,MAAMM,UAAU,GAAGhD,IAAI,GAAG0C,QAAQ;EAClC,MAAMO,KAAK,GAAGb,KAAK,CAACc,KAAK,CAAEH,UAAU,EAAEC,UAAW,CAAC;EAEnD,MAAMG,oBAAoB,GAAKC,QAAQ,IAAM;IAC5CjD,UAAU,CAAE;MAAE,GAAGD,OAAO;MAAEkD;IAAS,CAAE,CAAC;IACtCnD,OAAO,CAAE,CAAE,CAAC;EACb,CAAC;EAED,MAAMoD,uBAAuB,GAAKC,KAAK,IAAM;IAC5CnD,UAAU,CAAE;MAAE,GAAGD,OAAO;MAAEqD,MAAM,EAAED;IAAM,CAAE,CAAC;IAC3CrD,OAAO,CAAE,CAAE,CAAC;EACb,CAAC;EAED,MAAMuD,0BAA0B,GAAG,IAAAC,iBAAQ,EAAEJ,uBAAuB,EAAE,GAAI,CAAC;EAE3E,MAAM3B,YAAY,GAAGA,CAAA,KAAM;IAC1BvB,UAAU,CAAE,CAAC,CAAE,CAAC;IAChBF,OAAO,CAAE,CAAE,CAAC;EACb,CAAC;EAED,MAAMyD,mBAAmB,GAAGA,CAAEC,IAAI,EAAEC,IAAI,KAAM;IAC7C,MAAMC,iBAAiB,GAAG,IAAAC,sBAAU,EAAEH,IAAI,EAAEC,IAAI,EAAE9D,cAAe,CAAC;IAClEC,iBAAiB,CAAE8D,iBAAkB,CAAC;EACvC,CAAC;EAED,MAAME,oBAAoB,GAAG,IAAAC,6BAAe,EAAElE,cAAe,CAAC;EAE9D,MAAMmE,mBAAmB,GAAGA,CAAA,KAAM;IACjClE,iBAAiB,CAAE,EAAG,CAAC;EACxB,CAAC;EAED,MAAMmE,aAAa,GAAG,MAAAA,CAAA,KAAY;IACjCvD,SAAS,CAAE,IAAK,CAAC;IAEjB,MAAMwD,UAAU,GAAGrE,cAAc,CAAE,CAAC,CAAE;IAEtC,IAAI;MACH,IAAKqE,UAAU,EAAEC,QAAQ,EAAG;QAC3B,MAAMC,OAAO,CAACC,GAAG,CAChBH,UAAU,CAACC,QAAQ,CAACG,GAAG,CAAE,MAAQH,QAAQ,IAAM;UAC9C,IAAKA,QAAQ,CAACI,GAAG,EAAG;YACnBJ,QAAQ,CAACK,IAAI,GAAG,MAAM,IAAAC,6BAAsB,EAC3CN,QAAQ,CAACI,GACV,CAAC;UACF;QACD,CAAE,CACH,CAAC;MACF;IACD,CAAC,CAAC,OAAQG,KAAK,EAAG;MACjB;MACA;MACAhE,SAAS,CAAE;QACViB,IAAI,EAAE,OAAO;QACbC,OAAO,EAAE,IAAA+C,QAAE,EACV,sDACD;MACD,CAAE,CAAC;MACH;IACD;IAEA,IAAI;MACH,MAAMpE,YAAY,CAAE,CAAE2D,UAAU,CAAG,CAAC;MACpCxD,SAAS,CAAE;QACViB,IAAI,EAAE,SAAS;QACfC,OAAO,EAAE,IAAA+C,QAAE,EAAE,oCAAqC;MACnD,CAAE,CAAC;IACJ,CAAC,CAAC,OAAQD,KAAK,EAAG;MACjBhE,SAAS,CAAE;QACViB,IAAI,EAAE,OAAO;QACbC,OAAO,EAAE8C,KAAK,CAAC9C;MAChB,CAAE,CAAC;IACJ;IACAoC,mBAAmB,CAAC,CAAC;EACtB,CAAC;EAED,MAAMY,kBAAkB,GAAKV,UAAU,IAAM;IAC5C,IAAK,CAAEA,UAAU,EAAG;MACnB,OAAO,EAAE;IACV;IACA,IAAK,CAAEA,UAAU,CAACC,QAAQ,IAAI,CAAED,UAAU,CAACC,QAAQ,CAACtB,MAAM,EAAG;MAC5D,OAAO,CACN;QACCqB,UAAU,EAAEA,UAAU,CAACA,UAAU;QACjCW,SAAS,EAAE,QAAQ;QACnBC,UAAU,EAAE;MACb,CAAC,CACD;IACF;IACA,OAAO,IAAAC,4BAAa,EAAEb,UAAU,CAACC,QAAS,CAAC;EAC5C,CAAC;EAED,IAAKhE,mBAAmB,EAAG;IAC1B,OAAO,IAAA6E,MAAA,CAAAC,aAAA,EAACxG,yBAAA,CAAAyG,OAAwB,MAAE,CAAC;EACpC;EAEA,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;IAC9B,IAAKrG,IAAI,KAAK,cAAc,IAAIqB,mBAAmB,IAAIT,YAAY,EAAG;MACrE,OAAO,IAAI;IACZ;IACA,OACC,IAAAsF,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAqH,YAAY;MACZC,IAAI,EAAGC,mBAAc;MACrBC,KAAK,EAAG,IAAAZ,QAAE,EAAE,SAAU,CAAG;MACzBa,YAAY,EAAG;QACdC,QAAQ,EAAE;MACX,CAAG;MACHC,QAAQ,EAAG,CACV;QACCC,KAAK,EAAE,IAAAhB,QAAE,EAAE,+BAAgC,CAAC;QAC5CiB,OAAO,EAAExE;MACV,CAAC;IACC,CACH,CAAC;EAEJ,CAAC;EAED,OACC,IAAA4D,MAAA,CAAAC,aAAA;IAAKY,SAAS,EAAC;EAAqC,GACnD,IAAAb,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA+H,+BAAiB;IACjBC,WAAW,EAAC,GAAG;IACfF,SAAS,EAAC;EAAqC,GAE/C,IAAAb,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAiI,6BAAe;IAACC,IAAI,EAAC;EAAG,GACxB,IAAAjB,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAmI,oBAAM;IAACC,OAAO,EAAC;EAAe,GAC9B,IAAAnB,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAqI,oBAAM,QACN,IAAApB,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAsI,qBAAO;IAACC,KAAK,EAAG,CAAG;IAACC,IAAI,EAAG;EAAI,GAC7B1F,kBAAkB,CAAC9B,IACb,CAAC,EACV,IAAAiG,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAyI,kBAAI,QAAG3F,kBAAkB,CAAC4F,WAAmB,CACvC,CAAC,EACT,IAAAzB,MAAA,CAAAC,aAAA,EAACE,gBAAgB,MAAE,CACZ,CAAC,EACT,IAAAH,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA2I,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAA3B,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA6I,IAAI,QACJ,IAAA5B,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA8I,QAAQ,QACR,IAAA7B,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA+I,aAAa;IACbjB,SAAS,EAAC,4BAA4B;IACtCxC,KAAK,EAAGpD,OAAO,CAACqD,MAAQ;IACxByD,WAAW,EAAG,IAAApC,QAAE,EAAE,YAAa,CAAG;IAClCY,KAAK,EAAG,IAAAZ,QAAE,EAAE,QAAS,CAAG;IACxBqC,QAAQ,EAAGzD,0BAA4B;IACvC0D,uBAAuB;IACvBC,mBAAmB,EAAG;EAAO,CAC7B,CACQ,CAAC,EACX,IAAAlC,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA8I,QAAQ,QACR,IAAA7B,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAoJ,aAAa;IACb5B,KAAK,EAAG,IAAAZ,QAAE,EAAE,UAAW,CAAG;IAC1BtB,KAAK,EAAGpD,OAAO,CAACkD,QAAU;IAC1B6D,QAAQ,EAAG9D;EAAsB,GAE/BhB,UAAU,IACXA,UAAU,CAACoC,GAAG,CAAInB,QAAQ,IACzB,IAAA6B,MAAA,CAAAC,aAAA;IACC5B,KAAK,EAAGF,QAAQ,CAACrE,IAAM;IACvBsI,GAAG,EAAGjE,QAAQ,CAACrE;EAAM,GAEnBqE,QAAQ,CAACpE,IACJ,CACP,CACW,CACN,CACL,CAAC,EAEP,IAAAiG,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA2I,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EAErB,CAAE9F,kBAAkB,EAAEmB,aAAa,IAAI,CAAEvB,MAAM,IAChD,IAAAuE,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAsJ,OAAO,MAAE,CACV,EAEC,CAAC,CAAExG,kBAAkB,EAAEmB,aAAa,EAAEa,MAAM,IAC7C,CAAEV,KAAK,CAACU,MAAM,IACb,IAAAmC,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAyI,kBAAI,QACF,IAAA7B,QAAE,EACH,kDACD,CACK,CACN,EAEF,IAAAK,MAAA,CAAAC,aAAA;IAAKY,SAAS,EAAC;EAAsC,GAClD7C,KAAK,CAACsB,GAAG,CAAIZ,IAAI,IAClB,IAAAsB,MAAA,CAAAC,aAAA,EAAC7G,SAAA,CAAA8G,OAAQ;IACRkC,GAAG,EAAG1D,IAAI,CAAC4D,oBAAoB,CAACxI,IAAM;IACtC4E,IAAI,EAAGA,IAAI,CAAC4D,oBAAsB;IAClCC,aAAa,EAAG,aAAe;IAC/B3B,OAAO,EAAGA,CAAA,KAAM;MACfjG,eAAe,CACd+D,IAAI,CAAC4D,oBACN,CAAC;IACF;EAAG,CACH,CACA,CACE,CACW,CAAC,EAElB,IAAAtC,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAiI,6BAAe;IAACC,IAAI,EAAC;EAAa,GAClC,IAAAjB,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA6I,IAAI;IAACT,OAAO,EAAC;EAAY,GACzB,IAAAnB,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAyJ,qCAAuB;IACvBnC,IAAI,EAAGoC,kBAAa;IACpBlB,IAAI,EAAC,OAAO;IACZX,OAAO,EAAGA,CAAA,KAAM;MACfjG,eAAe,CAAE,IAAK,CAAC;MACvBe,SAAS,CAAE,IAAK,CAAC;IAClB,CAAG;IACH6E,KAAK,EAAG,IAAAZ,QAAE,EAAE,MAAO;EAAG,CACtB,CAAC,EACF,IAAAK,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAsI,qBAAO;IACPC,KAAK,EAAG,CAAG;IACXC,IAAI,EAAG,EAAI;IACXV,SAAS,EAAC;EAAgC,GAExCnG,YAAY,EAAEX,IACR,CACJ,CAAC,EACL0B,MAAM,IACP,IAAAuE,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA0C,QAAA,QACC,IAAA1C,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA2I,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAA3B,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA4J,MAAM;IACNC,MAAM,EAAGnH,MAAM,CAACkB,IAAM;IACtBkG,QAAQ,EAAGA,CAAA,KAAMnH,SAAS,CAAE,IAAK;EAAG,GAElCD,MAAM,CAACmB,OACF,CAAC,EACT,IAAAoD,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA2I,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CACrB,CACF,EACD,IAAA3B,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA2I,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAA3B,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAyI,kBAAI,QAAC,GAAC,EAAE,IAAA7B,QAAE,EAAE,kCAAmC,CAAC,EAAE,GAAO,CAAC,EAC3D,IAAAK,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA2I,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAA3B,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAqI,oBAAM;IAAC0B,OAAO,EAAG;EAAG,GACpB,IAAA9C,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA2I,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACrB/B,kBAAkB,CAAElF,YAAa,CAAC,CAAC4E,GAAG,CACvC,CAAEX,IAAI,EAAEoE,CAAC,KACR,IAAA/C,MAAA,CAAAC,aAAA,EAACrG,sBAAA,CAAAsG,OAAqB;IACrBxB,IAAI,EAAGhE,YAAc;IACrBiE,IAAI,EAAGA,IAAM;IACbyD,GAAG,EAAI,OAAOW,CAAG,EAAG;IACpBtE,mBAAmB,EAAGA,mBAAqB;IAC3CuE,QAAQ,EAAG,IAAAC,qCAAuB,EACjCvI,YAAY,CAACZ,IAAI,EACjBY,YAAY,CAACyE,QAAQ,GAAGR,IAAI,GAAG,IAAI;IAAE;IACrCG,oBACD;EAAG,CACH,CAEH,CACO,CAAC,EACT,IAAAkB,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA2I,oBAAM;IAACC,MAAM,EAAG;EAAI,CAAE,CACP,CACC,CAAC,EAElBjH,YAAY,IACb,IAAAsF,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA6I,IAAI;IACJT,OAAO,EAAC,UAAU;IAClBN,SAAS,EAAC;EAA6C,GAEvD,IAAAb,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAmK,MAAM;IACNC,OAAO,EAAC,SAAS;IACjBvC,OAAO,EAAG3B,aAAe;IACzBmE,MAAM,EAAG5H,YAAc;IACvB6H,QAAQ,EAAGxI,cAAc,CAACgD,MAAM,KAAK,CAAC,IAAIrC,YAAc;IACxD8H,yBAAyB;EAAA,GAEvB,IAAA3D,QAAE,EAAE,SAAU,CACT,CACH,CACN,EAEC,CAAEjF,YAAY,IACf,IAAAsF,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAA6I,IAAI;IACJT,OAAO,EAAC,QAAQ;IAChBN,SAAS,EAAC;EAA6C,GAEvD,IAAAb,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAmK,MAAM;IACN3C,KAAK,EAAG,IAAAZ,QAAE,EAAE,YAAa,CAAG;IAC5B4B,IAAI,EAAC,SAAS;IACdX,OAAO,EAAGA,CAAA,KAAM5F,OAAO,CAAE,CAAE,CAAG;IAC9BqI,QAAQ,EAAGtI,IAAI,KAAK,CAAG;IACvBuI,yBAAyB;EAAA,GAEzB,IAAAtD,MAAA,CAAAC,aAAA,gBAAM,MAAO,CACN,CAAC,EACT,IAAAD,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAmK,MAAM;IACN3C,KAAK,EAAG,IAAAZ,QAAE,EAAE,eAAgB,CAAG;IAC/B4B,IAAI,EAAC,SAAS;IACdX,OAAO,EAAGA,CAAA,KAAM5F,OAAO,CAAED,IAAI,GAAG,CAAE,CAAG;IACrCsI,QAAQ,EAAGtI,IAAI,KAAK,CAAG;IACvBuI,yBAAyB;EAAA,GAEzB,IAAAtD,MAAA,CAAAC,aAAA,gBAAM,QAAO,CACN,CAAC,EACT,IAAAD,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAmI,oBAAM;IACNC,OAAO,EAAC,YAAY;IACpBoC,QAAQ,EAAG,KAAO;IAClBT,OAAO,EAAG;EAAG,GAEX,IAAAU,iCAAwB,EACzB,IAAAC,aAAO;EACN;EACA,IAAAzJ,QAAE,EACD,mCAAmC,EACnC,QACD,CAAC,EACD2D,UACD,CAAC,EACD;IACC+F,kBAAkB,EACjB,IAAA1D,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAoJ,aAAa;MACb,cAAa,IAAAxC,QAAE,EAAE,cAAe,CAAG;MACnCtB,KAAK,EAAGtD,IAAM;MACd4I,OAAO,EAAG,CACT,GAAGC,KAAK,CAAEjG,UAAW,CAAC,CACtB,CAAC2B,GAAG,CAAE,CAAE5C,CAAC,EAAEqG,CAAC,KAAM;QAClB,OAAO;UACNxC,KAAK,EAAEwC,CAAC,GAAG,CAAC;UACZ1E,KAAK,EAAE0E,CAAC,GAAG;QACZ,CAAC;MACF,CAAE,CAAG;MACLf,QAAQ,EAAK6B,OAAO,IACnB7I,OAAO,CAAE8I,QAAQ,CAAED,OAAQ,CAAE,CAC7B;MACDtC,IAAI,EAAG,SAAW;MAClBU,uBAAuB;IAAA,CACvB;EAEH,CACD,CACO,CAAC,EACT,IAAAjC,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAmK,MAAM;IACN3C,KAAK,EAAG,IAAAZ,QAAE,EAAE,WAAY,CAAG;IAC3B4B,IAAI,EAAC,SAAS;IACdX,OAAO,EAAGA,CAAA,KAAM5F,OAAO,CAAED,IAAI,GAAG,CAAE,CAAG;IACrCsI,QAAQ,EAAGtI,IAAI,KAAK4C,UAAY;IAChC2F,yBAAyB;EAAA,GAEzB,IAAAtD,MAAA,CAAAC,aAAA,gBAAM,QAAO,CACN,CAAC,EACT,IAAAD,MAAA,CAAAC,aAAA,EAAClH,WAAA,CAAAmK,MAAM;IACN3C,KAAK,EAAG,IAAAZ,QAAE,EAAE,WAAY,CAAG;IAC3B4B,IAAI,EAAC,SAAS;IACdX,OAAO,EAAGA,CAAA,KAAM5F,OAAO,CAAE2C,UAAW,CAAG;IACvC0F,QAAQ,EAAGtI,IAAI,KAAK4C,UAAY;IAChC2F,yBAAyB;EAAA,GAEzB,IAAAtD,MAAA,CAAAC,aAAA,gBAAM,MAAO,CACN,CACH,CAEH,CAAC;AAER;AAAC,IAAA8D,QAAA,GAAAC,OAAA,CAAA9D,OAAA,GAEc/F,cAAc"}
1
+ {"version":3,"names":["_element","require","_components","_compose","_i18n","_icons","_context","_fontCard","_interopRequireDefault","_filterFonts","_toggleFont","_fontsOutline","_googleFontsConfirmDialog","_utils","_sortFontFaces","_collectionFontVariant","_lockUnlock","ProgressBar","unlock","componentsPrivateApis","DEFAULT_CATEGORY","slug","name","_x","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","useState","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","notice","setNotice","useContext","FontLibraryContext","selectedCollection","find","collection","useEffect","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","useMemo","_selectedCollection$f","font_families","collectionCategories","categories","fonts","filterFonts","isLoading","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","debounce","handleToggleVariant","font","face","newFontsToInstall","toggleFont","fontToInstallOutline","getFontsOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","downloadFontFaceAssets","error","__","getSortedFontFaces","fontStyle","fontWeight","sortFontFaces","_react","createElement","default","ActionsComponent","DropdownMenu","icon","moreVertical","label","popoverProps","position","controls","title","onClick","className","Fragment","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalHStack","justify","__experimentalVStack","__experimentalHeading","level","size","__experimentalText","description","__experimentalSpacer","margin","Flex","FlexItem","SearchControl","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","SelectControl","key","font_family_settings","navigatorPath","__experimentalNavigatorToParentButton","chevronLeft","Notice","status","onRemove","spacing","i","selected","isFontFontFaceInOutline","Button","variant","isBusy","disabled","__experimentalIsFocusable","expanded","createInterpolateElement","sprintf","CurrentPageControl","options","Array","newPage","parseInt","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalHeading as Heading,\n\tNotice,\n\tSelectControl,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tDropdownMenu,\n\tSearchControl,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { moreVertical, chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport { toggleFont } from './utils/toggleFont';\nimport {\n\tgetFontsOutline,\n\tisFontFontFaceInOutline,\n} from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { downloadFontFaceAssets } from './utils';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport CollectionFontVariant from './collection-font-variant';\nimport { unlock } from '../../../lock-unlock';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nconst DEFAULT_CATEGORY = {\n\tslug: 'all',\n\tname: _x( 'All', 'font categories' ),\n};\n\nconst LOCAL_STORAGE_ITEM = 'wp-font-library-google-fonts-permission';\nconst MIN_WINDOW_HEIGHT = 500;\n\nfunction FontCollection( { slug } ) {\n\tconst requiresPermission = slug === 'google-fonts';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn window.localStorage.getItem( LOCAL_STORAGE_ITEM ) === 'true';\n\t};\n\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst {\n\t\tcollections,\n\t\tgetFontCollection,\n\t\tinstallFonts,\n\t\tisInstalling,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.slug === slug\n\t);\n\n\tuseEffect( () => {\n\t\tconst handleStorage = () => {\n\t\t\tsetRenderConfirmDialog(\n\t\t\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t\t\t);\n\t\t};\n\t\thandleStorage();\n\t\twindow.addEventListener( 'storage', handleStorage );\n\t\treturn () => window.removeEventListener( 'storage', handleStorage );\n\t}, [ slug, requiresPermission ] );\n\n\tconst revokeAccess = () => {\n\t\twindow.localStorage.setItem( LOCAL_STORAGE_ITEM, 'false' );\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( slug );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tif ( ! notice ) {\n\t\t\t\t\tsetNotice( {\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ slug, getFontCollection, setNotice, notice ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ slug, setNotice ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.font_families ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\tconst isLoading = ! selectedCollection?.font_families && ! notice;\n\n\t// NOTE: The height of the font library modal unavailable to use for rendering font family items is roughly 417px\n\t// The height of each font family item is 61px.\n\tconst windowHeight = Math.max( window.innerHeight, MIN_WINDOW_HEIGHT );\n\tconst pageSize = Math.floor( ( windowHeight - 417 ) / 61 );\n\tconst totalPages = Math.ceil( fonts.length / pageSize );\n\tconst itemsStart = ( page - 1 ) * pageSize;\n\tconst itemsLimit = page * pageSize;\n\tconst items = fonts.slice( itemsStart, itemsLimit );\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst handleInstall = async () => {\n\t\tsetNotice( null );\n\n\t\tconst fontFamily = fontsToInstall[ 0 ];\n\n\t\ttry {\n\t\t\tif ( fontFamily?.fontFace ) {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tfontFamily.fontFace.map( async ( fontFace ) => {\n\t\t\t\t\t\tif ( fontFace.src ) {\n\t\t\t\t\t\t\tfontFace.file = await downloadFontFaceAssets(\n\t\t\t\t\t\t\t\tfontFace.src\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\t// If any of the fonts fail to download,\n\t\t\t// show an error notice and stop the request from being sent.\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Error installing the fonts, could not be downloaded.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFonts( [ fontFamily ] );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\t\tresetFontsToInstall();\n\t};\n\n\tconst getSortedFontFaces = ( fontFamily ) => {\n\t\tif ( ! fontFamily ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! fontFamily.fontFace || ! fontFamily.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: fontFamily.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( fontFamily.fontFace );\n\t};\n\n\tif ( renderConfirmDialog ) {\n\t\treturn <GoogleFontsConfirmDialog />;\n\t}\n\n\tconst ActionsComponent = () => {\n\t\tif ( slug !== 'google-fonts' || renderConfirmDialog || selectedFont ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tposition: 'bottom left',\n\t\t\t\t} }\n\t\t\t\tcontrols={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: __( 'Revoke access to Google Fonts' ),\n\t\t\t\t\t\tonClick: revokeAccess,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isLoading && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isLoading && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath=\"/\"\n\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.name }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.description }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t<ActionsComponent />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Flex>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__search\"\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t</Flex>\n\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\n\t\t\t\t\t\t\t{ !! selectedCollection?.font_families?.length &&\n\t\t\t\t\t\t\t\t! fonts.length && (\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'No fonts found. Try with a different search term'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t\t\t\t{ items.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\tkey={ font.font_family_settings.slug }\n\t\t\t\t\t\t\t\t\t\tfont={ font.font_family_settings }\n\t\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedFont(\n\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedFont( null );\n\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ selectedFont?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __( 'Select font variants to install.' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getSortedFontFaces( selectedFont ).map(\n\t\t\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\t\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant={\n\t\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.slug,\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.fontFace\n\t\t\t\t\t\t\t\t\t\t\t\t\t? face\n\t\t\t\t\t\t\t\t\t\t\t\t\t: null, // If the font has no fontFace, we want to check if the font is in the outline\n\t\t\t\t\t\t\t\t\t\t\t\tfontToInstallOutline\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t{ selectedFont && (\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ handleInstall }\n\t\t\t\t\t\t\t\tisBusy={ isInstalling }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tfontsToInstall.length === 0 || isInstalling\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Install' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! selectedFont && (\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'First page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>«</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page - 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>‹</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Total number of pages.\n\t\t\t\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t\t\t\t'Page <CurrentPageControl /> of %s',\n\t\t\t\t\t\t\t\t\t\t\t'paging'\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tCurrentPageControl: (\n\t\t\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Current page'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ page }\n\t\t\t\t\t\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t\t\t\t\t\t...Array( totalPages ),\n\t\t\t\t\t\t\t\t\t\t\t\t].map( ( e, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newPage ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetPage(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt( newPage )\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsize={ 'compact' }\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page + 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>›</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Last page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( totalPages ) }\n\t\t\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>»</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_context","_previewStyles","getPreviewUrl","fontFace","preview","src","Array","isArray","getDisplayFontFace","font","fontStyle","fontWeight","length","find","face","fontFamily","fake","FontDemo","text","ref","useRef","style","getFamilyPreviewStyle","name","customPreviewUrl","isIntersecting","setIsIntersecting","useState","isAssetLoaded","setIsAssetLoaded","loadFontFaceAsset","useContext","FontLibraryContext","previewUrl","isPreviewImage","match","faceStyles","getFacePreviewStyle","textDemoStyle","fontSize","lineHeight","opacity","useEffect","observer","window","IntersectionObserver","entry","observe","current","disconnect","loadAsset","_react","createElement","loading","alt","className","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-demo.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalText as Text } from '@wordpress/components';\nimport { useContext, useEffect, useState, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport {\n\tgetFacePreviewStyle,\n\tgetFamilyPreviewStyle,\n} from './utils/preview-styles';\n\nfunction getPreviewUrl( fontFace ) {\n\tif ( fontFace.preview ) {\n\t\treturn fontFace.preview;\n\t}\n\tif ( fontFace.src ) {\n\t\treturn Array.isArray( fontFace.src ) ? fontFace.src[ 0 ] : fontFace.src;\n\t}\n}\n\nfunction getDisplayFontFace( font ) {\n\t// if this IS a font face return it\n\tif ( font.fontStyle || font.fontWeight ) {\n\t\treturn font;\n\t}\n\t// if this is a font family with a collection of font faces\n\t// return the first one that is normal and 400 OR just the first one\n\tif ( font.fontFace && font.fontFace.length ) {\n\t\treturn (\n\t\t\tfont.fontFace.find(\n\t\t\t\t( face ) =>\n\t\t\t\t\tface.fontStyle === 'normal' && face.fontWeight === '400'\n\t\t\t) || font.fontFace[ 0 ]\n\t\t);\n\t}\n\t// This must be a font family with no font faces\n\t// return a fake font face\n\treturn {\n\t\tfontStyle: 'normal',\n\t\tfontWeight: '400',\n\t\tfontFamily: font.fontFamily,\n\t\tfake: true,\n\t};\n}\n\nfunction FontDemo( { font, text } ) {\n\tconst ref = useRef( null );\n\n\tconst fontFace = getDisplayFontFace( font );\n\tconst style = getFamilyPreviewStyle( font );\n\ttext = text || font.name;\n\tconst customPreviewUrl = font.preview;\n\n\tconst [ isIntersecting, setIsIntersecting ] = useState( false );\n\tconst [ isAssetLoaded, setIsAssetLoaded ] = useState( false );\n\tconst { loadFontFaceAsset } = useContext( FontLibraryContext );\n\n\tconst previewUrl = customPreviewUrl ?? getPreviewUrl( fontFace );\n\tconst isPreviewImage =\n\t\tpreviewUrl && previewUrl.match( /\\.(png|jpg|jpeg|gif|svg)$/i );\n\n\tconst faceStyles = getFacePreviewStyle( fontFace );\n\tconst textDemoStyle = {\n\t\tfontSize: '18px',\n\t\tlineHeight: 1,\n\t\topacity: isAssetLoaded ? '1' : '0',\n\t\t...style,\n\t\t...faceStyles,\n\t};\n\n\tuseEffect( () => {\n\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\tsetIsIntersecting( entry.isIntersecting );\n\t\t}, {} );\n\t\tobserver.observe( ref.current );\n\t\treturn () => observer.disconnect();\n\t}, [ ref ] );\n\n\tuseEffect( () => {\n\t\tconst loadAsset = async () => {\n\t\t\tif ( isIntersecting ) {\n\t\t\t\tif ( ! isPreviewImage && fontFace.src ) {\n\t\t\t\t\tawait loadFontFaceAsset( fontFace );\n\t\t\t\t}\n\t\t\t\tsetIsAssetLoaded( true );\n\t\t\t}\n\t\t};\n\t\tloadAsset();\n\t}, [ fontFace, isIntersecting, loadFontFaceAsset, isPreviewImage ] );\n\n\treturn (\n\t\t<div ref={ ref }>\n\t\t\t{ isPreviewImage ? (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ previewUrl }\n\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t\talt={ text }\n\t\t\t\t\tclassName=\"font-library-modal__font-variant_demo-image\"\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ textDemoStyle }\n\t\t\t\t\tclassName=\"font-library-modal__font-variant_demo-text\"\n\t\t\t\t>\n\t\t\t\t\t{ text }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontDemo;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_element","_context","_previewStyles","getPreviewUrl","fontFace","preview","src","Array","isArray","getDisplayFontFace","font","fontStyle","fontWeight","length","find","face","fontFamily","fake","FontDemo","text","ref","useRef","style","getFamilyPreviewStyle","name","customPreviewUrl","isIntersecting","setIsIntersecting","useState","isAssetLoaded","setIsAssetLoaded","loadFontFaceAsset","useContext","FontLibraryContext","previewUrl","isPreviewImage","match","faceStyles","getFacePreviewStyle","textDemoStyle","fontSize","lineHeight","opacity","useEffect","observer","window","IntersectionObserver","entry","observe","current","disconnect","loadAsset","_react","createElement","loading","alt","className","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-demo.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalText as Text } from '@wordpress/components';\nimport { useContext, useEffect, useState, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport {\n\tgetFacePreviewStyle,\n\tgetFamilyPreviewStyle,\n} from './utils/preview-styles';\n\nfunction getPreviewUrl( fontFace ) {\n\tif ( fontFace.preview ) {\n\t\treturn fontFace.preview;\n\t}\n\tif ( fontFace.src ) {\n\t\treturn Array.isArray( fontFace.src ) ? fontFace.src[ 0 ] : fontFace.src;\n\t}\n}\n\nfunction getDisplayFontFace( font ) {\n\t// if this IS a font face return it\n\tif ( font.fontStyle || font.fontWeight ) {\n\t\treturn font;\n\t}\n\t// if this is a font family with a collection of font faces\n\t// return the first one that is normal and 400 OR just the first one\n\tif ( font.fontFace && font.fontFace.length ) {\n\t\treturn (\n\t\t\tfont.fontFace.find(\n\t\t\t\t( face ) =>\n\t\t\t\t\tface.fontStyle === 'normal' && face.fontWeight === '400'\n\t\t\t) || font.fontFace[ 0 ]\n\t\t);\n\t}\n\t// This must be a font family with no font faces\n\t// return a fake font face\n\treturn {\n\t\tfontStyle: 'normal',\n\t\tfontWeight: '400',\n\t\tfontFamily: font.fontFamily,\n\t\tfake: true,\n\t};\n}\n\nfunction FontDemo( { font, text } ) {\n\tconst ref = useRef( null );\n\n\tconst fontFace = getDisplayFontFace( font );\n\tconst style = getFamilyPreviewStyle( font );\n\ttext = text || font.name;\n\tconst customPreviewUrl = font.preview;\n\n\tconst [ isIntersecting, setIsIntersecting ] = useState( false );\n\tconst [ isAssetLoaded, setIsAssetLoaded ] = useState( false );\n\tconst { loadFontFaceAsset } = useContext( FontLibraryContext );\n\n\tconst previewUrl = customPreviewUrl ?? getPreviewUrl( fontFace );\n\tconst isPreviewImage =\n\t\tpreviewUrl && previewUrl.match( /\\.(png|jpg|jpeg|gif|svg)$/i );\n\n\tconst faceStyles = getFacePreviewStyle( fontFace );\n\tconst textDemoStyle = {\n\t\tfontSize: '18px',\n\t\tlineHeight: 1,\n\t\topacity: isAssetLoaded ? '1' : '0',\n\t\t...style,\n\t\t...faceStyles,\n\t};\n\n\tuseEffect( () => {\n\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\tsetIsIntersecting( entry.isIntersecting );\n\t\t}, {} );\n\t\tobserver.observe( ref.current );\n\t\treturn () => observer.disconnect();\n\t}, [ ref ] );\n\n\tuseEffect( () => {\n\t\tconst loadAsset = async () => {\n\t\t\tif ( isIntersecting ) {\n\t\t\t\tif ( ! isPreviewImage && fontFace.src ) {\n\t\t\t\t\tawait loadFontFaceAsset( fontFace );\n\t\t\t\t}\n\t\t\t\tsetIsAssetLoaded( true );\n\t\t\t}\n\t\t};\n\t\tloadAsset();\n\t}, [ fontFace, isIntersecting, loadFontFaceAsset, isPreviewImage ] );\n\n\treturn (\n\t\t<div ref={ ref }>\n\t\t\t{ isPreviewImage ? (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ previewUrl }\n\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t\talt={ text }\n\t\t\t\t\tclassName=\"font-library-modal__font-variant_demo-image\"\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ textDemoStyle }\n\t\t\t\t\tclassName=\"font-library-modal__font-variant_demo-text\"\n\t\t\t\t>\n\t\t\t\t\t{ text }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontDemo;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","GoogleFontsConfirmDialog","handleConfirm","window","localStorage","setItem","dispatchEvent","Event","_react","createElement","className","Card","CardBody","__experimentalHeading","level","__","__experimentalSpacer","margin","__experimentalText","as","Button","__next40pxDefaultSize","variant","onClick","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tCard,\n\tCardBody,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\nfunction GoogleFontsConfirmDialog() {\n\tconst handleConfirm = () => {\n\t\t// eslint-disable-next-line no-undef\n\t\twindow.localStorage.setItem(\n\t\t\t'wp-font-library-google-fonts-permission',\n\t\t\t'true'\n\t\t);\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library__google-fonts-confirm\">\n\t\t\t<Card>\n\t\t\t\t<CardBody>\n\t\t\t\t\t<Heading level={ 2 }>\n\t\t\t\t\t\t{ __( 'Connect to Google Fonts' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'To install fonts from Google you must give permission to connect directly to Google servers. The fonts you install will be downloaded from Google and stored on your site. Your site will then use these locally-hosted fonts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 3 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'You can alternatively upload files directly on the Upload tab.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ handleConfirm }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Allow access to Google Fonts' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</CardBody>\n\t\t\t</Card>\n\t\t</div>\n\t);\n}\n\nexport default GoogleFontsConfirmDialog;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAWA,SAASE,wBAAwBA,CAAA,EAAG;EACnC,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC3B;IACAC,MAAM,CAACC,YAAY,CAACC,OAAO,CAC1B,yCAAyC,EACzC,MACD,CAAC;IACDF,MAAM,CAACG,aAAa,CAAE,IAAIC,KAAK,CAAE,SAAU,CAAE,CAAC;EAC/C,CAAC;EAED,OACC,IAAAC,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAoC,GAClD,IAAAF,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAW,IAAI,QACJ,IAAAH,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAY,QAAQ,QACR,IAAAJ,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAa,qBAAO;IAACC,KAAK,EAAG;EAAG,GACjB,IAAAC,QAAE,EAAE,yBAA0B,CACxB,CAAC,EACV,IAAAP,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAgB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAT,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAkB,kBAAI;IAACC,EAAE,EAAC;EAAG,GACT,IAAAJ,QAAE,EACH,gOACD,CACK,CAAC,EACP,IAAAP,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAgB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAT,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAkB,kBAAI;IAACC,EAAE,EAAC;EAAG,GACT,IAAAJ,QAAE,EACH,gEACD,CACK,CAAC,EACP,IAAAP,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAgB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAT,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAoB,MAAM;IACNC,qBAAqB;IACrBC,OAAO,EAAC,SAAS;IACjBC,OAAO,EAAGrB;EAAe,GAEvB,IAAAa,QAAE,EAAE,8BAA+B,CAC9B,CACC,CACL,CACF,CAAC;AAER;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEczB,wBAAwB"}
1
+ {"version":3,"names":["_i18n","require","_components","GoogleFontsConfirmDialog","handleConfirm","window","localStorage","setItem","dispatchEvent","Event","_react","createElement","className","Card","CardBody","__experimentalHeading","level","__","__experimentalSpacer","margin","__experimentalText","as","Button","__next40pxDefaultSize","variant","onClick","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tCard,\n\tCardBody,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\nfunction GoogleFontsConfirmDialog() {\n\tconst handleConfirm = () => {\n\t\t// eslint-disable-next-line no-undef\n\t\twindow.localStorage.setItem(\n\t\t\t'wp-font-library-google-fonts-permission',\n\t\t\t'true'\n\t\t);\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library__google-fonts-confirm\">\n\t\t\t<Card>\n\t\t\t\t<CardBody>\n\t\t\t\t\t<Heading level={ 2 }>\n\t\t\t\t\t\t{ __( 'Connect to Google Fonts' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'To install fonts from Google you must give permission to connect directly to Google servers. The fonts you install will be downloaded from Google and stored on your site. Your site will then use these locally-hosted fonts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 3 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'You can alternatively upload files directly on the Upload tab.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ handleConfirm }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Allow access to Google Fonts' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</CardBody>\n\t\t\t</Card>\n\t\t</div>\n\t);\n}\n\nexport default GoogleFontsConfirmDialog;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAWA,SAASE,wBAAwBA,CAAA,EAAG;EACnC,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC3B;IACAC,MAAM,CAACC,YAAY,CAACC,OAAO,CAC1B,yCAAyC,EACzC,MACD,CAAC;IACDF,MAAM,CAACG,aAAa,CAAE,IAAIC,KAAK,CAAE,SAAU,CAAE,CAAC;EAC/C,CAAC;EAED,OACC,IAAAC,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAoC,GAClD,IAAAF,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAW,IAAI,QACJ,IAAAH,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAY,QAAQ,QACR,IAAAJ,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAa,qBAAO;IAACC,KAAK,EAAG;EAAG,GACjB,IAAAC,QAAE,EAAE,yBAA0B,CACxB,CAAC,EACV,IAAAP,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAgB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAT,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAkB,kBAAI;IAACC,EAAE,EAAC;EAAG,GACT,IAAAJ,QAAE,EACH,gOACD,CACK,CAAC,EACP,IAAAP,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAgB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAT,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAkB,kBAAI;IAACC,EAAE,EAAC;EAAG,GACT,IAAAJ,QAAE,EACH,gEACD,CACK,CAAC,EACP,IAAAP,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAgB,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAT,MAAA,CAAAC,aAAA,EAACT,WAAA,CAAAoB,MAAM;IACNC,qBAAqB;IACrBC,OAAO,EAAC,SAAS;IACjBC,OAAO,EAAGrB;EAAe,GAEvB,IAAAa,QAAE,EAAE,8BAA+B,CAC9B,CACC,CACL,CACF,CAAC;AAER;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEczB,wBAAwB","ignoreList":[]}
@@ -29,7 +29,7 @@ const {
29
29
  } = (0, _lockUnlock.unlock)(_components.privateApis);
30
30
  const DEFAULT_TAB = {
31
31
  id: 'installed-fonts',
32
- title: (0, _i18n.__)('Library')
32
+ title: (0, _i18n._x)('Library', 'Font library')
33
33
  };
34
34
  const UPLOAD_TAB = {
35
35
  id: 'upload-fonts',
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_coreData","_data","_element","_installedFonts","_interopRequireDefault","_fontCollection","_uploadFonts","_context","_lockUnlock","Tabs","unlock","componentsPrivateApis","DEFAULT_TAB","id","title","__","UPLOAD_TAB","tabsFromCollections","collections","map","slug","name","length","FontLibraryModal","onRequestClose","defaultTabId","setNotice","useContext","FontLibraryContext","canUserCreate","useSelect","select","canUser","coreStore","tabs","push","onSelect","_react","createElement","Modal","isFullScreen","className","TabList","Tab","key","tabId","contents","default","TabPanel","focusable","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InstalledFonts from './installed-fonts';\nimport FontCollection from './font-collection';\nimport UploadFonts from './upload-fonts';\nimport { FontLibraryContext } from './context';\nimport { unlock } from '../../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst DEFAULT_TAB = {\n\tid: 'installed-fonts',\n\ttitle: __( 'Library' ),\n};\n\nconst UPLOAD_TAB = {\n\tid: 'upload-fonts',\n\ttitle: __( 'Upload' ),\n};\n\nconst tabsFromCollections = ( collections ) =>\n\tcollections.map( ( { slug, name } ) => ( {\n\t\tid: slug,\n\t\ttitle:\n\t\t\tcollections.length === 1 && slug === 'google-fonts'\n\t\t\t\t? __( 'Install Fonts' )\n\t\t\t\t: name,\n\t} ) );\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tdefaultTabId = 'installed-fonts',\n} ) {\n\tconst { collections, setNotice } = useContext( FontLibraryContext );\n\tconst canUserCreate = useSelect( ( select ) => {\n\t\tconst { canUser } = select( coreStore );\n\t\treturn canUser( 'create', 'font-families' );\n\t}, [] );\n\n\tconst tabs = [ DEFAULT_TAB ];\n\n\tif ( canUserCreate ) {\n\t\ttabs.push( UPLOAD_TAB );\n\t\ttabs.push( ...tabsFromCollections( collections || [] ) );\n\t}\n\n\t// Reset notice when new tab is selected.\n\tconst onSelect = () => {\n\t\tsetNotice( null );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Fonts' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tisFullScreen\n\t\t\tclassName=\"font-library-modal\"\n\t\t>\n\t\t\t<div className=\"font-library-modal__tabs\">\n\t\t\t\t<Tabs defaultTabId={ defaultTabId } onSelect={ onSelect }>\n\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t{ tabs.map( ( { id, title } ) => (\n\t\t\t\t\t\t\t<Tabs.Tab key={ id } tabId={ id }>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( { id } ) => {\n\t\t\t\t\t\tlet contents;\n\t\t\t\t\t\tswitch ( id ) {\n\t\t\t\t\t\t\tcase 'upload-fonts':\n\t\t\t\t\t\t\t\tcontents = <UploadFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\t\t\tcontents = <InstalledFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tcontents = <FontCollection slug={ id } />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\t\ttabId={ id }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contents }\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_components","_coreData","_data","_element","_installedFonts","_interopRequireDefault","_fontCollection","_uploadFonts","_context","_lockUnlock","Tabs","unlock","componentsPrivateApis","DEFAULT_TAB","id","title","_x","UPLOAD_TAB","__","tabsFromCollections","collections","map","slug","name","length","FontLibraryModal","onRequestClose","defaultTabId","setNotice","useContext","FontLibraryContext","canUserCreate","useSelect","select","canUser","coreStore","tabs","push","onSelect","_react","createElement","Modal","isFullScreen","className","TabList","Tab","key","tabId","contents","default","TabPanel","focusable","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InstalledFonts from './installed-fonts';\nimport FontCollection from './font-collection';\nimport UploadFonts from './upload-fonts';\nimport { FontLibraryContext } from './context';\nimport { unlock } from '../../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst DEFAULT_TAB = {\n\tid: 'installed-fonts',\n\ttitle: _x( 'Library', 'Font library' ),\n};\n\nconst UPLOAD_TAB = {\n\tid: 'upload-fonts',\n\ttitle: __( 'Upload' ),\n};\n\nconst tabsFromCollections = ( collections ) =>\n\tcollections.map( ( { slug, name } ) => ( {\n\t\tid: slug,\n\t\ttitle:\n\t\t\tcollections.length === 1 && slug === 'google-fonts'\n\t\t\t\t? __( 'Install Fonts' )\n\t\t\t\t: name,\n\t} ) );\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tdefaultTabId = 'installed-fonts',\n} ) {\n\tconst { collections, setNotice } = useContext( FontLibraryContext );\n\tconst canUserCreate = useSelect( ( select ) => {\n\t\tconst { canUser } = select( coreStore );\n\t\treturn canUser( 'create', 'font-families' );\n\t}, [] );\n\n\tconst tabs = [ DEFAULT_TAB ];\n\n\tif ( canUserCreate ) {\n\t\ttabs.push( UPLOAD_TAB );\n\t\ttabs.push( ...tabsFromCollections( collections || [] ) );\n\t}\n\n\t// Reset notice when new tab is selected.\n\tconst onSelect = () => {\n\t\tsetNotice( null );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Fonts' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tisFullScreen\n\t\t\tclassName=\"font-library-modal\"\n\t\t>\n\t\t\t<div className=\"font-library-modal__tabs\">\n\t\t\t\t<Tabs defaultTabId={ defaultTabId } onSelect={ onSelect }>\n\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t{ tabs.map( ( { id, title } ) => (\n\t\t\t\t\t\t\t<Tabs.Tab key={ id } tabId={ id }>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( { id } ) => {\n\t\t\t\t\t\tlet contents;\n\t\t\t\t\t\tswitch ( id ) {\n\t\t\t\t\t\t\tcase 'upload-fonts':\n\t\t\t\t\t\t\t\tcontents = <UploadFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\t\t\tcontents = <InstalledFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tcontents = <FontCollection slug={ id } />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\t\ttabId={ id }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contents }\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAIA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAKA,IAAAK,eAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,eAAA,GAAAD,sBAAA,CAAAN,OAAA;AACA,IAAAQ,YAAA,GAAAF,sBAAA,CAAAN,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AAnBA;AACA;AACA;;AAUA;AACA;AACA;;AAOA,MAAM;EAAEW;AAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEhD,MAAMC,WAAW,GAAG;EACnBC,EAAE,EAAE,iBAAiB;EACrBC,KAAK,EAAE,IAAAC,QAAE,EAAE,SAAS,EAAE,cAAe;AACtC,CAAC;AAED,MAAMC,UAAU,GAAG;EAClBH,EAAE,EAAE,cAAc;EAClBC,KAAK,EAAE,IAAAG,QAAE,EAAE,QAAS;AACrB,CAAC;AAED,MAAMC,mBAAmB,GAAKC,WAAW,IACxCA,WAAW,CAACC,GAAG,CAAE,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,MAAQ;EACxCT,EAAE,EAAEQ,IAAI;EACRP,KAAK,EACJK,WAAW,CAACI,MAAM,KAAK,CAAC,IAAIF,IAAI,KAAK,cAAc,GAChD,IAAAJ,QAAE,EAAE,eAAgB,CAAC,GACrBK;AACL,CAAC,CAAG,CAAC;AAEN,SAASE,gBAAgBA,CAAE;EAC1BC,cAAc;EACdC,YAAY,GAAG;AAChB,CAAC,EAAG;EACH,MAAM;IAAEP,WAAW;IAAEQ;EAAU,CAAC,GAAG,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EACnE,MAAMC,aAAa,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC9C,MAAM;MAAEC;IAAQ,CAAC,GAAGD,MAAM,CAAEE,eAAU,CAAC;IACvC,OAAOD,OAAO,CAAE,QAAQ,EAAE,eAAgB,CAAC;EAC5C,CAAC,EAAE,EAAG,CAAC;EAEP,MAAME,IAAI,GAAG,CAAEvB,WAAW,CAAE;EAE5B,IAAKkB,aAAa,EAAG;IACpBK,IAAI,CAACC,IAAI,CAAEpB,UAAW,CAAC;IACvBmB,IAAI,CAACC,IAAI,CAAE,GAAGlB,mBAAmB,CAAEC,WAAW,IAAI,EAAG,CAAE,CAAC;EACzD;;EAEA;EACA,MAAMkB,QAAQ,GAAGA,CAAA,KAAM;IACtBV,SAAS,CAAE,IAAK,CAAC;EAClB,CAAC;EAED,OACC,IAAAW,MAAA,CAAAC,aAAA,EAACxC,WAAA,CAAAyC,KAAK;IACL1B,KAAK,EAAG,IAAAG,QAAE,EAAE,OAAQ,CAAG;IACvBQ,cAAc,EAAGA,cAAgB;IACjCgB,YAAY;IACZC,SAAS,EAAC;EAAoB,GAE9B,IAAAJ,MAAA,CAAAC,aAAA;IAAKG,SAAS,EAAC;EAA0B,GACxC,IAAAJ,MAAA,CAAAC,aAAA,EAAC9B,IAAI;IAACiB,YAAY,EAAGA,YAAc;IAACW,QAAQ,EAAGA;EAAU,GACxD,IAAAC,MAAA,CAAAC,aAAA,EAAC9B,IAAI,CAACkC,OAAO,QACVR,IAAI,CAACf,GAAG,CAAE,CAAE;IAAEP,EAAE;IAAEC;EAAM,CAAC,KAC1B,IAAAwB,MAAA,CAAAC,aAAA,EAAC9B,IAAI,CAACmC,GAAG;IAACC,GAAG,EAAGhC,EAAI;IAACiC,KAAK,EAAGjC;EAAI,GAC9BC,KACO,CACT,CACW,CAAC,EACbqB,IAAI,CAACf,GAAG,CAAE,CAAE;IAAEP;EAAG,CAAC,KAAM;IACzB,IAAIkC,QAAQ;IACZ,QAASlC,EAAE;MACV,KAAK,cAAc;QAClBkC,QAAQ,GAAG,IAAAT,MAAA,CAAAC,aAAA,EAACjC,YAAA,CAAA0C,OAAW,MAAE,CAAC;QAC1B;MACD,KAAK,iBAAiB;QACrBD,QAAQ,GAAG,IAAAT,MAAA,CAAAC,aAAA,EAACpC,eAAA,CAAA6C,OAAc,MAAE,CAAC;QAC7B;MACD;QACCD,QAAQ,GAAG,IAAAT,MAAA,CAAAC,aAAA,EAAClC,eAAA,CAAA2C,OAAc;UAAC3B,IAAI,EAAGR;QAAI,CAAE,CAAC;IAC3C;IACA,OACC,IAAAyB,MAAA,CAAAC,aAAA,EAAC9B,IAAI,CAACwC,QAAQ;MACbJ,GAAG,EAAGhC,EAAI;MACViC,KAAK,EAAGjC,EAAI;MACZqC,SAAS,EAAG;IAAO,GAEjBH,QACY,CAAC;EAElB,CAAE,CACG,CACF,CACC,CAAC;AAEV;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAJ,OAAA,GAEcxB,gBAAgB","ignoreList":[]}
@@ -42,7 +42,8 @@ function InstalledFonts() {
42
42
  getFontFacesActivated,
43
43
  fontFamiliesHasChanges,
44
44
  notice,
45
- setNotice
45
+ setNotice,
46
+ fontFamilies
46
47
  } = (0, _element.useContext)(_context.FontLibraryContext);
47
48
  const [isConfirmDeleteOpen, setIsConfirmDeleteOpen] = (0, _element.useState)(false);
48
49
  const customFontFamilyId = libraryFontSelected?.source === 'custom' && libraryFontSelected?.id;
@@ -81,9 +82,9 @@ function InstalledFonts() {
81
82
  }, []);
82
83
  return (0, _react.createElement)("div", {
83
84
  className: "font-library-modal__tabpanel-layout"
84
- }, isResolvingLibrary && (0, _react.createElement)(_components.__experimentalHStack, {
85
- align: "center"
86
- }, (0, _react.createElement)(_components.__experimentalSpacer, null), (0, _react.createElement)(_components.Spinner, null), (0, _react.createElement)(_components.__experimentalSpacer, null)), (0, _react.createElement)(_components.__experimentalNavigatorProvider, {
85
+ }, isResolvingLibrary && (0, _react.createElement)("div", {
86
+ className: "font-library-modal__loading"
87
+ }, (0, _react.createElement)(ProgressBar, null)), !isResolvingLibrary && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalNavigatorProvider, {
87
88
  initialPath: libraryFontSelected ? '/fontFamily' : '/'
88
89
  }, (0, _react.createElement)(_components.__experimentalNavigatorScreen, {
89
90
  path: "/"
@@ -120,9 +121,7 @@ function InstalledFonts() {
120
121
  onClick: () => {
121
122
  handleSetLibraryFontSelected(font);
122
123
  }
123
- }))), (0, _react.createElement)(_components.__experimentalSpacer, {
124
- margin: 16
125
- })), (0, _react.createElement)(_components.__experimentalNavigatorScreen, {
124
+ })))), (0, _react.createElement)(_components.__experimentalNavigatorScreen, {
126
125
  path: "/fontFamily"
127
126
  }, (0, _react.createElement)(ConfirmDeleteDialog, {
128
127
  font: libraryFontSelected,
@@ -172,10 +171,12 @@ function InstalledFonts() {
172
171
  onClick: handleUninstallClick
173
172
  }, (0, _i18n.__)('Delete')), (0, _react.createElement)(_components.Button, {
174
173
  variant: "primary",
175
- onClick: saveFontFamilies,
174
+ onClick: () => {
175
+ saveFontFamilies(fontFamilies);
176
+ },
176
177
  disabled: !fontFamiliesHasChanges,
177
178
  __experimentalIsFocusable: true
178
- }, (0, _i18n.__)('Update'))));
179
+ }, (0, _i18n.__)('Update')))));
179
180
  }
180
181
  function ConfirmDeleteDialog({
181
182
  font,