@wordpress/edit-site 6.2.0 → 6.4.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.
- package/CHANGELOG.md +4 -0
- package/build/components/add-new-pattern/index.js +8 -2
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/{add-new-page → add-new-post}/index.js +21 -17
- package/build/components/add-new-post/index.js.map +1 -0
- package/build/components/add-new-template/index.js +3 -1
- package/build/components/add-new-template/index.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +6 -85
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/editor/index.js +21 -3
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +0 -5
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/block-preview-panel.js +14 -5
- package/build/components/global-styles/block-preview-panel.js.map +1 -1
- package/build/components/global-styles/font-families.js +42 -23
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +13 -30
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +4 -4
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +60 -12
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +39 -0
- package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
- package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +39 -0
- package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
- package/build/components/global-styles/font-sizes/font-size-preview.js +44 -0
- package/build/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
- package/build/components/global-styles/font-sizes/font-size.js +213 -0
- package/build/components/global-styles/font-sizes/font-size.js.map +1 -0
- package/build/components/global-styles/font-sizes/font-sizes-count.js +50 -0
- package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
- package/build/components/global-styles/font-sizes/font-sizes.js +163 -0
- package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -0
- package/build/components/global-styles/font-sizes/rename-font-size-dialog.js +67 -0
- package/build/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
- package/build/components/global-styles/hooks.js +0 -40
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/preview-typography.js +47 -0
- package/build/components/global-styles/preview-typography.js.map +1 -0
- package/build/components/global-styles/screen-block.js +17 -1
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-layout.js +5 -1
- package/build/components/global-styles/screen-layout.js.map +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build/components/global-styles/screen-style-variations.js +2 -2
- package/build/components/global-styles/screen-style-variations.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +3 -2
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/shadows-edit-panel.js +1 -2
- package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build/components/global-styles/size-control/index.js +85 -0
- package/build/components/global-styles/size-control/index.js.map +1 -0
- package/build/components/global-styles/style-variations-container.js +8 -5
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/typography-elements.js +0 -2
- package/build/components/global-styles/typography-elements.js.map +1 -1
- package/build/components/global-styles/ui.js +8 -0
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/variations/variation.js +4 -4
- package/build/components/global-styles/variations/variation.js.map +1 -1
- package/build/components/global-styles/variations/variations-color.js +4 -3
- package/build/components/global-styles/variations/variations-color.js.map +1 -1
- package/build/components/global-styles/variations/variations-typography.js +15 -29
- package/build/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build/components/global-styles-sidebar/index.js +2 -2
- package/build/components/global-styles-sidebar/index.js.map +1 -1
- package/build/components/layout/index.js +22 -8
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/router.js +30 -43
- package/build/components/layout/router.js.map +1 -1
- package/build/components/page-patterns/header.js +1 -1
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/index.js +65 -49
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/search-items.js +29 -4
- package/build/components/page-patterns/search-items.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +22 -55
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates/index.js +56 -50
- package/build/components/page-templates/index.js.map +1 -1
- package/build/components/pagination/index.js +4 -4
- package/build/components/pagination/index.js.map +1 -1
- package/build/components/post-edit/index.js +105 -0
- package/build/components/post-edit/index.js.map +1 -0
- package/build/components/post-fields/index.js +314 -0
- package/build/components/post-fields/index.js.map +1 -0
- package/build/components/post-list/index.js +281 -0
- package/build/components/post-list/index.js.map +1 -0
- package/build/components/posts-app/index.js +11 -17
- package/build/components/posts-app/index.js.map +1 -1
- package/build/components/posts-app/router.js +85 -0
- package/build/components/posts-app/router.js.map +1 -0
- package/build/components/revisions/index.js +10 -7
- package/build/components/revisions/index.js.map +1 -1
- package/build/components/save-panel/index.js +1 -1
- package/build/components/save-panel/index.js.map +1 -1
- package/build/components/sidebar-dataviews/add-new-view.js +4 -1
- package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
- package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +119 -93
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +44 -2
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/content.js +64 -0
- package/build/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
- package/build/components/sidebar-navigation-screen-global-styles/index.js +2 -47
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
- package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build/components/site-hub/index.js +81 -1
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +2 -2
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +65 -42
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build/index.js +10 -0
- package/build/index.js.map +1 -1
- package/build/posts.js +57 -2
- package/build/posts.js.map +1 -1
- package/build/store/private-actions.js +7 -2
- package/build/store/private-actions.js.map +1 -1
- package/build/store/selectors.js +34 -6
- package/build/store/selectors.js.map +1 -1
- package/build/utils/get-filtered-template-parts.js +64 -0
- package/build/utils/get-filtered-template-parts.js.map +1 -0
- package/build-module/components/add-new-pattern/index.js +8 -2
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/{add-new-page → add-new-post}/index.js +21 -17
- package/build-module/components/add-new-post/index.js.map +1 -0
- package/build-module/components/add-new-template/index.js +3 -1
- package/build-module/components/add-new-template/index.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +6 -85
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/editor/index.js +21 -3
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +0 -5
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/block-preview-panel.js +14 -5
- package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +44 -25
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +14 -31
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js +4 -4
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +63 -15
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +32 -0
- package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +32 -0
- package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/font-size-preview.js +37 -0
- package/build-module/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/font-size.js +207 -0
- package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/font-sizes-count.js +43 -0
- package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/font-sizes.js +157 -0
- package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +61 -0
- package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
- package/build-module/components/global-styles/hooks.js +0 -38
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/preview-typography.js +39 -0
- package/build-module/components/global-styles/preview-typography.js.map +1 -0
- package/build-module/components/global-styles/screen-block.js +18 -1
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-layout.js +5 -1
- package/build-module/components/global-styles/screen-layout.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build-module/components/global-styles/screen-style-variations.js +2 -2
- package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +3 -2
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/shadows-edit-panel.js +1 -2
- package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build-module/components/global-styles/size-control/index.js +79 -0
- package/build-module/components/global-styles/size-control/index.js.map +1 -0
- package/build-module/components/global-styles/style-variations-container.js +9 -6
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/typography-elements.js +0 -2
- package/build-module/components/global-styles/typography-elements.js.map +1 -1
- package/build-module/components/global-styles/ui.js +8 -0
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/variations/variation.js +5 -5
- package/build-module/components/global-styles/variations/variation.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-color.js +5 -4
- package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-typography.js +16 -30
- package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build-module/components/global-styles-sidebar/index.js +2 -2
- package/build-module/components/global-styles-sidebar/index.js.map +1 -1
- package/build-module/components/layout/index.js +20 -8
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/router.js +30 -43
- package/build-module/components/layout/router.js.map +1 -1
- package/build-module/components/page-patterns/header.js +1 -1
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/index.js +66 -50
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/search-items.js +28 -4
- package/build-module/components/page-patterns/search-items.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +23 -56
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates/index.js +58 -53
- package/build-module/components/page-templates/index.js.map +1 -1
- package/build-module/components/pagination/index.js +4 -4
- package/build-module/components/pagination/index.js.map +1 -1
- package/build-module/components/post-edit/index.js +98 -0
- package/build-module/components/post-edit/index.js.map +1 -0
- package/build-module/components/post-fields/index.js +306 -0
- package/build-module/components/post-fields/index.js.map +1 -0
- package/build-module/components/post-list/index.js +275 -0
- package/build-module/components/post-list/index.js.map +1 -0
- package/build-module/components/posts-app/index.js +11 -17
- package/build-module/components/posts-app/index.js.map +1 -1
- package/build-module/components/posts-app/router.js +77 -0
- package/build-module/components/posts-app/router.js.map +1 -0
- package/build-module/components/revisions/index.js +10 -7
- package/build-module/components/revisions/index.js.map +1 -1
- package/build-module/components/save-panel/index.js +1 -1
- package/build-module/components/save-panel/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/add-new-view.js +4 -1
- package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +117 -92
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +47 -5
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/content.js +57 -0
- package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -47
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +3 -2
- package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build-module/components/site-hub/index.js +81 -1
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +2 -2
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +61 -38
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build-module/index.js +11 -2
- package/build-module/index.js.map +1 -1
- package/build-module/posts.js +57 -2
- package/build-module/posts.js.map +1 -1
- package/build-module/store/private-actions.js +7 -2
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/selectors.js +35 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/get-filtered-template-parts.js +57 -0
- package/build-module/utils/get-filtered-template-parts.js.map +1 -0
- package/build-style/posts-rtl.css +668 -510
- package/build-style/posts.css +668 -510
- package/build-style/style-rtl.css +772 -702
- package/build-style/style.css +772 -702
- package/package.json +41 -41
- package/src/components/add-new-pattern/index.js +8 -2
- package/src/components/{add-new-page → add-new-post}/index.js +28 -22
- package/src/components/add-new-template/index.js +4 -1
- package/src/components/add-new-template/style.scss +4 -6
- package/src/components/block-editor/use-site-editor-settings.js +10 -101
- package/src/components/editor/index.js +21 -5
- package/src/components/global-styles/background-panel.js +0 -8
- package/src/components/global-styles/block-preview-panel.js +22 -9
- package/src/components/global-styles/font-families.js +66 -31
- package/src/components/global-styles/font-library-modal/font-collection.js +17 -32
- package/src/components/global-styles/font-library-modal/index.js +4 -2
- package/src/components/global-styles/font-library-modal/installed-fonts.js +94 -13
- package/src/components/global-styles/font-library-modal/style.scss +26 -10
- package/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +43 -0
- package/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +37 -0
- package/src/components/global-styles/font-sizes/font-size-preview.js +43 -0
- package/src/components/global-styles/font-sizes/font-size.js +250 -0
- package/src/components/global-styles/font-sizes/font-sizes-count.js +40 -0
- package/src/components/global-styles/font-sizes/font-sizes.js +263 -0
- package/src/components/global-styles/font-sizes/rename-font-size-dialog.js +70 -0
- package/src/components/global-styles/hooks.js +0 -41
- package/src/components/global-styles/preview-typography.js +39 -0
- package/src/components/global-styles/screen-block.js +20 -0
- package/src/components/global-styles/screen-layout.js +5 -1
- package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
- package/src/components/global-styles/screen-style-variations.js +2 -2
- package/src/components/global-styles/screen-typography.js +3 -2
- package/src/components/global-styles/shadows-edit-panel.js +1 -2
- package/src/components/global-styles/size-control/index.js +86 -0
- package/src/components/global-styles/style-variations-container.js +14 -7
- package/src/components/global-styles/style.scss +13 -3
- package/src/components/global-styles/typography-elements.js +0 -4
- package/src/components/global-styles/ui.js +10 -0
- package/src/components/global-styles/variations/variation.js +5 -5
- package/src/components/global-styles/variations/variations-color.js +6 -4
- package/src/components/global-styles/variations/variations-typography.js +15 -33
- package/src/components/global-styles-sidebar/index.js +2 -2
- package/src/components/layout/index.js +24 -4
- package/src/components/layout/router.js +29 -37
- package/src/components/layout/style.scss +38 -8
- package/src/components/page-patterns/header.js +1 -1
- package/src/components/page-patterns/index.js +62 -64
- package/src/components/page-patterns/search-items.js +37 -3
- package/src/components/page-patterns/style.scss +1 -8
- package/src/components/page-patterns/use-patterns.js +43 -82
- package/src/components/page-templates/index.js +67 -64
- package/src/components/page-templates/style.scss +6 -9
- package/src/components/pagination/index.js +4 -4
- package/src/components/post-edit/index.js +96 -0
- package/src/components/post-edit/style.scss +9 -0
- package/src/components/post-fields/index.js +345 -0
- package/src/components/post-list/index.js +326 -0
- package/src/components/{page-pages → post-list}/style.scss +25 -8
- package/src/components/posts-app/index.js +9 -11
- package/src/components/posts-app/router.js +69 -0
- package/src/components/revisions/index.js +9 -1
- package/src/components/save-panel/index.js +1 -1
- package/src/components/sidebar/style.scss +6 -0
- package/src/components/sidebar-dataviews/add-new-view.js +2 -1
- package/src/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
- package/src/components/sidebar-dataviews/default-views.js +131 -106
- package/src/components/sidebar-dataviews/index.js +39 -4
- package/src/components/sidebar-navigation-screen-global-styles/content.js +55 -0
- package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -54
- package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +2 -1
- package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +10 -2
- package/src/components/site-hub/index.js +84 -1
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -2
- package/src/hooks/push-changes-to-global-styles/index.js +2 -2
- package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +28 -24
- package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +72 -47
- package/src/index.js +14 -1
- package/src/posts.js +63 -2
- package/src/posts.scss +9 -0
- package/src/store/private-actions.js +7 -3
- package/src/store/selectors.js +53 -14
- package/src/store/test/selectors.js +1 -26
- package/src/style.scss +2 -2
- package/src/utils/get-filtered-template-parts.js +61 -0
- package/src/utils/test/get-filtered-template-parts.js +127 -0
- package/build/components/add-new-page/index.js.map +0 -1
- package/build/components/global-styles/screen-background.js +0 -36
- package/build/components/global-styles/screen-background.js.map +0 -1
- package/build/components/page-pages/index.js +0 -473
- package/build/components/page-pages/index.js.map +0 -1
- package/build/components/table/index.js +0 -35
- package/build/components/table/index.js.map +0 -1
- package/build-module/components/add-new-page/index.js.map +0 -1
- package/build-module/components/global-styles/screen-background.js +0 -30
- package/build-module/components/global-styles/screen-background.js.map +0 -1
- package/build-module/components/page-pages/index.js +0 -465
- package/build-module/components/page-pages/index.js.map +0 -1
- package/build-module/components/table/index.js +0 -30
- package/build-module/components/table/index.js.map +0 -1
- package/src/components/global-styles/screen-background.js +0 -29
- package/src/components/page-pages/index.js +0 -564
- package/src/components/table/index.js +0 -33
- package/src/components/table/style.scss +0 -38
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { __ } from '@wordpress/i18n';
|
|
5
|
-
import { __experimentalItemGroup as ItemGroup, __experimentalVStack as VStack, Button } from '@wordpress/components';
|
|
4
|
+
import { __, _x } from '@wordpress/i18n';
|
|
5
|
+
import { __experimentalText as Text, __experimentalItemGroup as ItemGroup, __experimentalVStack as VStack, Button } from '@wordpress/components';
|
|
6
6
|
import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
7
7
|
import { useContext } from '@wordpress/element';
|
|
8
8
|
|
|
@@ -23,10 +23,13 @@ const {
|
|
|
23
23
|
} = unlock(blockEditorPrivateApis);
|
|
24
24
|
function FontFamilies() {
|
|
25
25
|
const {
|
|
26
|
+
baseCustomFonts,
|
|
26
27
|
modalTabOpen,
|
|
27
|
-
setModalTabOpen
|
|
28
|
+
setModalTabOpen,
|
|
29
|
+
setNotice
|
|
28
30
|
} = useContext(FontLibraryContext);
|
|
29
31
|
const [fontFamilies] = useGlobalSetting('typography.fontFamilies');
|
|
32
|
+
const [baseFontFamilies] = useGlobalSetting('typography.fontFamilies', undefined, 'base');
|
|
30
33
|
const themeFonts = fontFamilies?.theme ? fontFamilies.theme.map(f => setUIValuesNeeded(f, {
|
|
31
34
|
source: 'theme'
|
|
32
35
|
})).sort((a, b) => a.name.localeCompare(b.name)) : [];
|
|
@@ -34,39 +37,55 @@ function FontFamilies() {
|
|
|
34
37
|
source: 'custom'
|
|
35
38
|
})).sort((a, b) => a.name.localeCompare(b.name)) : [];
|
|
36
39
|
const hasFonts = 0 < customFonts.length || 0 < themeFonts.length;
|
|
40
|
+
const hasInstalledFonts = hasFonts || baseFontFamilies?.theme?.length > 0 || baseCustomFonts?.length > 0;
|
|
37
41
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
38
42
|
children: [!!modalTabOpen && /*#__PURE__*/_jsx(FontLibraryModal, {
|
|
39
43
|
onRequestClose: () => setModalTabOpen(null),
|
|
40
44
|
defaultTabId: modalTabOpen
|
|
41
45
|
}), /*#__PURE__*/_jsxs(VStack, {
|
|
42
|
-
spacing:
|
|
43
|
-
children: [/*#__PURE__*/
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
spacing: 4,
|
|
47
|
+
children: [themeFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
|
|
48
|
+
children: [/*#__PURE__*/_jsx(Subtitle, {
|
|
49
|
+
level: 3,
|
|
50
|
+
children: /* translators: Heading for a list of fonts provided by the theme. */
|
|
51
|
+
_x('Theme', 'font source')
|
|
52
|
+
}), /*#__PURE__*/_jsx(ItemGroup, {
|
|
48
53
|
isBordered: true,
|
|
49
54
|
isSeparated: true,
|
|
50
|
-
children:
|
|
55
|
+
children: themeFonts.map(font => /*#__PURE__*/_jsx(FontFamilyItem, {
|
|
51
56
|
font: font
|
|
52
|
-
}, font.slug))
|
|
57
|
+
}, font.slug))
|
|
58
|
+
})]
|
|
59
|
+
}), customFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
|
|
60
|
+
children: [/*#__PURE__*/_jsx(Subtitle, {
|
|
61
|
+
level: 3,
|
|
62
|
+
children: /* translators: Heading for a list of fonts installed by the user. */
|
|
63
|
+
_x('Custom', 'font source')
|
|
64
|
+
}), /*#__PURE__*/_jsx(ItemGroup, {
|
|
65
|
+
isBordered: true,
|
|
66
|
+
isSeparated: true,
|
|
67
|
+
children: customFonts.map(font => /*#__PURE__*/_jsx(FontFamilyItem, {
|
|
53
68
|
font: font
|
|
54
|
-
}, font.slug))
|
|
55
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
56
|
-
className: "edit-site-global-styles-font-families__manage-fonts",
|
|
57
|
-
variant: "secondary",
|
|
58
|
-
__next40pxDefaultSize: true,
|
|
59
|
-
onClick: () => setModalTabOpen('installed-fonts'),
|
|
60
|
-
children: __('Manage fonts')
|
|
69
|
+
}, font.slug))
|
|
61
70
|
})]
|
|
62
|
-
})
|
|
63
|
-
children: [
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
children: __('
|
|
71
|
+
}), !hasFonts && /*#__PURE__*/_jsxs(VStack, {
|
|
72
|
+
children: [/*#__PURE__*/_jsx(Subtitle, {
|
|
73
|
+
level: 3,
|
|
74
|
+
children: __('Fonts')
|
|
75
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
76
|
+
as: "p",
|
|
77
|
+
children: hasInstalledFonts ? __('No fonts activated.') : __('No fonts installed.')
|
|
69
78
|
})]
|
|
79
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
80
|
+
className: "edit-site-global-styles-font-families__manage-fonts",
|
|
81
|
+
variant: "secondary",
|
|
82
|
+
__next40pxDefaultSize: true,
|
|
83
|
+
onClick: () => {
|
|
84
|
+
// Reset notice when opening the modal.
|
|
85
|
+
setNotice(null);
|
|
86
|
+
setModalTabOpen(hasInstalledFonts ? 'installed-fonts' : 'upload-fonts');
|
|
87
|
+
},
|
|
88
|
+
children: hasInstalledFonts ? __('Manage fonts') : __('Add fonts')
|
|
70
89
|
})]
|
|
71
90
|
})]
|
|
72
91
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","__experimentalItemGroup","ItemGroup","__experimentalVStack","VStack","Button","privateApis","blockEditorPrivateApis","useContext","FontLibraryProvider","FontLibraryContext","FontLibraryModal","FontFamilyItem","Subtitle","setUIValuesNeeded","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","FontFamilies","modalTabOpen","setModalTabOpen","fontFamilies","themeFonts","theme","map","f","source","sort","a","b","name","localeCompare","customFonts","custom","hasFonts","length","children","onRequestClose","defaultTabId","spacing","level","isBordered","isSeparated","font","slug","className","variant","__next40pxDefaultSize","onClick","props"],"sources":["@wordpress/edit-site/src/components/global-styles/font-families.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontLibraryProvider, {\n\tFontLibraryContext,\n} from './font-library-modal/context';\nimport FontLibraryModal from './font-library-modal';\nimport FontFamilyItem from './font-family-item';\nimport Subtitle from './subtitle';\nimport { setUIValuesNeeded } from './font-library-modal/utils';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction FontFamilies() {\n\tconst { modalTabOpen, setModalTabOpen }
|
|
1
|
+
{"version":3,"names":["__","_x","__experimentalText","Text","__experimentalItemGroup","ItemGroup","__experimentalVStack","VStack","Button","privateApis","blockEditorPrivateApis","useContext","FontLibraryProvider","FontLibraryContext","FontLibraryModal","FontFamilyItem","Subtitle","setUIValuesNeeded","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","FontFamilies","baseCustomFonts","modalTabOpen","setModalTabOpen","setNotice","fontFamilies","baseFontFamilies","undefined","themeFonts","theme","map","f","source","sort","a","b","name","localeCompare","customFonts","custom","hasFonts","length","hasInstalledFonts","children","onRequestClose","defaultTabId","spacing","level","isBordered","isSeparated","font","slug","as","className","variant","__next40pxDefaultSize","onClick","props"],"sources":["@wordpress/edit-site/src/components/global-styles/font-families.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\t__experimentalText as Text,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontLibraryProvider, {\n\tFontLibraryContext,\n} from './font-library-modal/context';\nimport FontLibraryModal from './font-library-modal';\nimport FontFamilyItem from './font-family-item';\nimport Subtitle from './subtitle';\nimport { setUIValuesNeeded } from './font-library-modal/utils';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction FontFamilies() {\n\tconst { baseCustomFonts, modalTabOpen, setModalTabOpen, setNotice } =\n\t\tuseContext( FontLibraryContext );\n\tconst [ fontFamilies ] = useGlobalSetting( 'typography.fontFamilies' );\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst 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\tconst hasFonts = 0 < customFonts.length || 0 < themeFonts.length;\n\n\tconst hasInstalledFonts =\n\t\thasFonts ||\n\t\tbaseFontFamilies?.theme?.length > 0 ||\n\t\tbaseCustomFonts?.length > 0;\n\n\treturn (\n\t\t<>\n\t\t\t{ !! modalTabOpen && (\n\t\t\t\t<FontLibraryModal\n\t\t\t\t\tonRequestClose={ () => setModalTabOpen( null ) }\n\t\t\t\t\tdefaultTabId={ modalTabOpen }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t{ themeFonts.length > 0 && (\n\t\t\t\t\t<VStack>\n\t\t\t\t\t\t<Subtitle level={ 3 }>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts provided by the theme. */\n\t\t\t\t\t\t\t\t_x( 'Theme', 'font source' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</Subtitle>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ themeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontFamilyItem\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t{ customFonts.length > 0 && (\n\t\t\t\t\t<VStack>\n\t\t\t\t\t\t<Subtitle level={ 3 }>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts installed by the user. */\n\t\t\t\t\t\t\t\t_x( 'Custom', 'font source' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</Subtitle>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ customFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontFamilyItem\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t{ ! hasFonts && (\n\t\t\t\t\t<VStack>\n\t\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Fonts' ) }</Subtitle>\n\t\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t\t{ hasInstalledFonts\n\t\t\t\t\t\t\t\t? __( 'No fonts activated.' )\n\t\t\t\t\t\t\t\t: __( 'No fonts installed.' ) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"edit-site-global-styles-font-families__manage-fonts\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t// Reset notice when opening the modal.\n\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\tsetModalTabOpen(\n\t\t\t\t\t\t\thasInstalledFonts\n\t\t\t\t\t\t\t\t? 'installed-fonts'\n\t\t\t\t\t\t\t\t: 'upload-fonts'\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ hasInstalledFonts\n\t\t\t\t\t\t? __( 'Manage fonts' )\n\t\t\t\t\t\t: __( 'Add fonts' ) }\n\t\t\t\t</Button>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default ( { ...props } ) => (\n\t<FontLibraryProvider>\n\t\t<FontFamilies { ...props } />\n\t</FontLibraryProvider>\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { useContext, useEffect, useState, useMemo, createInterpolateElement } fr
|
|
|
5
5
|
import { __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorToParentButton as NavigatorToParentButton, __experimentalHeading as Heading, Notice, SelectControl, FlexItem, Flex, Button, DropdownMenu, SearchControl, ProgressBar } from '@wordpress/components';
|
|
6
6
|
import { debounce } from '@wordpress/compose';
|
|
7
7
|
import { sprintf, __, _x } from '@wordpress/i18n';
|
|
8
|
-
import { moreVertical, chevronLeft } from '@wordpress/icons';
|
|
8
|
+
import { moreVertical, chevronLeft, chevronRight } from '@wordpress/icons';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Internal dependencies
|
|
@@ -315,40 +315,33 @@ function FontCollection({
|
|
|
315
315
|
})]
|
|
316
316
|
}), selectedFont && /*#__PURE__*/_jsx(Flex, {
|
|
317
317
|
justify: "flex-end",
|
|
318
|
-
className: "font-library-
|
|
318
|
+
className: "font-library-modal__footer",
|
|
319
319
|
children: /*#__PURE__*/_jsx(Button, {
|
|
320
320
|
variant: "primary",
|
|
321
321
|
onClick: handleInstall,
|
|
322
322
|
isBusy: isInstalling,
|
|
323
323
|
disabled: fontsToInstall.length === 0 || isInstalling,
|
|
324
|
-
|
|
324
|
+
accessibleWhenDisabled: true,
|
|
325
325
|
children: __('Install')
|
|
326
326
|
})
|
|
327
|
-
}), !selectedFont && /*#__PURE__*/_jsxs(
|
|
327
|
+
}), !selectedFont && /*#__PURE__*/_jsxs(HStack, {
|
|
328
|
+
spacing: 4,
|
|
328
329
|
justify: "center",
|
|
329
|
-
className: "font-library-
|
|
330
|
+
className: "font-library-modal__footer",
|
|
330
331
|
children: [/*#__PURE__*/_jsx(Button, {
|
|
331
|
-
label: __('First page'),
|
|
332
|
-
size: "compact",
|
|
333
|
-
onClick: () => setPage(1),
|
|
334
|
-
disabled: page === 1,
|
|
335
|
-
__experimentalIsFocusable: true,
|
|
336
|
-
children: /*#__PURE__*/_jsx("span", {
|
|
337
|
-
children: "\xAB"
|
|
338
|
-
})
|
|
339
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
340
332
|
label: __('Previous page'),
|
|
341
333
|
size: "compact",
|
|
342
334
|
onClick: () => setPage(page - 1),
|
|
343
335
|
disabled: page === 1,
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
336
|
+
showTooltip: true,
|
|
337
|
+
accessibleWhenDisabled: true,
|
|
338
|
+
icon: chevronLeft,
|
|
339
|
+
tooltipPosition: "top"
|
|
348
340
|
}), /*#__PURE__*/_jsx(HStack, {
|
|
349
341
|
justify: "flex-start",
|
|
350
342
|
expanded: false,
|
|
351
343
|
spacing: 2,
|
|
344
|
+
className: "font-library-modal__page-selection",
|
|
352
345
|
children: createInterpolateElement(sprintf(
|
|
353
346
|
// translators: %s: Total number of pages.
|
|
354
347
|
_x('Page <CurrentPageControl /> of %s', 'paging'), totalPages), {
|
|
@@ -371,19 +364,9 @@ function FontCollection({
|
|
|
371
364
|
size: "compact",
|
|
372
365
|
onClick: () => setPage(page + 1),
|
|
373
366
|
disabled: page === totalPages,
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
})
|
|
378
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
379
|
-
label: __('Last page'),
|
|
380
|
-
size: "compact",
|
|
381
|
-
onClick: () => setPage(totalPages),
|
|
382
|
-
disabled: page === totalPages,
|
|
383
|
-
__experimentalIsFocusable: true,
|
|
384
|
-
children: /*#__PURE__*/_jsx("span", {
|
|
385
|
-
children: "\xBB"
|
|
386
|
-
})
|
|
367
|
+
accessibleWhenDisabled: true,
|
|
368
|
+
icon: chevronRight,
|
|
369
|
+
tooltipPosition: "top"
|
|
387
370
|
})]
|
|
388
371
|
})]
|
|
389
372
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","useEffect","useState","useMemo","createInterpolateElement","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalHeading","Heading","Notice","SelectControl","FlexItem","Flex","Button","DropdownMenu","SearchControl","ProgressBar","debounce","sprintf","__","_x","moreVertical","chevronLeft","FontLibraryContext","FontCard","filterFonts","toggleFont","getFontsOutline","isFontFontFaceInOutline","GoogleFontsConfirmDialog","downloadFontFaceAssets","sortFontFaces","CollectionFontVariant","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_CATEGORY","slug","name","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","notice","setNotice","selectedCollection","find","collection","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","_selectedCollection$f","font_families","collectionCategories","categories","fonts","isLoading","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","error","getSortedFontFaces","fontStyle","fontWeight","ActionsComponent","icon","label","popoverProps","position","controls","title","onClick","className","children","initialPath","path","justify","level","size","description","margin","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","role","font_family_settings","navigatorPath","status","onRemove","spacing","i","selected","variant","isBusy","disabled","__experimentalIsFocusable","expanded","CurrentPageControl","options","Array","newPage","parseInt"],"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\tProgressBar,\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\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{ /*\n\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ items.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings.slug\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\tfont={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\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\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedFont(\n\t\t\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\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/>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }{ ' ' }\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
|
+
{"version":3,"names":["useContext","useEffect","useState","useMemo","createInterpolateElement","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalHeading","Heading","Notice","SelectControl","FlexItem","Flex","Button","DropdownMenu","SearchControl","ProgressBar","debounce","sprintf","__","_x","moreVertical","chevronLeft","chevronRight","FontLibraryContext","FontCard","filterFonts","toggleFont","getFontsOutline","isFontFontFaceInOutline","GoogleFontsConfirmDialog","downloadFontFaceAssets","sortFontFaces","CollectionFontVariant","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_CATEGORY","slug","name","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","notice","setNotice","selectedCollection","find","collection","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","_selectedCollection$f","font_families","collectionCategories","categories","fonts","isLoading","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","error","getSortedFontFaces","fontStyle","fontWeight","ActionsComponent","icon","label","popoverProps","position","controls","title","onClick","className","children","initialPath","path","justify","level","size","description","margin","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","role","font_family_settings","navigatorPath","status","onRemove","spacing","i","selected","variant","isBusy","disabled","accessibleWhenDisabled","showTooltip","tooltipPosition","expanded","CurrentPageControl","options","Array","newPage","parseInt"],"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\tProgressBar,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { moreVertical, chevronLeft, chevronRight } 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\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{ /*\n\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ items.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings.slug\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\tfont={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\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\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedFont(\n\t\t\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\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/>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }{ ' ' }\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__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\taccessibleWhenDisabled\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<HStack\n\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__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={ __( '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\tshowTooltip\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t\t/>\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\tclassName=\"font-library-modal__page-selection\"\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\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\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":[]}
|
|
@@ -44,10 +44,10 @@ function FontLibraryModal({
|
|
|
44
44
|
setNotice
|
|
45
45
|
} = useContext(FontLibraryContext);
|
|
46
46
|
const canUserCreate = useSelect(select => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
return select(coreStore).canUser('create', {
|
|
48
|
+
kind: 'postType',
|
|
49
|
+
name: 'wp_font_family'
|
|
50
|
+
});
|
|
51
51
|
}, []);
|
|
52
52
|
const tabs = [DEFAULT_TAB];
|
|
53
53
|
if (canUserCreate) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","_x","Modal","privateApis","componentsPrivateApis","store","coreStore","useSelect","useContext","InstalledFonts","FontCollection","UploadFonts","FontLibraryContext","unlock","jsx","_jsx","jsxs","_jsxs","Tabs","DEFAULT_TAB","id","title","UPLOAD_TAB","tabsFromCollections","collections","map","slug","name","length","FontLibraryModal","onRequestClose","defaultTabId","setNotice","canUserCreate","select","canUser","tabs","push","onSelect","isFullScreen","className","children","TabList","Tab","tabId","contents","TabPanel","focusable"],"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\
|
|
1
|
+
{"version":3,"names":["__","_x","Modal","privateApis","componentsPrivateApis","store","coreStore","useSelect","useContext","InstalledFonts","FontCollection","UploadFonts","FontLibraryContext","unlock","jsx","_jsx","jsxs","_jsxs","Tabs","DEFAULT_TAB","id","title","UPLOAD_TAB","tabsFromCollections","collections","map","slug","name","length","FontLibraryModal","onRequestClose","defaultTabId","setNotice","canUserCreate","select","canUser","kind","tabs","push","onSelect","isFullScreen","className","children","TabList","Tab","tabId","contents","TabPanel","focusable"],"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\treturn select( coreStore ).canUser( 'create', {\n\t\t\tkind: 'postType',\n\t\t\tname: 'wp_font_family',\n\t\t} );\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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;AACxC,SACCC,KAAK,EACLC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;AAC9B,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,WAAW,MAAM,gBAAgB;AACxC,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,SAASC,MAAM,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE9C,MAAM;EAAEC;AAAK,CAAC,GAAGL,MAAM,CAAET,qBAAsB,CAAC;AAEhD,MAAMe,WAAW,GAAG;EACnBC,EAAE,EAAE,iBAAiB;EACrBC,KAAK,EAAEpB,EAAE,CAAE,SAAS,EAAE,cAAe;AACtC,CAAC;AAED,MAAMqB,UAAU,GAAG;EAClBF,EAAE,EAAE,cAAc;EAClBC,KAAK,EAAErB,EAAE,CAAE,QAAS;AACrB,CAAC;AAED,MAAMuB,mBAAmB,GAAKC,WAAW,IACxCA,WAAW,CAACC,GAAG,CAAE,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,MAAQ;EACxCP,EAAE,EAAEM,IAAI;EACRL,KAAK,EACJG,WAAW,CAACI,MAAM,KAAK,CAAC,IAAIF,IAAI,KAAK,cAAc,GAChD1B,EAAE,CAAE,eAAgB,CAAC,GACrB2B;AACL,CAAC,CAAG,CAAC;AAEN,SAASE,gBAAgBA,CAAE;EAC1BC,cAAc;EACdC,YAAY,GAAG;AAChB,CAAC,EAAG;EACH,MAAM;IAAEP,WAAW;IAAEQ;EAAU,CAAC,GAAGxB,UAAU,CAAEI,kBAAmB,CAAC;EACnE,MAAMqB,aAAa,GAAG1B,SAAS,CAAI2B,MAAM,IAAM;IAC9C,OAAOA,MAAM,CAAE5B,SAAU,CAAC,CAAC6B,OAAO,CAAE,QAAQ,EAAE;MAC7CC,IAAI,EAAE,UAAU;MAChBT,IAAI,EAAE;IACP,CAAE,CAAC;EACJ,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMU,IAAI,GAAG,CAAElB,WAAW,CAAE;EAE5B,IAAKc,aAAa,EAAG;IACpBI,IAAI,CAACC,IAAI,CAAEhB,UAAW,CAAC;IACvBe,IAAI,CAACC,IAAI,CAAE,GAAGf,mBAAmB,CAAEC,WAAW,IAAI,EAAG,CAAE,CAAC;EACzD;;EAEA;EACA,MAAMe,QAAQ,GAAGA,CAAA,KAAM;IACtBP,SAAS,CAAE,IAAK,CAAC;EAClB,CAAC;EAED,oBACCjB,IAAA,CAACb,KAAK;IACLmB,KAAK,EAAGrB,EAAE,CAAE,OAAQ,CAAG;IACvB8B,cAAc,EAAGA,cAAgB;IACjCU,YAAY;IACZC,SAAS,EAAC,oBAAoB;IAAAC,QAAA,eAE9B3B,IAAA;MAAK0B,SAAS,EAAC,0BAA0B;MAAAC,QAAA,eACxCzB,KAAA,CAACC,IAAI;QAACa,YAAY,EAAGA,YAAc;QAACQ,QAAQ,EAAGA,QAAU;QAAAG,QAAA,gBACxD3B,IAAA,CAACG,IAAI,CAACyB,OAAO;UAAAD,QAAA,EACVL,IAAI,CAACZ,GAAG,CAAE,CAAE;YAAEL,EAAE;YAAEC;UAAM,CAAC,kBAC1BN,IAAA,CAACG,IAAI,CAAC0B,GAAG;YAAYC,KAAK,EAAGzB,EAAI;YAAAsB,QAAA,EAC9BrB;UAAK,GADQD,EAEN,CACT;QAAC,CACU,CAAC,EACbiB,IAAI,CAACZ,GAAG,CAAE,CAAE;UAAEL;QAAG,CAAC,KAAM;UACzB,IAAI0B,QAAQ;UACZ,QAAS1B,EAAE;YACV,KAAK,cAAc;cAClB0B,QAAQ,gBAAG/B,IAAA,CAACJ,WAAW,IAAE,CAAC;cAC1B;YACD,KAAK,iBAAiB;cACrBmC,QAAQ,gBAAG/B,IAAA,CAACN,cAAc,IAAE,CAAC;cAC7B;YACD;cACCqC,QAAQ,gBAAG/B,IAAA,CAACL,cAAc;gBAACgB,IAAI,EAAGN;cAAI,CAAE,CAAC;UAC3C;UACA,oBACCL,IAAA,CAACG,IAAI,CAAC6B,QAAQ;YAEbF,KAAK,EAAGzB,EAAI;YACZ4B,SAAS,EAAG,KAAO;YAAAN,QAAA,EAEjBI;UAAQ,GAJJ1B,EAKQ,CAAC;QAElB,CAAE,CAAC;MAAA,CACE;IAAC,CACH;EAAC,CACA,CAAC;AAEV;AAEA,eAAeS,gBAAgB","ignoreList":[]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { Button, __experimentalConfirmDialog as ConfirmDialog, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorToParentButton as NavigatorToParentButton, __experimentalUseNavigator as useNavigator, __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Flex, Notice, ProgressBar } from '@wordpress/components';
|
|
4
|
+
import { Button, __experimentalConfirmDialog as ConfirmDialog, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorToParentButton as NavigatorToParentButton, __experimentalUseNavigator as useNavigator, __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Flex, Notice, ProgressBar, CheckboxControl } from '@wordpress/components';
|
|
5
5
|
import { useEntityRecord, store as coreStore } from '@wordpress/core-data';
|
|
6
6
|
import { useSelect } from '@wordpress/data';
|
|
7
7
|
import { useContext, useEffect, useState } from '@wordpress/element';
|
|
8
|
-
import { __, sprintf } from '@wordpress/i18n';
|
|
8
|
+
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
9
9
|
import { chevronLeft } from '@wordpress/icons';
|
|
10
10
|
import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
11
11
|
|
|
@@ -16,7 +16,7 @@ import { FontLibraryContext } from './context';
|
|
|
16
16
|
import FontCard from './font-card';
|
|
17
17
|
import LibraryFontVariant from './library-font-variant';
|
|
18
18
|
import { sortFontFaces } from './utils/sort-font-faces';
|
|
19
|
-
import { setUIValuesNeeded } from './utils';
|
|
19
|
+
import { setUIValuesNeeded, loadFontFaceInBrowser, unloadFontFaceInBrowser, getDisplaySrcFromFontFace } from './utils';
|
|
20
20
|
import { unlock } from '../../../lock-unlock';
|
|
21
21
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
22
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -25,6 +25,7 @@ const {
|
|
|
25
25
|
useGlobalSetting
|
|
26
26
|
} = unlock(blockEditorPrivateApis);
|
|
27
27
|
function InstalledFonts() {
|
|
28
|
+
var _libraryFontSelected$;
|
|
28
29
|
const {
|
|
29
30
|
baseCustomFonts,
|
|
30
31
|
libraryFontSelected,
|
|
@@ -36,9 +37,9 @@ function InstalledFonts() {
|
|
|
36
37
|
saveFontFamilies,
|
|
37
38
|
getFontFacesActivated,
|
|
38
39
|
notice,
|
|
39
|
-
setNotice
|
|
40
|
-
fontFamilies
|
|
40
|
+
setNotice
|
|
41
41
|
} = useContext(FontLibraryContext);
|
|
42
|
+
const [fontFamilies, setFontFamilies] = useGlobalSetting('typography.fontFamilies');
|
|
42
43
|
const [isConfirmDeleteOpen, setIsConfirmDeleteOpen] = useState(false);
|
|
43
44
|
const [baseFontFamilies] = useGlobalSetting('typography.fontFamilies', undefined, 'base');
|
|
44
45
|
const globalStylesId = useSelect(select => {
|
|
@@ -61,7 +62,11 @@ function InstalledFonts() {
|
|
|
61
62
|
const {
|
|
62
63
|
canUser
|
|
63
64
|
} = select(coreStore);
|
|
64
|
-
return customFontFamilyId && canUser('delete',
|
|
65
|
+
return customFontFamilyId && canUser('delete', {
|
|
66
|
+
kind: 'postType',
|
|
67
|
+
name: 'wp_font_family',
|
|
68
|
+
id: customFontFamilyId
|
|
69
|
+
});
|
|
65
70
|
}, [customFontFamilyId]);
|
|
66
71
|
const shouldDisplayDeleteButton = !!libraryFontSelected && libraryFontSelected?.source !== 'theme' && canUserDelete;
|
|
67
72
|
const handleUninstallClick = () => {
|
|
@@ -90,6 +95,37 @@ function InstalledFonts() {
|
|
|
90
95
|
handleSetLibraryFontSelected(libraryFontSelected);
|
|
91
96
|
refreshLibrary();
|
|
92
97
|
}, []);
|
|
98
|
+
|
|
99
|
+
// Get activated fonts count.
|
|
100
|
+
const activeFontsCount = libraryFontSelected ? getFontFacesActivated(libraryFontSelected.slug, libraryFontSelected.source).length : 0;
|
|
101
|
+
const selectedFontsCount = (_libraryFontSelected$ = libraryFontSelected?.fontFace?.length) !== null && _libraryFontSelected$ !== void 0 ? _libraryFontSelected$ : libraryFontSelected?.fontFamily ? 1 : 0;
|
|
102
|
+
|
|
103
|
+
// Check if any fonts are selected.
|
|
104
|
+
const isIndeterminate = activeFontsCount > 0 && activeFontsCount !== selectedFontsCount;
|
|
105
|
+
|
|
106
|
+
// Check if all fonts are selected.
|
|
107
|
+
const isSelectAllChecked = activeFontsCount === selectedFontsCount;
|
|
108
|
+
|
|
109
|
+
// Toggle select all fonts.
|
|
110
|
+
const toggleSelectAll = () => {
|
|
111
|
+
var _fontFamilies$library;
|
|
112
|
+
const initialFonts = (_fontFamilies$library = fontFamilies?.[libraryFontSelected.source]?.filter(f => f.slug !== libraryFontSelected.slug)) !== null && _fontFamilies$library !== void 0 ? _fontFamilies$library : [];
|
|
113
|
+
const newFonts = isSelectAllChecked ? initialFonts : [...initialFonts, libraryFontSelected];
|
|
114
|
+
setFontFamilies({
|
|
115
|
+
...fontFamilies,
|
|
116
|
+
[libraryFontSelected.source]: newFonts
|
|
117
|
+
});
|
|
118
|
+
if (libraryFontSelected.fontFace) {
|
|
119
|
+
libraryFontSelected.fontFace.forEach(face => {
|
|
120
|
+
if (isSelectAllChecked) {
|
|
121
|
+
unloadFontFaceInBrowser(face, 'all');
|
|
122
|
+
} else {
|
|
123
|
+
loadFontFaceInBrowser(face, getDisplaySrcFromFontFace(face?.src), 'all');
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
const hasFonts = baseThemeFonts.length > 0 || baseCustomFonts.length > 0;
|
|
93
129
|
return /*#__PURE__*/_jsxs("div", {
|
|
94
130
|
className: "font-library-modal__tabpanel-layout",
|
|
95
131
|
children: [isResolvingLibrary && /*#__PURE__*/_jsx("div", {
|
|
@@ -106,14 +142,18 @@ function InstalledFonts() {
|
|
|
106
142
|
status: notice.type,
|
|
107
143
|
onRemove: () => setNotice(null),
|
|
108
144
|
children: notice.message
|
|
109
|
-
}),
|
|
145
|
+
}), !hasFonts && /*#__PURE__*/_jsx(Text, {
|
|
146
|
+
as: "p",
|
|
147
|
+
children: __('No fonts installed.')
|
|
148
|
+
}), baseThemeFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
|
|
110
149
|
children: [/*#__PURE__*/_jsx("h2", {
|
|
111
150
|
className: "font-library-modal__fonts-title",
|
|
112
|
-
children:
|
|
151
|
+
children: /* translators: Heading for a list of fonts provided by the theme. */
|
|
152
|
+
_x('Theme', 'font source')
|
|
113
153
|
}), /*#__PURE__*/_jsx("ul", {
|
|
114
154
|
role: "list",
|
|
115
155
|
className: "font-library-modal__fonts-list",
|
|
116
|
-
children:
|
|
156
|
+
children: baseThemeFonts.map(font => /*#__PURE__*/_jsx("li", {
|
|
117
157
|
className: "font-library-modal__fonts-list-item",
|
|
118
158
|
children: /*#__PURE__*/_jsx(FontCard, {
|
|
119
159
|
font: font,
|
|
@@ -125,14 +165,15 @@ function InstalledFonts() {
|
|
|
125
165
|
})
|
|
126
166
|
}, font.slug))
|
|
127
167
|
})]
|
|
128
|
-
}),
|
|
168
|
+
}), baseCustomFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
|
|
129
169
|
children: [/*#__PURE__*/_jsx("h2", {
|
|
130
170
|
className: "font-library-modal__fonts-title",
|
|
131
|
-
children:
|
|
171
|
+
children: /* translators: Heading for a list of fonts installed by the user. */
|
|
172
|
+
_x('Custom', 'font source')
|
|
132
173
|
}), /*#__PURE__*/_jsx("ul", {
|
|
133
174
|
role: "list",
|
|
134
175
|
className: "font-library-modal__fonts-list",
|
|
135
|
-
children:
|
|
176
|
+
children: baseCustomFonts.map(font => /*#__PURE__*/_jsx("li", {
|
|
136
177
|
className: "font-library-modal__fonts-list-item",
|
|
137
178
|
children: /*#__PURE__*/_jsx(FontCard, {
|
|
138
179
|
font: font,
|
|
@@ -188,7 +229,14 @@ function InstalledFonts() {
|
|
|
188
229
|
margin: 4
|
|
189
230
|
}), /*#__PURE__*/_jsxs(VStack, {
|
|
190
231
|
spacing: 0,
|
|
191
|
-
children: [/*#__PURE__*/_jsx(
|
|
232
|
+
children: [/*#__PURE__*/_jsx(CheckboxControl, {
|
|
233
|
+
className: "font-library-modal__select-all",
|
|
234
|
+
label: __('Select all'),
|
|
235
|
+
checked: isSelectAllChecked,
|
|
236
|
+
onChange: toggleSelectAll,
|
|
237
|
+
indeterminate: isIndeterminate,
|
|
238
|
+
__nextHasNoMarginBottom: true
|
|
239
|
+
}), /*#__PURE__*/_jsx(Spacer, {
|
|
192
240
|
margin: 8
|
|
193
241
|
}), getFontFacesToDisplay(libraryFontSelected).map((face, i) => /*#__PURE__*/_jsx(LibraryFontVariant, {
|
|
194
242
|
font: libraryFontSelected,
|
|
@@ -198,7 +246,7 @@ function InstalledFonts() {
|
|
|
198
246
|
})]
|
|
199
247
|
}), /*#__PURE__*/_jsxs(HStack, {
|
|
200
248
|
justify: "flex-end",
|
|
201
|
-
className: "font-library-
|
|
249
|
+
className: "font-library-modal__footer",
|
|
202
250
|
children: [isInstalling && /*#__PURE__*/_jsx(ProgressBar, {}), shouldDisplayDeleteButton && /*#__PURE__*/_jsx(Button, {
|
|
203
251
|
isDestructive: true,
|
|
204
252
|
variant: "tertiary",
|
|
@@ -210,7 +258,7 @@ function InstalledFonts() {
|
|
|
210
258
|
saveFontFamilies(fontFamilies);
|
|
211
259
|
},
|
|
212
260
|
disabled: !fontFamiliesHasChanges,
|
|
213
|
-
|
|
261
|
+
accessibleWhenDisabled: true,
|
|
214
262
|
children: __('Update')
|
|
215
263
|
})]
|
|
216
264
|
})]
|