@wordpress/edit-site 5.28.2 → 5.28.4
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/build/components/add-new-pattern/index.js +18 -8
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/editor/index.js +1 -1
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/block-preview-panel.js +2 -2
- package/build/components/global-styles/block-preview-panel.js.map +1 -1
- package/build/components/global-styles/font-library-modal/collection-font-variant.js +2 -2
- package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-card.js +10 -15
- package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +167 -37
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-demo.js +29 -8
- package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
- package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
- package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +149 -83
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-variant.js +2 -2
- package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/upload-fonts.js +6 -4
- package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +2 -2
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/ui.js +27 -2
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/header-edit-mode/index.js +1 -1
- package/build/components/header-edit-mode/index.js.map +1 -1
- package/build/components/layout/index.js +8 -3
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/router.js +26 -5
- package/build/components/layout/router.js.map +1 -1
- package/build/components/page-patterns/index.js +14 -14
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +10 -5
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates-template-parts/index.js +1 -0
- package/build/components/page-templates-template-parts/index.js.map +1 -1
- package/build/components/sidebar/index.js +6 -3
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +2 -0
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pages/index.js +3 -1
- package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
- package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/index.js +7 -5
- package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build/components/style-book/index.js +2 -0
- package/build/components/style-book/index.js.map +1 -1
- package/build/store/private-actions.js +3 -1
- package/build/store/private-actions.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +18 -8
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/editor/index.js +1 -1
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/block-preview-panel.js +2 -2
- package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +4 -4
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-card.js +11 -16
- package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +172 -42
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-demo.js +30 -9
- package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
- package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +149 -83
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js +4 -4
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js +7 -5
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js +2 -2
- package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build-module/components/global-styles/ui.js +27 -2
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/header-edit-mode/index.js +1 -1
- package/build-module/components/header-edit-mode/index.js.map +1 -1
- package/build-module/components/layout/index.js +8 -3
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/router.js +26 -5
- package/build-module/components/layout/router.js.map +1 -1
- package/build-module/components/page-patterns/index.js +14 -14
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +10 -5
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates-template-parts/index.js +1 -0
- package/build-module/components/page-templates-template-parts/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +6 -3
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +3 -1
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pages/index.js +3 -1
- package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +7 -5
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build-module/components/style-book/index.js +2 -0
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/store/private-actions.js +3 -1
- package/build-module/store/private-actions.js.map +1 -1
- package/build-style/style-rtl.css +52 -25
- package/build-style/style.css +52 -25
- package/package.json +18 -18
- package/src/components/add-new-pattern/index.js +27 -11
- package/src/components/editor/index.js +1 -0
- package/src/components/global-styles/block-preview-panel.js +2 -2
- package/src/components/global-styles/font-library-modal/collection-font-variant.js +4 -4
- package/src/components/global-styles/font-library-modal/font-card.js +11 -26
- package/src/components/global-styles/font-library-modal/font-collection.js +328 -129
- package/src/components/global-styles/font-library-modal/font-demo.js +38 -4
- package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
- package/src/components/global-styles/font-library-modal/installed-fonts.js +246 -132
- package/src/components/global-styles/font-library-modal/library-font-variant.js +4 -4
- package/src/components/global-styles/font-library-modal/style.scss +17 -13
- package/src/components/global-styles/font-library-modal/upload-fonts.js +13 -5
- package/src/components/global-styles/screen-revisions/index.js +5 -2
- package/src/components/global-styles/ui.js +26 -2
- package/src/components/header-edit-mode/index.js +3 -1
- package/src/components/layout/index.js +47 -30
- package/src/components/layout/router.js +31 -2
- package/src/components/layout/style.scss +7 -0
- package/src/components/page-patterns/index.js +20 -20
- package/src/components/page-patterns/style.scss +10 -0
- package/src/components/page-patterns/use-patterns.js +13 -5
- package/src/components/page-templates-template-parts/index.js +1 -0
- package/src/components/page-templates-template-parts/style.scss +6 -0
- package/src/components/sidebar/index.js +9 -4
- package/src/components/sidebar-dataviews/default-views.js +3 -1
- package/src/components/sidebar-navigation-screen-pages/index.js +10 -6
- package/src/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
- package/src/components/sidebar-navigation-screen-templates-browse/index.js +5 -3
- package/src/components/style-book/index.js +5 -1
- package/src/store/private-actions.js +4 -0
- package/build/components/global-styles/font-library-modal/collection-font-details.js +0 -50
- package/build/components/global-styles/font-library-modal/collection-font-details.js.map +0 -1
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +0 -30
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +0 -1
- package/build/components/global-styles/font-library-modal/fonts-grid.js +0 -57
- package/build/components/global-styles/font-library-modal/fonts-grid.js.map +0 -1
- package/build/components/global-styles/font-library-modal/library-font-card.js +0 -39
- package/build/components/global-styles/font-library-modal/library-font-card.js.map +0 -1
- package/build/components/global-styles/font-library-modal/tab-panel-layout.js +0 -67
- package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/collection-font-details.js +0 -42
- package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +0 -23
- package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js +0 -50
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/library-font-card.js +0 -31
- package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +0 -60
- package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +0 -1
- package/src/components/global-styles/font-library-modal/collection-font-details.js +0 -56
- package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +0 -33
- package/src/components/global-styles/font-library-modal/fonts-grid.js +0 -59
- package/src/components/global-styles/font-library-modal/library-font-card.js +0 -34
- package/src/components/global-styles/font-library-modal/tab-panel-layout.js +0 -85
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","useEffect","useState","useMemo","__experimentalSpacer","Spacer","__experimentalInputControl","InputControl","__experimentalText","Text","SelectControl","Spinner","Icon","FlexItem","Flex","Button","debounce","__","_x","search","closeSmall","TabPanelLayout","FontLibraryContext","FontsGrid","FontCard","filterFonts","CollectionFontDetails","toggleFont","getFontsOutline","GoogleFontsConfirmDialog","downloadFontFaceAssets","DEFAULT_CATEGORY","slug","name","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFont","notice","setNotice","selectedCollection","find","collection","handleStorage","addEventListener","removeEventListener","fetchFontCollection","resetFilters","e","type","message","collectionFonts","_selectedCollection$f","font_families","collectionCategories","categories","fonts","handleCategoryFilter","category","handleUpdateSearchInput","value","debouncedUpdateSearchInput","resetSearch","handleUnselectFont","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","error","createElement","title","description","handleBack","footer","Footer","isDisabled","length","Fragment","margin","placeholder","label","onChange","prefix","icon","suffix","onClick","key","font_family_settings","isInstalling","justify","variant","isBusy","disabled","__experimentalIsFocusable"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext, useEffect, useState, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalInputControl as InputControl,\n\t__experimentalText as Text,\n\tSelectControl,\n\tSpinner,\n\tIcon,\n\tFlexItem,\n\tFlex,\n\tButton,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { __, _x } from '@wordpress/i18n';\nimport { search, closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TabPanelLayout from './tab-panel-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport CollectionFontDetails from './collection-font-details';\nimport { toggleFont } from './utils/toggleFont';\nimport { getFontsOutline } from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { downloadFontFaceAssets } from './utils';\n\nconst DEFAULT_CATEGORY = {\n\tslug: 'all',\n\tname: _x( 'All', 'font categories' ),\n};\nfunction FontCollection( { slug } ) {\n\tconst requiresPermission = slug === 'google-fonts';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn (\n\t\t\twindow.localStorage.getItem(\n\t\t\t\t'wp-font-library-google-fonts-permission'\n\t\t\t) === 'true'\n\t\t);\n\t};\n\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst { collections, getFontCollection, installFont, notice, setNotice } =\n\t\tuseContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.slug === slug\n\t);\n\n\tuseEffect( () => {\n\t\tconst handleStorage = () => {\n\t\t\tsetRenderConfirmDialog(\n\t\t\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t\t\t);\n\t\t};\n\t\thandleStorage();\n\t\twindow.addEventListener( 'storage', handleStorage );\n\t\treturn () => window.removeEventListener( 'storage', handleStorage );\n\t}, [ slug, requiresPermission ] );\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( slug );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\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 handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetFilters( { ...filters, search: '' } );\n\t};\n\n\tconst handleUnselectFont = () => {\n\t\tsetSelectedFont( null );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst handleInstall = async () => {\n\t\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 installFont( fontFamily );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\t\tresetFontsToInstall();\n\t};\n\n\treturn (\n\t\t<TabPanelLayout\n\t\t\ttitle={\n\t\t\t\t! selectedFont ? selectedCollection.name : selectedFont.name\n\t\t\t}\n\t\t\tdescription={\n\t\t\t\t! selectedFont\n\t\t\t\t\t? selectedCollection.description\n\t\t\t\t\t: __( 'Select font variants to install.' )\n\t\t\t}\n\t\t\tnotice={ notice }\n\t\t\thandleBack={ !! selectedFont && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\t<Footer\n\t\t\t\t\thandleInstall={ handleInstall }\n\t\t\t\t\tisDisabled={ fontsToInstall.length === 0 }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ renderConfirmDialog && (\n\t\t\t\t<>\n\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t<GoogleFontsConfirmDialog />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\tprefix={ <Icon icon={ search } /> }\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\tfilters?.search ? (\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\t\tonClick={ resetSearch }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\tvalue={ category.slug }\n\t\t\t\t\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t! selectedCollection?.font_families &&\n\t\t\t\t! notice && <Spinner /> }\n\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t!! selectedCollection?.font_families?.length &&\n\t\t\t\t! fonts.length && (\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'No fonts found. Try with a different search term'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && selectedFont && (\n\t\t\t\t<CollectionFontDetails\n\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\tfontToInstallOutline={ fontToInstallOutline }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<FontsGrid>\n\t\t\t\t\t{ fonts.map( ( font ) => (\n\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\tkey={ font.font_family_settings.slug }\n\t\t\t\t\t\t\tfont={ font.font_family_settings }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetSelectedFont( font.font_family_settings );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</FontsGrid>\n\t\t\t) }\n\t\t</TabPanelLayout>\n\t);\n}\n\nfunction Footer( { handleInstall, isDisabled } ) {\n\tconst { isInstalling } = useContext( FontLibraryContext );\n\n\treturn (\n\t\t<Flex justify=\"flex-end\">\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ handleInstall }\n\t\t\t\tisBusy={ isInstalling }\n\t\t\t\tdisabled={ isDisabled || isInstalling }\n\t\t\t\t__experimentalIsFocusable\n\t\t\t>\n\t\t\t\t{ __( 'Install' ) }\n\t\t\t</Button>\n\t\t</Flex>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,UAAU,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;AAC7E,SACCC,oBAAoB,IAAIC,MAAM,EAC9BC,0BAA0B,IAAIC,YAAY,EAC1CC,kBAAkB,IAAIC,IAAI,EAC1BC,aAAa,EACbC,OAAO,EACPC,IAAI,EACJC,QAAQ,EACRC,IAAI,EACJC,MAAM,QACA,uBAAuB;AAC9B,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;AACxC,SAASC,MAAM,EAAEC,UAAU,QAAQ,kBAAkB;;AAErD;AACA;AACA;AACA,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,WAAW,MAAM,sBAAsB;AAC9C,OAAOC,qBAAqB,MAAM,2BAA2B;AAC7D,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,eAAe,QAAQ,uBAAuB;AACvD,OAAOC,wBAAwB,MAAM,+BAA+B;AACpE,SAASC,sBAAsB,QAAQ,SAAS;AAEhD,MAAMC,gBAAgB,GAAG;EACxBC,IAAI,EAAE,KAAK;EACXC,IAAI,EAAEf,EAAE,CAAE,KAAK,EAAE,iBAAkB;AACpC,CAAC;AACD,SAASgB,cAAcA,CAAE;EAAEF;AAAK,CAAC,EAAG;EAAA,IAAAG,qBAAA;EACnC,MAAMC,kBAAkB,GAAGJ,IAAI,KAAK,cAAc;EAElD,MAAMK,mCAAmC,GAAGA,CAAA,KAAM;IACjD,OACCC,MAAM,CAACC,YAAY,CAACC,OAAO,CAC1B,yCACD,CAAC,KAAK,MAAM;EAEd,CAAC;EAED,MAAM,CAAEC,YAAY,EAAEC,eAAe,CAAE,GAAGxC,QAAQ,CAAE,IAAK,CAAC;EAC1D,MAAM,CAAEyC,cAAc,EAAEC,iBAAiB,CAAE,GAAG1C,QAAQ,CAAE,EAAG,CAAC;EAC5D,MAAM,CAAE2C,OAAO,EAAEC,UAAU,CAAE,GAAG5C,QAAQ,CAAE,CAAC,CAAE,CAAC;EAC9C,MAAM,CAAE6C,mBAAmB,EAAEC,sBAAsB,CAAE,GAAG9C,QAAQ,CAC/DkC,kBAAkB,IAAI,CAAEC,mCAAmC,CAAC,CAC7D,CAAC;EACD,MAAM;IAAEY,WAAW;IAAEC,iBAAiB;IAAEC,WAAW;IAAEC,MAAM;IAAEC;EAAU,CAAC,GACvErD,UAAU,CAAEsB,kBAAmB,CAAC;EACjC,MAAMgC,kBAAkB,GAAGL,WAAW,CAACM,IAAI,CACxCC,UAAU,IAAMA,UAAU,CAACxB,IAAI,KAAKA,IACvC,CAAC;EAED/B,SAAS,CAAE,MAAM;IAChB,MAAMwD,aAAa,GAAGA,CAAA,KAAM;MAC3BT,sBAAsB,CACrBZ,kBAAkB,IAAI,CAAEC,mCAAmC,CAAC,CAC7D,CAAC;IACF,CAAC;IACDoB,aAAa,CAAC,CAAC;IACfnB,MAAM,CAACoB,gBAAgB,CAAE,SAAS,EAAED,aAAc,CAAC;IACnD,OAAO,MAAMnB,MAAM,CAACqB,mBAAmB,CAAE,SAAS,EAAEF,aAAc,CAAC;EACpE,CAAC,EAAE,CAAEzB,IAAI,EAAEI,kBAAkB,CAAG,CAAC;EAEjCnC,SAAS,CAAE,MAAM;IAChB,MAAM2D,mBAAmB,GAAG,MAAAA,CAAA,KAAY;MACvC,IAAI;QACH,MAAMV,iBAAiB,CAAElB,IAAK,CAAC;QAC/B6B,YAAY,CAAC,CAAC;MACf,CAAC,CAAC,OAAQC,CAAC,EAAG;QACb,IAAK,CAAEV,MAAM,EAAG;UACfC,SAAS,CAAE;YACVU,IAAI,EAAE,OAAO;YACbC,OAAO,EAAEF,CAAC,EAAEE;UACb,CAAE,CAAC;QACJ;MACD;IACD,CAAC;IACDJ,mBAAmB,CAAC,CAAC;EACtB,CAAC,EAAE,CAAE5B,IAAI,EAAEkB,iBAAiB,EAAEG,SAAS,EAAED,MAAM,CAAG,CAAC;EAEnDnD,SAAS,CAAE,MAAM;IAChByC,eAAe,CAAE,IAAK,CAAC;IACvBW,SAAS,CAAE,IAAK,CAAC;EAClB,CAAC,EAAE,CAAErB,IAAI,EAAEqB,SAAS,CAAG,CAAC;EAExBpD,SAAS,CAAE,MAAM;IAChB;IACA2C,iBAAiB,CAAE,EAAG,CAAC;EACxB,CAAC,EAAE,CAAEH,YAAY,CAAG,CAAC;EAErB,MAAMwB,eAAe,GAAG9D,OAAO,CAC9B;IAAA,IAAA+D,qBAAA;IAAA,QAAAA,qBAAA,GAAMZ,kBAAkB,EAAEa,aAAa,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GAC7C,CAAEZ,kBAAkB,CACrB,CAAC;EACD,MAAMc,oBAAoB,IAAAjC,qBAAA,GAAGmB,kBAAkB,EAAEe,UAAU,cAAAlC,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAEjE,MAAMkC,UAAU,GAAG,CAAEtC,gBAAgB,EAAE,GAAGqC,oBAAoB,CAAE;EAEhE,MAAME,KAAK,GAAGnE,OAAO,CACpB,MAAMsB,WAAW,CAAEwC,eAAe,EAAEpB,OAAQ,CAAC,EAC7C,CAAEoB,eAAe,EAAEpB,OAAO,CAC3B,CAAC;EAED,MAAM0B,oBAAoB,GAAKC,QAAQ,IAAM;IAC5C1B,UAAU,CAAE;MAAE,GAAGD,OAAO;MAAE2B;IAAS,CAAE,CAAC;EACvC,CAAC;EAED,MAAMC,uBAAuB,GAAKC,KAAK,IAAM;IAC5C5B,UAAU,CAAE;MAAE,GAAGD,OAAO;MAAE1B,MAAM,EAAEuD;IAAM,CAAE,CAAC;EAC5C,CAAC;EAED,MAAMC,0BAA0B,GAAG3D,QAAQ,CAAEyD,uBAAuB,EAAE,GAAI,CAAC;EAE3E,MAAMZ,YAAY,GAAGA,CAAA,KAAM;IAC1Bf,UAAU,CAAE,CAAC,CAAE,CAAC;EACjB,CAAC;EAED,MAAM8B,WAAW,GAAGA,CAAA,KAAM;IACzB9B,UAAU,CAAE;MAAE,GAAGD,OAAO;MAAE1B,MAAM,EAAE;IAAG,CAAE,CAAC;EACzC,CAAC;EAED,MAAM0D,kBAAkB,GAAGA,CAAA,KAAM;IAChCnC,eAAe,CAAE,IAAK,CAAC;EACxB,CAAC;EAED,MAAMoC,mBAAmB,GAAGA,CAAEC,IAAI,EAAEC,IAAI,KAAM;IAC7C,MAAMC,iBAAiB,GAAGtD,UAAU,CAAEoD,IAAI,EAAEC,IAAI,EAAErC,cAAe,CAAC;IAClEC,iBAAiB,CAAEqC,iBAAkB,CAAC;EACvC,CAAC;EAED,MAAMC,oBAAoB,GAAGtD,eAAe,CAAEe,cAAe,CAAC;EAE9D,MAAMwC,mBAAmB,GAAGA,CAAA,KAAM;IACjCvC,iBAAiB,CAAE,EAAG,CAAC;EACxB,CAAC;EAED,MAAMwC,aAAa,GAAG,MAAAA,CAAA,KAAY;IACjC/B,SAAS,CAAE,IAAK,CAAC;IAEjB,MAAMgC,UAAU,GAAG1C,cAAc,CAAE,CAAC,CAAE;IAEtC,IAAI;MACH,IAAK0C,UAAU,EAAEC,QAAQ,EAAG;QAC3B,MAAMC,OAAO,CAACC,GAAG,CAChBH,UAAU,CAACC,QAAQ,CAACG,GAAG,CAAE,MAAQH,QAAQ,IAAM;UAC9C,IAAKA,QAAQ,CAACI,GAAG,EAAG;YACnBJ,QAAQ,CAACK,IAAI,GAAG,MAAM7D,sBAAsB,CAC3CwD,QAAQ,CAACI,GACV,CAAC;UACF;QACD,CAAE,CACH,CAAC;MACF;IACD,CAAC,CAAC,OAAQE,KAAK,EAAG;MACjB;MACA;MACAvC,SAAS,CAAE;QACVU,IAAI,EAAE,OAAO;QACbC,OAAO,EAAE/C,EAAE,CACV,sDACD;MACD,CAAE,CAAC;MACH;IACD;IAEA,IAAI;MACH,MAAMkC,WAAW,CAAEkC,UAAW,CAAC;MAC/BhC,SAAS,CAAE;QACVU,IAAI,EAAE,SAAS;QACfC,OAAO,EAAE/C,EAAE,CAAE,oCAAqC;MACnD,CAAE,CAAC;IACJ,CAAC,CAAC,OAAQ2E,KAAK,EAAG;MACjBvC,SAAS,CAAE;QACVU,IAAI,EAAE,OAAO;QACbC,OAAO,EAAE4B,KAAK,CAAC5B;MAChB,CAAE,CAAC;IACJ;IACAmB,mBAAmB,CAAC,CAAC;EACtB,CAAC;EAED,OACCU,aAAA,CAACxE,cAAc;IACdyE,KAAK,EACJ,CAAErD,YAAY,GAAGa,kBAAkB,CAACrB,IAAI,GAAGQ,YAAY,CAACR,IACxD;IACD8D,WAAW,EACV,CAAEtD,YAAY,GACXa,kBAAkB,CAACyC,WAAW,GAC9B9E,EAAE,CAAE,kCAAmC,CAC1C;IACDmC,MAAM,EAAGA,MAAQ;IACjB4C,UAAU,EAAG,CAAC,CAAEvD,YAAY,IAAIoC,kBAAoB;IACpDoB,MAAM,EACLJ,aAAA,CAACK,MAAM;MACNd,aAAa,EAAGA,aAAe;MAC/Be,UAAU,EAAGxD,cAAc,CAACyD,MAAM,KAAK;IAAG,CAC1C;EACD,GAECrD,mBAAmB,IACpB8C,aAAA,CAAAQ,QAAA,QACCR,aAAA,CAACxF,MAAM;IAACiG,MAAM,EAAG;EAAG,CAAE,CAAC,EACvBT,aAAA,CAAChE,wBAAwB,MAAE,CAC1B,CACF,EAEC,CAAEkB,mBAAmB,IAAI,CAAEN,YAAY,IACxCoD,aAAA,CAAC/E,IAAI,QACJ+E,aAAA,CAAChF,QAAQ,QACRgF,aAAA,CAACtF,YAAY;IACZmE,KAAK,EAAG7B,OAAO,CAAC1B,MAAQ;IACxBoF,WAAW,EAAGtF,EAAE,CAAE,YAAa,CAAG;IAClCuF,KAAK,EAAGvF,EAAE,CAAE,QAAS,CAAG;IACxBwF,QAAQ,EAAG9B,0BAA4B;IACvC+B,MAAM,EAAGb,aAAA,CAACjF,IAAI;MAAC+F,IAAI,EAAGxF;IAAQ,CAAE,CAAG;IACnCyF,MAAM,EACL/D,OAAO,EAAE1B,MAAM,GACd0E,aAAA,CAACjF,IAAI;MACJ+F,IAAI,EAAGvF,UAAY;MACnByF,OAAO,EAAGjC;IAAa,CACvB,CAAC,GACC;EACJ,CACD,CACQ,CAAC,EACXiB,aAAA,CAAChF,QAAQ,QACRgF,aAAA,CAACnF,aAAa;IACb8F,KAAK,EAAGvF,EAAE,CAAE,UAAW,CAAG;IAC1ByD,KAAK,EAAG7B,OAAO,CAAC2B,QAAU;IAC1BiC,QAAQ,EAAGlC;EAAsB,GAE/BF,UAAU,IACXA,UAAU,CAACoB,GAAG,CAAIjB,QAAQ,IACzBqB,aAAA;IACCnB,KAAK,EAAGF,QAAQ,CAACxC,IAAM;IACvB8E,GAAG,EAAGtC,QAAQ,CAACxC;EAAM,GAEnBwC,QAAQ,CAACvC,IACJ,CACP,CACW,CACN,CACL,CACN,EAED4D,aAAA,CAACxF,MAAM;IAACiG,MAAM,EAAG;EAAG,CAAE,CAAC,EACrB,CAAEvD,mBAAmB,IACtB,CAAEO,kBAAkB,EAAEa,aAAa,IACnC,CAAEf,MAAM,IAAIyC,aAAA,CAAClF,OAAO,MAAE,CAAC,EAEtB,CAAEoC,mBAAmB,IACtB,CAAC,CAAEO,kBAAkB,EAAEa,aAAa,EAAEiC,MAAM,IAC5C,CAAE9B,KAAK,CAAC8B,MAAM,IACbP,aAAA,CAACpF,IAAI,QACFQ,EAAE,CACH,kDACD,CACK,CACN,EAEA,CAAE8B,mBAAmB,IAAIN,YAAY,IACtCoD,aAAA,CAACnE,qBAAqB;IACrBqD,IAAI,EAAGtC,YAAc;IACrBqC,mBAAmB,EAAGA,mBAAqB;IAC3CI,oBAAoB,EAAGA;EAAsB,CAC7C,CACD,EAEC,CAAEnC,mBAAmB,IAAI,CAAEN,YAAY,IACxCoD,aAAA,CAACtE,SAAS,QACP+C,KAAK,CAACmB,GAAG,CAAIV,IAAI,IAClBc,aAAA,CAACrE,QAAQ;IACRsF,GAAG,EAAG/B,IAAI,CAACgC,oBAAoB,CAAC/E,IAAM;IACtC+C,IAAI,EAAGA,IAAI,CAACgC,oBAAsB;IAClCF,OAAO,EAAGA,CAAA,KAAM;MACfnE,eAAe,CAAEqC,IAAI,CAACgC,oBAAqB,CAAC;IAC7C;EAAG,CACH,CACA,CACQ,CAEG,CAAC;AAEnB;AAEA,SAASb,MAAMA,CAAE;EAAEd,aAAa;EAAEe;AAAW,CAAC,EAAG;EAChD,MAAM;IAAEa;EAAa,CAAC,GAAGhH,UAAU,CAAEsB,kBAAmB,CAAC;EAEzD,OACCuE,aAAA,CAAC/E,IAAI;IAACmG,OAAO,EAAC;EAAU,GACvBpB,aAAA,CAAC9E,MAAM;IACNmG,OAAO,EAAC,SAAS;IACjBL,OAAO,EAAGzB,aAAe;IACzB+B,MAAM,EAAGH,YAAc;IACvBI,QAAQ,EAAGjB,UAAU,IAAIa,YAAc;IACvCK,yBAAyB;EAAA,GAEvBpG,EAAE,CAAE,SAAU,CACT,CACH,CAAC;AAET;AAEA,eAAeiB,cAAc"}
|
|
1
|
+
{"version":3,"names":["useContext","useEffect","useState","useMemo","createInterpolateElement","__experimentalSpacer","Spacer","__experimentalInputControl","InputControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalHeading","Heading","Notice","SelectControl","Spinner","Icon","FlexItem","Flex","Button","DropdownMenu","debounce","sprintf","__","_x","search","closeSmall","moreVertical","chevronLeft","FontLibraryContext","FontCard","filterFonts","toggleFont","getFontsOutline","isFontFontFaceInOutline","GoogleFontsConfirmDialog","downloadFontFaceAssets","sortFontFaces","CollectionFontVariant","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","installFont","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","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","debouncedUpdateSearchInput","resetSearch","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","error","getSortedFontFaces","fontStyle","fontWeight","createElement","ActionsComponent","icon","label","popoverProps","position","controls","title","onClick","className","initialPath","path","justify","level","size","description","margin","placeholder","onChange","prefix","suffix","key","font_family_settings","navigatorPath","isSmall","Fragment","status","onRemove","spacing","i","selected","variant","isBusy","disabled","__experimentalIsFocusable","expanded","CurrenPageControl","options","Array","newPage","parseInt","__nextHasNoMarginBottom"],"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__experimentalInputControl as InputControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalHeading as Heading,\n\tNotice,\n\tSelectControl,\n\tSpinner,\n\tIcon,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport {\n\tsearch,\n\tcloseSmall,\n\tmoreVertical,\n\tchevronLeft,\n} 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\tinstallFont,\n\t\tisInstalling,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.slug === slug\n\t);\n\n\tuseEffect( () => {\n\t\tconst handleStorage = () => {\n\t\t\tsetRenderConfirmDialog(\n\t\t\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t\t\t);\n\t\t};\n\t\thandleStorage();\n\t\twindow.addEventListener( 'storage', handleStorage );\n\t\treturn () => window.removeEventListener( 'storage', handleStorage );\n\t}, [ slug, requiresPermission ] );\n\n\tconst revokeAccess = () => {\n\t\twindow.localStorage.setItem( LOCAL_STORAGE_ITEM, 'false' );\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( slug );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tif ( ! notice ) {\n\t\t\t\t\tsetNotice( {\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ slug, getFontCollection, setNotice, notice ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ slug, setNotice ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.font_families ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\t// NOTE: The height of the font library modal unavailable to use for rendering font family items is roughly 417px\n\t// The height of each font family item is 61px.\n\tconst windowHeight = Math.max( window.innerHeight, MIN_WINDOW_HEIGHT );\n\tconst pageSize = Math.floor( ( windowHeight - 417 ) / 61 );\n\tconst totalPages = Math.ceil( fonts.length / pageSize );\n\tconst itemsStart = ( page - 1 ) * pageSize;\n\tconst itemsLimit = page * pageSize;\n\tconst items = fonts.slice( itemsStart, itemsLimit );\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t\tsetPage( 1 );\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetFilters( { ...filters, search: '' } );\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 installFont( fontFamily );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\t\tresetFontsToInstall();\n\t};\n\n\tconst getSortedFontFaces = ( fontFamily ) => {\n\t\tif ( ! fontFamily ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! fontFamily.fontFace || ! fontFamily.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: fontFamily.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( fontFamily.fontFace );\n\t};\n\n\tif ( renderConfirmDialog ) {\n\t\treturn <GoogleFontsConfirmDialog />;\n\t}\n\n\tconst ActionsComponent = () => {\n\t\tif ( slug !== 'google-fonts' || renderConfirmDialog || selectedFont ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tposition: 'bottom left',\n\t\t\t\t} }\n\t\t\t\tcontrols={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: __( 'Revoke access to Google Fonts' ),\n\t\t\t\t\t\tonClick: revokeAccess,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<NavigatorProvider\n\t\t\t\tinitialPath=\"/\"\n\t\t\t\tclassName=\"font-library-modal__tabpanel-layout\"\n\t\t\t>\n\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t\t{ selectedCollection.name }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t<ActionsComponent />\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<Text>{ selectedCollection.description }</Text>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Flex>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\t\tprefix={ <Icon icon={ search } /> }\n\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\tfilters?.search ? (\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ resetSearch }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\t\tvalue={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\n\t\t\t\t\t<Spacer margin={ 4 } />\n\n\t\t\t\t\t{ ! selectedCollection?.font_families && ! notice && (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ !! selectedCollection?.font_families?.length &&\n\t\t\t\t\t\t! fonts.length && (\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'No fonts found. Try with a different search term'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t\t{ items.map( ( font ) => (\n\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\tkey={ font.font_family_settings.slug }\n\t\t\t\t\t\t\t\tfont={ font.font_family_settings }\n\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetSelectedFont(\n\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</div>\n\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetSelectedFont( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ selectedFont?.name }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Text> { __( 'Select font variants to install.' ) } </Text>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t{ getSortedFontFaces( selectedFont ).map(\n\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\t\t\t\tselectedFont.slug,\n\t\t\t\t\t\t\t\t\t\tselectedFont.fontFace ? face : null, // If the font has no fontFace, we want to check if the font is in the outline\n\t\t\t\t\t\t\t\t\t\tfontToInstallOutline\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t</NavigatorScreen>\n\t\t\t</NavigatorProvider>\n\n\t\t\t{ selectedFont && (\n\t\t\t\t<Flex\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ handleInstall }\n\t\t\t\t\t\tisBusy={ isInstalling }\n\t\t\t\t\t\tdisabled={ fontsToInstall.length === 0 || isInstalling }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Install' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Flex>\n\t\t\t) }\n\n\t\t\t{ ! selectedFont && (\n\t\t\t\t<Flex\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'First page' ) }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => setPage( 1 ) }\n\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>«</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => setPage( page - 1 ) }\n\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>‹</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Total number of pages.\n\t\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t\t'Page <CurrenPageControl /> of %s',\n\t\t\t\t\t\t\t\t\t'paging'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tCurrenPageControl: (\n\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'Current page' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ page }\n\t\t\t\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t\t\t\t...Array( totalPages ),\n\t\t\t\t\t\t\t\t\t\t].map( ( e, i ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( newPage ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetPage( parseInt( newPage ) )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsize={ 'compact' }\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => setPage( page + 1 ) }\n\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>›</span>\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Last page' ) }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => setPage( totalPages ) }\n\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>»</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { useContext, useEffect, useState, useRef } from '@wordpress/element';
|
|
|
9
9
|
* Internal dependencies
|
|
10
10
|
*/
|
|
11
11
|
import { FontLibraryContext } from './context';
|
|
12
|
-
import { getFacePreviewStyle } from './utils/preview-styles';
|
|
12
|
+
import { getFacePreviewStyle, getFamilyPreviewStyle } from './utils/preview-styles';
|
|
13
13
|
function getPreviewUrl(fontFace) {
|
|
14
14
|
if (fontFace.preview) {
|
|
15
15
|
return fontFace.preview;
|
|
@@ -18,13 +18,34 @@ function getPreviewUrl(fontFace) {
|
|
|
18
18
|
return Array.isArray(fontFace.src) ? fontFace.src[0] : fontFace.src;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
function getDisplayFontFace(font) {
|
|
22
|
+
// if this IS a font face return it
|
|
23
|
+
if (font.fontStyle || font.fontWeight) {
|
|
24
|
+
return font;
|
|
25
|
+
}
|
|
26
|
+
// if this is a font family with a collection of font faces
|
|
27
|
+
// return the first one that is normal and 400 OR just the first one
|
|
28
|
+
if (font.fontFace && font.fontFace.length) {
|
|
29
|
+
return font.fontFace.find(face => face.fontStyle === 'normal' && face.fontWeight === '400') || font.fontFace[0];
|
|
30
|
+
}
|
|
31
|
+
// This must be a font family with no font faces
|
|
32
|
+
// return a fake font face
|
|
33
|
+
return {
|
|
34
|
+
fontStyle: 'normal',
|
|
35
|
+
fontWeight: '400',
|
|
36
|
+
fontFamily: font.fontFamily,
|
|
37
|
+
fake: true
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function FontDemo({
|
|
41
|
+
font,
|
|
42
|
+
text
|
|
26
43
|
}) {
|
|
27
44
|
const ref = useRef(null);
|
|
45
|
+
const fontFace = getDisplayFontFace(font);
|
|
46
|
+
const style = getFamilyPreviewStyle(font);
|
|
47
|
+
text = text || font.name;
|
|
48
|
+
const customPreviewUrl = font.preview;
|
|
28
49
|
const [isIntersecting, setIsIntersecting] = useState(false);
|
|
29
50
|
const [isAssetLoaded, setIsAssetLoaded] = useState(false);
|
|
30
51
|
const {
|
|
@@ -37,8 +58,8 @@ function FontFaceDemo({
|
|
|
37
58
|
fontSize: '18px',
|
|
38
59
|
lineHeight: 1,
|
|
39
60
|
opacity: isAssetLoaded ? '1' : '0',
|
|
40
|
-
...
|
|
41
|
-
...
|
|
61
|
+
...style,
|
|
62
|
+
...faceStyles
|
|
42
63
|
};
|
|
43
64
|
useEffect(() => {
|
|
44
65
|
const observer = new window.IntersectionObserver(([entry]) => {
|
|
@@ -70,5 +91,5 @@ function FontFaceDemo({
|
|
|
70
91
|
className: "font-library-modal__font-variant_demo-text"
|
|
71
92
|
}, text));
|
|
72
93
|
}
|
|
73
|
-
export default
|
|
94
|
+
export default FontDemo;
|
|
74
95
|
//# sourceMappingURL=font-demo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalText","Text","useContext","useEffect","useState","useRef","FontLibraryContext","getFacePreviewStyle","getPreviewUrl","fontFace","preview","src","Array","isArray","
|
|
1
|
+
{"version":3,"names":["__experimentalText","Text","useContext","useEffect","useState","useRef","FontLibraryContext","getFacePreviewStyle","getFamilyPreviewStyle","getPreviewUrl","fontFace","preview","src","Array","isArray","getDisplayFontFace","font","fontStyle","fontWeight","length","find","face","fontFamily","fake","FontDemo","text","ref","style","name","customPreviewUrl","isIntersecting","setIsIntersecting","isAssetLoaded","setIsAssetLoaded","loadFontFaceAsset","previewUrl","isPreviewImage","match","faceStyles","textDemoStyle","fontSize","lineHeight","opacity","observer","window","IntersectionObserver","entry","observe","current","disconnect","loadAsset","createElement","loading","alt","className"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-demo.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalText as Text } from '@wordpress/components';\nimport { useContext, useEffect, useState, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport {\n\tgetFacePreviewStyle,\n\tgetFamilyPreviewStyle,\n} from './utils/preview-styles';\n\nfunction getPreviewUrl( fontFace ) {\n\tif ( fontFace.preview ) {\n\t\treturn fontFace.preview;\n\t}\n\tif ( fontFace.src ) {\n\t\treturn Array.isArray( fontFace.src ) ? fontFace.src[ 0 ] : fontFace.src;\n\t}\n}\n\nfunction getDisplayFontFace( font ) {\n\t// if this IS a font face return it\n\tif ( font.fontStyle || font.fontWeight ) {\n\t\treturn font;\n\t}\n\t// if this is a font family with a collection of font faces\n\t// return the first one that is normal and 400 OR just the first one\n\tif ( font.fontFace && font.fontFace.length ) {\n\t\treturn (\n\t\t\tfont.fontFace.find(\n\t\t\t\t( face ) =>\n\t\t\t\t\tface.fontStyle === 'normal' && face.fontWeight === '400'\n\t\t\t) || font.fontFace[ 0 ]\n\t\t);\n\t}\n\t// This must be a font family with no font faces\n\t// return a fake font face\n\treturn {\n\t\tfontStyle: 'normal',\n\t\tfontWeight: '400',\n\t\tfontFamily: font.fontFamily,\n\t\tfake: true,\n\t};\n}\n\nfunction FontDemo( { font, text } ) {\n\tconst ref = useRef( null );\n\n\tconst fontFace = getDisplayFontFace( font );\n\tconst style = getFamilyPreviewStyle( font );\n\ttext = text || font.name;\n\tconst customPreviewUrl = font.preview;\n\n\tconst [ isIntersecting, setIsIntersecting ] = useState( false );\n\tconst [ isAssetLoaded, setIsAssetLoaded ] = useState( false );\n\tconst { loadFontFaceAsset } = useContext( FontLibraryContext );\n\n\tconst previewUrl = customPreviewUrl ?? getPreviewUrl( fontFace );\n\tconst isPreviewImage =\n\t\tpreviewUrl && previewUrl.match( /\\.(png|jpg|jpeg|gif|svg)$/i );\n\n\tconst faceStyles = getFacePreviewStyle( fontFace );\n\tconst textDemoStyle = {\n\t\tfontSize: '18px',\n\t\tlineHeight: 1,\n\t\topacity: isAssetLoaded ? '1' : '0',\n\t\t...style,\n\t\t...faceStyles,\n\t};\n\n\tuseEffect( () => {\n\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\tsetIsIntersecting( entry.isIntersecting );\n\t\t}, {} );\n\t\tobserver.observe( ref.current );\n\t\treturn () => observer.disconnect();\n\t}, [ ref ] );\n\n\tuseEffect( () => {\n\t\tconst loadAsset = async () => {\n\t\t\tif ( isIntersecting ) {\n\t\t\t\tif ( ! isPreviewImage && fontFace.src ) {\n\t\t\t\t\tawait loadFontFaceAsset( fontFace );\n\t\t\t\t}\n\t\t\t\tsetIsAssetLoaded( true );\n\t\t\t}\n\t\t};\n\t\tloadAsset();\n\t}, [ fontFace, isIntersecting, loadFontFaceAsset, isPreviewImage ] );\n\n\treturn (\n\t\t<div ref={ ref }>\n\t\t\t{ isPreviewImage ? (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ previewUrl }\n\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t\talt={ text }\n\t\t\t\t\tclassName=\"font-library-modal__font-variant_demo-image\"\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ textDemoStyle }\n\t\t\t\t\tclassName=\"font-library-modal__font-variant_demo-text\"\n\t\t\t\t>\n\t\t\t\t\t{ text }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontDemo;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,kBAAkB,IAAIC,IAAI,QAAQ,uBAAuB;AAClE,SAASC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,oBAAoB;;AAE5E;AACA;AACA;AACA,SAASC,kBAAkB,QAAQ,WAAW;AAC9C,SACCC,mBAAmB,EACnBC,qBAAqB,QACf,wBAAwB;AAE/B,SAASC,aAAaA,CAAEC,QAAQ,EAAG;EAClC,IAAKA,QAAQ,CAACC,OAAO,EAAG;IACvB,OAAOD,QAAQ,CAACC,OAAO;EACxB;EACA,IAAKD,QAAQ,CAACE,GAAG,EAAG;IACnB,OAAOC,KAAK,CAACC,OAAO,CAAEJ,QAAQ,CAACE,GAAI,CAAC,GAAGF,QAAQ,CAACE,GAAG,CAAE,CAAC,CAAE,GAAGF,QAAQ,CAACE,GAAG;EACxE;AACD;AAEA,SAASG,kBAAkBA,CAAEC,IAAI,EAAG;EACnC;EACA,IAAKA,IAAI,CAACC,SAAS,IAAID,IAAI,CAACE,UAAU,EAAG;IACxC,OAAOF,IAAI;EACZ;EACA;EACA;EACA,IAAKA,IAAI,CAACN,QAAQ,IAAIM,IAAI,CAACN,QAAQ,CAACS,MAAM,EAAG;IAC5C,OACCH,IAAI,CAACN,QAAQ,CAACU,IAAI,CACfC,IAAI,IACLA,IAAI,CAACJ,SAAS,KAAK,QAAQ,IAAII,IAAI,CAACH,UAAU,KAAK,KACrD,CAAC,IAAIF,IAAI,CAACN,QAAQ,CAAE,CAAC,CAAE;EAEzB;EACA;EACA;EACA,OAAO;IACNO,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,KAAK;IACjBI,UAAU,EAAEN,IAAI,CAACM,UAAU;IAC3BC,IAAI,EAAE;EACP,CAAC;AACF;AAEA,SAASC,QAAQA,CAAE;EAAER,IAAI;EAAES;AAAK,CAAC,EAAG;EACnC,MAAMC,GAAG,GAAGrB,MAAM,CAAE,IAAK,CAAC;EAE1B,MAAMK,QAAQ,GAAGK,kBAAkB,CAAEC,IAAK,CAAC;EAC3C,MAAMW,KAAK,GAAGnB,qBAAqB,CAAEQ,IAAK,CAAC;EAC3CS,IAAI,GAAGA,IAAI,IAAIT,IAAI,CAACY,IAAI;EACxB,MAAMC,gBAAgB,GAAGb,IAAI,CAACL,OAAO;EAErC,MAAM,CAAEmB,cAAc,EAAEC,iBAAiB,CAAE,GAAG3B,QAAQ,CAAE,KAAM,CAAC;EAC/D,MAAM,CAAE4B,aAAa,EAAEC,gBAAgB,CAAE,GAAG7B,QAAQ,CAAE,KAAM,CAAC;EAC7D,MAAM;IAAE8B;EAAkB,CAAC,GAAGhC,UAAU,CAAEI,kBAAmB,CAAC;EAE9D,MAAM6B,UAAU,GAAGN,gBAAgB,aAAhBA,gBAAgB,cAAhBA,gBAAgB,GAAIpB,aAAa,CAAEC,QAAS,CAAC;EAChE,MAAM0B,cAAc,GACnBD,UAAU,IAAIA,UAAU,CAACE,KAAK,CAAE,4BAA6B,CAAC;EAE/D,MAAMC,UAAU,GAAG/B,mBAAmB,CAAEG,QAAS,CAAC;EAClD,MAAM6B,aAAa,GAAG;IACrBC,QAAQ,EAAE,MAAM;IAChBC,UAAU,EAAE,CAAC;IACbC,OAAO,EAAEV,aAAa,GAAG,GAAG,GAAG,GAAG;IAClC,GAAGL,KAAK;IACR,GAAGW;EACJ,CAAC;EAEDnC,SAAS,CAAE,MAAM;IAChB,MAAMwC,QAAQ,GAAG,IAAIC,MAAM,CAACC,oBAAoB,CAAE,CAAE,CAAEC,KAAK,CAAE,KAAM;MAClEf,iBAAiB,CAAEe,KAAK,CAAChB,cAAe,CAAC;IAC1C,CAAC,EAAE,CAAC,CAAE,CAAC;IACPa,QAAQ,CAACI,OAAO,CAAErB,GAAG,CAACsB,OAAQ,CAAC;IAC/B,OAAO,MAAML,QAAQ,CAACM,UAAU,CAAC,CAAC;EACnC,CAAC,EAAE,CAAEvB,GAAG,CAAG,CAAC;EAEZvB,SAAS,CAAE,MAAM;IAChB,MAAM+C,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC7B,IAAKpB,cAAc,EAAG;QACrB,IAAK,CAAEM,cAAc,IAAI1B,QAAQ,CAACE,GAAG,EAAG;UACvC,MAAMsB,iBAAiB,CAAExB,QAAS,CAAC;QACpC;QACAuB,gBAAgB,CAAE,IAAK,CAAC;MACzB;IACD,CAAC;IACDiB,SAAS,CAAC,CAAC;EACZ,CAAC,EAAE,CAAExC,QAAQ,EAAEoB,cAAc,EAAEI,iBAAiB,EAAEE,cAAc,CAAG,CAAC;EAEpE,OACCe,aAAA;IAAKzB,GAAG,EAAGA;EAAK,GACbU,cAAc,GACfe,aAAA;IACCvC,GAAG,EAAGuB,UAAY;IAClBiB,OAAO,EAAC,MAAM;IACdC,GAAG,EAAG5B,IAAM;IACZ6B,SAAS,EAAC;EAA6C,CACvD,CAAC,GAEFH,aAAA,CAAClD,IAAI;IACJ0B,KAAK,EAAGY,aAAe;IACvBe,SAAS,EAAC;EAA4C,GAEpD7B,IACG,CAEH,CAAC;AAER;AAEA,eAAeD,QAAQ"}
|
package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js
CHANGED
|
@@ -14,7 +14,7 @@ function GoogleFontsConfirmDialog() {
|
|
|
14
14
|
className: "font-library__google-fonts-confirm"
|
|
15
15
|
}, createElement(Card, null, createElement(CardBody, null, createElement(Text, {
|
|
16
16
|
as: "h3"
|
|
17
|
-
},
|
|
17
|
+
}, __('Connect to Google Fonts')), createElement(Spacer, {
|
|
18
18
|
margin: 6
|
|
19
19
|
}), createElement(Text, {
|
|
20
20
|
as: "p"
|
package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","Button","Card","CardBody","__experimentalText","Text","__experimentalSpacer","Spacer","GoogleFontsConfirmDialog","handleConfirm","window","localStorage","setItem","dispatchEvent","Event","createElement","className","as","margin","variant","onClick"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tCard,\n\tCardBody,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\nfunction GoogleFontsConfirmDialog() {\n\tconst handleConfirm = () => {\n\t\t// eslint-disable-next-line no-undef\n\t\twindow.localStorage.setItem(\n\t\t\t'wp-font-library-google-fonts-permission',\n\t\t\t'true'\n\t\t);\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library__google-fonts-confirm\">\n\t\t\t<Card>\n\t\t\t\t<CardBody>\n\t\t\t\t\t<Text as=\"h3\">Connect to Google Fonts</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'To install fonts from Google you must give permission to connect directly to Google servers. The fonts you install will be downloaded from Google and stored on your site. Your site will then use these locally-hosted fonts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 3 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'You can alternatively upload files directly on the Upload tab.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Button variant=\"primary\" onClick={ handleConfirm }>\n\t\t\t\t\t\t{ __( 'Allow access to Google Fonts' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</CardBody>\n\t\t\t</Card>\n\t\t</div>\n\t);\n}\n\nexport default GoogleFontsConfirmDialog;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,MAAM,EACNC,IAAI,EACJC,QAAQ,EACRC,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAE9B,SAASC,wBAAwBA,CAAA,EAAG;EACnC,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC3B;IACAC,MAAM,CAACC,YAAY,CAACC,OAAO,CAC1B,yCAAyC,EACzC,MACD,CAAC;IACDF,MAAM,CAACG,aAAa,CAAE,IAAIC,KAAK,CAAE,SAAU,CAAE,CAAC;EAC/C,CAAC;EAED,OACCC,aAAA;IAAKC,SAAS,EAAC;EAAoC,GAClDD,aAAA,CAACb,IAAI,QACJa,aAAA,CAACZ,QAAQ,QACRY,aAAA,CAACV,IAAI;IAACY,EAAE,EAAC;EAAI,
|
|
1
|
+
{"version":3,"names":["__","Button","Card","CardBody","__experimentalText","Text","__experimentalSpacer","Spacer","GoogleFontsConfirmDialog","handleConfirm","window","localStorage","setItem","dispatchEvent","Event","createElement","className","as","margin","variant","onClick"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tCard,\n\tCardBody,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\nfunction GoogleFontsConfirmDialog() {\n\tconst handleConfirm = () => {\n\t\t// eslint-disable-next-line no-undef\n\t\twindow.localStorage.setItem(\n\t\t\t'wp-font-library-google-fonts-permission',\n\t\t\t'true'\n\t\t);\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library__google-fonts-confirm\">\n\t\t\t<Card>\n\t\t\t\t<CardBody>\n\t\t\t\t\t<Text as=\"h3\">{ __( 'Connect to Google Fonts' ) }</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'To install fonts from Google you must give permission to connect directly to Google servers. The fonts you install will be downloaded from Google and stored on your site. Your site will then use these locally-hosted fonts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 3 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'You can alternatively upload files directly on the Upload tab.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Button variant=\"primary\" onClick={ handleConfirm }>\n\t\t\t\t\t\t{ __( 'Allow access to Google Fonts' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</CardBody>\n\t\t\t</Card>\n\t\t</div>\n\t);\n}\n\nexport default GoogleFontsConfirmDialog;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,MAAM,EACNC,IAAI,EACJC,QAAQ,EACRC,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAE9B,SAASC,wBAAwBA,CAAA,EAAG;EACnC,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC3B;IACAC,MAAM,CAACC,YAAY,CAACC,OAAO,CAC1B,yCAAyC,EACzC,MACD,CAAC;IACDF,MAAM,CAACG,aAAa,CAAE,IAAIC,KAAK,CAAE,SAAU,CAAE,CAAC;EAC/C,CAAC;EAED,OACCC,aAAA;IAAKC,SAAS,EAAC;EAAoC,GAClDD,aAAA,CAACb,IAAI,QACJa,aAAA,CAACZ,QAAQ,QACRY,aAAA,CAACV,IAAI;IAACY,EAAE,EAAC;EAAI,GAAGjB,EAAE,CAAE,yBAA0B,CAAS,CAAC,EACxDe,aAAA,CAACR,MAAM;IAACW,MAAM,EAAG;EAAG,CAAE,CAAC,EACvBH,aAAA,CAACV,IAAI;IAACY,EAAE,EAAC;EAAG,GACTjB,EAAE,CACH,gOACD,CACK,CAAC,EACPe,aAAA,CAACR,MAAM;IAACW,MAAM,EAAG;EAAG,CAAE,CAAC,EACvBH,aAAA,CAACV,IAAI;IAACY,EAAE,EAAC;EAAG,GACTjB,EAAE,CACH,gEACD,CACK,CAAC,EACPe,aAAA,CAACR,MAAM;IAACW,MAAM,EAAG;EAAG,CAAE,CAAC,EACvBH,aAAA,CAACd,MAAM;IAACkB,OAAO,EAAC,SAAS;IAACC,OAAO,EAAGX;EAAe,GAChDT,EAAE,CAAE,8BAA+B,CAC9B,CACC,CACL,CACF,CAAC;AAER;AAEA,eAAeQ,wBAAwB"}
|
|
@@ -2,20 +2,19 @@ import { createElement, Fragment } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
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, Spinner, privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
6
6
|
import { useContext, useEffect, useState } from '@wordpress/element';
|
|
7
|
-
import {
|
|
7
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
8
|
+
import { chevronLeft } from '@wordpress/icons';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Internal dependencies
|
|
11
12
|
*/
|
|
12
|
-
import TabPanelLayout from './tab-panel-layout';
|
|
13
|
-
import { FontLibraryContext } from './context';
|
|
14
|
-
import FontsGrid from './fonts-grid';
|
|
15
|
-
import LibraryFontDetails from './library-font-details';
|
|
16
|
-
import LibraryFontCard from './library-font-card';
|
|
17
|
-
import ConfirmDeleteDialog from './confirm-delete-dialog';
|
|
18
13
|
import { unlock } from '../../../lock-unlock';
|
|
14
|
+
import { FontLibraryContext } from './context';
|
|
15
|
+
import FontCard from './font-card';
|
|
16
|
+
import LibraryFontVariant from './library-font-variant';
|
|
17
|
+
import { sortFontFaces } from './utils/sort-font-faces';
|
|
19
18
|
const {
|
|
20
19
|
ProgressBar
|
|
21
20
|
} = unlock(componentsPrivateApis);
|
|
@@ -28,110 +27,177 @@ function InstalledFonts() {
|
|
|
28
27
|
refreshLibrary,
|
|
29
28
|
uninstallFontFamily,
|
|
30
29
|
isResolvingLibrary,
|
|
30
|
+
isInstalling,
|
|
31
|
+
saveFontFamilies,
|
|
32
|
+
getFontFacesActivated,
|
|
33
|
+
fontFamiliesHasChanges,
|
|
31
34
|
notice,
|
|
32
35
|
setNotice
|
|
33
36
|
} = useContext(FontLibraryContext);
|
|
34
37
|
const [isConfirmDeleteOpen, setIsConfirmDeleteOpen] = useState(false);
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const handleSelectFont = font => {
|
|
39
|
-
handleSetLibraryFontSelected(font);
|
|
38
|
+
const shouldDisplayDeleteButton = !!libraryFontSelected && libraryFontSelected?.source !== 'theme';
|
|
39
|
+
const handleUninstallClick = () => {
|
|
40
|
+
setIsConfirmDeleteOpen(true);
|
|
40
41
|
};
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
handleUnselectFont();
|
|
52
|
-
setIsConfirmDeleteOpen(false);
|
|
53
|
-
} catch (error) {
|
|
54
|
-
setNotice({
|
|
55
|
-
type: 'error',
|
|
56
|
-
message: __('There was an error uninstalling the font family. ') + error.message
|
|
57
|
-
});
|
|
42
|
+
const getFontFacesToDisplay = font => {
|
|
43
|
+
if (!font) {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
if (!font.fontFace || !font.fontFace.length) {
|
|
47
|
+
return [{
|
|
48
|
+
fontFamily: font.fontFamily,
|
|
49
|
+
fontStyle: 'normal',
|
|
50
|
+
fontWeight: '400'
|
|
51
|
+
}];
|
|
58
52
|
}
|
|
53
|
+
return sortFontFaces(font.fontFace);
|
|
59
54
|
};
|
|
60
|
-
const
|
|
61
|
-
|
|
55
|
+
const getFontCardVariantsText = font => {
|
|
56
|
+
const variantsInstalled = font?.fontFace?.length > 0 ? font.fontFace.length : 1;
|
|
57
|
+
const variantsActive = getFontFacesActivated(font.slug, font.source).length;
|
|
58
|
+
return sprintf( /* translators: 1: Active font variants, 2: Total font variants. */
|
|
59
|
+
__('%1$s/%2$s variants active'), variantsActive, variantsInstalled);
|
|
62
60
|
};
|
|
63
|
-
const handleCancelUninstall = () => {
|
|
64
|
-
setIsConfirmDeleteOpen(false);
|
|
65
|
-
};
|
|
66
|
-
const tabDescription = !!libraryFontSelected ? __('Choose font variants. Keep in mind that too many variants could make your site slower.') : null;
|
|
67
|
-
const shouldDisplayDeleteButton = !!libraryFontSelected && libraryFontSelected?.source !== 'theme';
|
|
68
61
|
useEffect(() => {
|
|
69
|
-
|
|
62
|
+
handleSetLibraryFontSelected(libraryFontSelected);
|
|
70
63
|
refreshLibrary();
|
|
71
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
72
64
|
}, []);
|
|
73
|
-
return createElement(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
65
|
+
return createElement("div", {
|
|
66
|
+
className: "font-library-modal__tabpanel-layout"
|
|
67
|
+
}, isResolvingLibrary && createElement(HStack, {
|
|
68
|
+
align: "center"
|
|
69
|
+
}, createElement(Spacer, null), createElement(Spinner, null), createElement(Spacer, null)), createElement(NavigatorProvider, {
|
|
70
|
+
initialPath: libraryFontSelected ? '/fontFamily' : '/'
|
|
71
|
+
}, createElement(NavigatorScreen, {
|
|
72
|
+
path: "/"
|
|
73
|
+
}, notice && createElement(Fragment, null, createElement(Spacer, {
|
|
74
|
+
margin: 1
|
|
75
|
+
}), createElement(Notice, {
|
|
76
|
+
status: notice.type,
|
|
77
|
+
onRemove: () => setNotice(null)
|
|
78
|
+
}, notice.message), createElement(Spacer, {
|
|
79
|
+
margin: 1
|
|
80
|
+
})), baseCustomFonts.length > 0 && createElement(Fragment, null, createElement(Text, {
|
|
81
|
+
className: "font-library-modal__subtitle"
|
|
82
|
+
}, __('Installed Fonts')), createElement(Spacer, {
|
|
88
83
|
margin: 2
|
|
89
|
-
}),
|
|
90
|
-
margin: 2
|
|
91
|
-
})), baseCustomFonts.length > 0 && createElement(Fragment, null, createElement(FontsGrid, null, baseCustomFonts.map(font => createElement(LibraryFontCard, {
|
|
84
|
+
}), baseCustomFonts.map(font => createElement(FontCard, {
|
|
92
85
|
font: font,
|
|
93
86
|
key: font.slug,
|
|
87
|
+
navigatorPath: '/fontFamily',
|
|
88
|
+
variantsText: getFontCardVariantsText(font),
|
|
94
89
|
onClick: () => {
|
|
95
|
-
|
|
90
|
+
handleSetLibraryFontSelected(font);
|
|
96
91
|
}
|
|
97
|
-
}))
|
|
92
|
+
})), createElement(Spacer, {
|
|
98
93
|
margin: 8
|
|
99
|
-
})), baseThemeFonts.length > 0 && createElement(Fragment, null, createElement(
|
|
100
|
-
|
|
101
|
-
},
|
|
94
|
+
})), baseThemeFonts.length > 0 && createElement(Fragment, null, createElement(Text, {
|
|
95
|
+
className: "font-library-modal__subtitle"
|
|
96
|
+
}, __('Theme Fonts')), createElement(Spacer, {
|
|
97
|
+
margin: 2
|
|
98
|
+
}), baseThemeFonts.map(font => createElement(FontCard, {
|
|
102
99
|
font: font,
|
|
103
100
|
key: font.slug,
|
|
101
|
+
navigatorPath: '/fontFamily',
|
|
102
|
+
variantsText: getFontCardVariantsText(font),
|
|
104
103
|
onClick: () => {
|
|
105
|
-
|
|
104
|
+
handleSetLibraryFontSelected(font);
|
|
106
105
|
}
|
|
107
|
-
})))
|
|
106
|
+
}))), createElement(Spacer, {
|
|
107
|
+
margin: 16
|
|
108
|
+
})), createElement(NavigatorScreen, {
|
|
109
|
+
path: "/fontFamily"
|
|
110
|
+
}, createElement(ConfirmDeleteDialog, {
|
|
108
111
|
font: libraryFontSelected,
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
112
|
+
isOpen: isConfirmDeleteOpen,
|
|
113
|
+
setIsOpen: setIsConfirmDeleteOpen,
|
|
114
|
+
setNotice: setNotice,
|
|
115
|
+
uninstallFontFamily: uninstallFontFamily,
|
|
116
|
+
handleSetLibraryFontSelected: handleSetLibraryFontSelected
|
|
117
|
+
}), createElement(Flex, {
|
|
118
|
+
justify: "flex-start"
|
|
119
|
+
}, createElement(NavigatorToParentButton, {
|
|
120
|
+
icon: chevronLeft,
|
|
121
|
+
isSmall: true,
|
|
122
|
+
onClick: () => {
|
|
123
|
+
handleSetLibraryFontSelected(null);
|
|
124
|
+
},
|
|
125
|
+
"aria-label": __('Navigate to the previous view')
|
|
126
|
+
}), createElement(Heading, {
|
|
127
|
+
level: 2,
|
|
128
|
+
size: 13,
|
|
129
|
+
className: "edit-site-global-styles-header"
|
|
130
|
+
}, libraryFontSelected?.name)), notice && createElement(Fragment, null, createElement(Spacer, {
|
|
131
|
+
margin: 1
|
|
132
|
+
}), createElement(Notice, {
|
|
133
|
+
status: notice.type,
|
|
134
|
+
onRemove: () => setNotice(null)
|
|
135
|
+
}, notice.message), createElement(Spacer, {
|
|
136
|
+
margin: 1
|
|
137
|
+
})), createElement(Spacer, {
|
|
138
|
+
margin: 4
|
|
139
|
+
}), createElement(Text, null, __('Choose font variants. Keep in mind that too many variants could make your site slower.')), createElement(Spacer, {
|
|
140
|
+
margin: 4
|
|
141
|
+
}), createElement(VStack, {
|
|
142
|
+
spacing: 0
|
|
143
|
+
}, createElement(Spacer, {
|
|
144
|
+
margin: 8
|
|
145
|
+
}), getFontFacesToDisplay(libraryFontSelected).map((face, i) => createElement(LibraryFontVariant, {
|
|
146
|
+
font: libraryFontSelected,
|
|
147
|
+
face: face,
|
|
148
|
+
key: `face${i}`
|
|
149
|
+
}))))), createElement(HStack, {
|
|
150
|
+
justify: "flex-end",
|
|
151
|
+
className: "font-library-modal__tabpanel-layout__footer"
|
|
152
|
+
}, isInstalling && createElement(ProgressBar, null), shouldDisplayDeleteButton && createElement(Button, {
|
|
126
153
|
isDestructive: true,
|
|
127
154
|
variant: "tertiary",
|
|
128
155
|
onClick: handleUninstallClick
|
|
129
|
-
}, __('Delete'))
|
|
156
|
+
}, __('Delete')), createElement(Button, {
|
|
130
157
|
variant: "primary",
|
|
131
158
|
onClick: saveFontFamilies,
|
|
132
159
|
disabled: !fontFamiliesHasChanges,
|
|
133
160
|
__experimentalIsFocusable: true
|
|
134
|
-
}, __('Update')));
|
|
161
|
+
}, __('Update'))));
|
|
162
|
+
}
|
|
163
|
+
function ConfirmDeleteDialog({
|
|
164
|
+
font,
|
|
165
|
+
isOpen,
|
|
166
|
+
setIsOpen,
|
|
167
|
+
setNotice,
|
|
168
|
+
uninstallFontFamily,
|
|
169
|
+
handleSetLibraryFontSelected
|
|
170
|
+
}) {
|
|
171
|
+
const navigator = useNavigator();
|
|
172
|
+
const handleConfirmUninstall = async () => {
|
|
173
|
+
setNotice(null);
|
|
174
|
+
setIsOpen(false);
|
|
175
|
+
try {
|
|
176
|
+
await uninstallFontFamily(font);
|
|
177
|
+
navigator.goBack();
|
|
178
|
+
handleSetLibraryFontSelected(null);
|
|
179
|
+
setNotice({
|
|
180
|
+
type: 'success',
|
|
181
|
+
message: __('Font family uninstalled successfully.')
|
|
182
|
+
});
|
|
183
|
+
} catch (error) {
|
|
184
|
+
setNotice({
|
|
185
|
+
type: 'error',
|
|
186
|
+
message: __('There was an error uninstalling the font family. ') + error.message
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
const handleCancelUninstall = () => {
|
|
191
|
+
setIsOpen(false);
|
|
192
|
+
};
|
|
193
|
+
return createElement(ConfirmDialog, {
|
|
194
|
+
isOpen: isOpen,
|
|
195
|
+
cancelButtonText: __('Cancel'),
|
|
196
|
+
confirmButtonText: __('Delete'),
|
|
197
|
+
onCancel: handleCancelUninstall,
|
|
198
|
+
onConfirm: handleConfirmUninstall
|
|
199
|
+
}, font && sprintf( /* translators: %s: Name of the font. */
|
|
200
|
+
__('Are you sure you want to delete "%s" font and all its variants and assets?'), font.name));
|
|
135
201
|
}
|
|
136
202
|
export default InstalledFonts;
|
|
137
203
|
//# sourceMappingURL=installed-fonts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","useContext","useEffect","useState","privateApis","componentsPrivateApis","__experimentalHStack","HStack","__experimentalSpacer","Spacer","Button","Spinner","FlexItem","TabPanelLayout","FontLibraryContext","FontsGrid","LibraryFontDetails","LibraryFontCard","ConfirmDeleteDialog","unlock","ProgressBar","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","notice","setNotice","isConfirmDeleteOpen","setIsConfirmDeleteOpen","handleUnselectFont","handleSelectFont","font","handleConfirmUninstall","type","message","error","handleUninstallClick","handleCancelUninstall","tabDescription","shouldDisplayDeleteButton","source","createElement","title","name","description","handleBack","footer","Footer","Fragment","margin","length","map","key","slug","onClick","saveFontFamilies","fontFamiliesHasChanges","isInstalling","justify","isDestructive","variant","disabled","__experimentalIsFocusable"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport {\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\tButton,\n\tSpinner,\n\tFlexItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TabPanelLayout from './tab-panel-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport LibraryFontDetails from './library-font-details';\nimport LibraryFontCard from './library-font-card';\nimport ConfirmDeleteDialog from './confirm-delete-dialog';\nimport { unlock } from '../../../lock-unlock';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\n\tconst handleUnselectFont = () => {\n\t\thandleSetLibraryFontSelected( null );\n\t};\n\n\tconst handleSelectFont = ( font ) => {\n\t\thandleSetLibraryFontSelected( font );\n\t};\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\n\t\ttry {\n\t\t\tawait uninstallFontFamily( libraryFontSelected );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\n\t\t\t// If the font was succesfully uninstalled it is unselected.\n\t\t\thandleUnselectFont();\n\t\t\tsetIsConfirmDeleteOpen( false );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleUninstallClick = async () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsConfirmDeleteOpen( false );\n\t};\n\n\tconst tabDescription = !! libraryFontSelected\n\t\t? __(\n\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t )\n\t\t: null;\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected && libraryFontSelected?.source !== 'theme';\n\n\tuseEffect( () => {\n\t\thandleSelectFont( libraryFontSelected );\n\t\trefreshLibrary();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\treturn (\n\t\t<TabPanelLayout\n\t\t\ttitle={ libraryFontSelected?.name || '' }\n\t\t\tdescription={ tabDescription }\n\t\t\tnotice={ notice }\n\t\t\thandleBack={ !! libraryFontSelected && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\t<Footer\n\t\t\t\t\tshouldDisplayDeleteButton={ shouldDisplayDeleteButton }\n\t\t\t\t\thandleUninstallClick={ handleUninstallClick }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<ConfirmDeleteDialog\n\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t/>\n\n\t\t\t{ ! libraryFontSelected && (\n\t\t\t\t<>\n\t\t\t\t\t{ isResolvingLibrary && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<FontsGrid>\n\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</FontsGrid>\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<FontsGrid title={ __( 'Theme Fonts' ) }>\n\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</FontsGrid>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ libraryFontSelected && (\n\t\t\t\t<LibraryFontDetails\n\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</TabPanelLayout>\n\t);\n}\n\nfunction Footer( { shouldDisplayDeleteButton, handleUninstallClick } ) {\n\tconst { saveFontFamilies, fontFamiliesHasChanges, isInstalling } =\n\t\tuseContext( FontLibraryContext );\n\treturn (\n\t\t<HStack justify=\"flex-end\">\n\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t<div>\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ saveFontFamilies }\n\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t__experimentalIsFocusable\n\t\t\t>\n\t\t\t\t{ __( 'Update' ) }\n\t\t\t</Button>\n\t\t</HStack>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalUseNavigator","useNavigator","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Flex","Notice","Spinner","privateApis","componentsPrivateApis","useContext","useEffect","useState","__","sprintf","chevronLeft","unlock","FontLibraryContext","FontCard","LibraryFontVariant","sortFontFaces","ProgressBar","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamiliesHasChanges","notice","setNotice","isConfirmDeleteOpen","setIsConfirmDeleteOpen","shouldDisplayDeleteButton","source","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","getFontCardVariantsText","variantsInstalled","variantsActive","slug","createElement","className","align","initialPath","path","Fragment","margin","status","type","onRemove","message","map","key","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","justify","icon","isSmall","level","size","name","spacing","face","i","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","cancelButtonText","confirmButtonText","onCancel","onConfirm"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tSpinner,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tfontFamiliesHasChanges,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected && libraryFontSelected?.source !== 'theme';\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<HStack align=\"center\">\n\t\t\t\t\t<Spacer />\n\t\t\t\t\t<Spinner />\n\t\t\t\t\t<Spacer />\n\t\t\t\t</HStack>\n\t\t\t) }\n\n\t\t\t<NavigatorProvider\n\t\t\t\tinitialPath={ libraryFontSelected ? '/fontFamily' : '/' }\n\t\t\t>\n\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t{ getFontFacesToDisplay( libraryFontSelected ).map(\n\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</NavigatorScreen>\n\t\t\t</NavigatorProvider>\n\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t>\n\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ saveFontFamilies }\n\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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"}
|