@wordpress/edit-site 6.4.0 → 6.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/add-new-pattern/index.js +6 -1
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/add-new-post/index.js +2 -1
- package/build/components/add-new-post/index.js.map +1 -1
- package/build/components/add-new-template/utils.js +2 -2
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/editor/index.js +71 -20
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/font-families.js +3 -4
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +0 -5
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +25 -5
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +1 -8
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +21 -6
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/upload-fonts.js +2 -3
- package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build/components/global-styles/screen-typeset.js +40 -0
- package/build/components/global-styles/screen-typeset.js.map +1 -0
- package/build/components/global-styles/screen-typography-element.js +14 -0
- package/build/components/global-styles/screen-typography-element.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +4 -6
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/shadows-edit-panel.js +50 -59
- package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build/components/global-styles/typeset-button.js +97 -0
- package/build/components/global-styles/typeset-button.js.map +1 -0
- package/build/components/global-styles/typeset.js +80 -0
- package/build/components/global-styles/typeset.js.map +1 -0
- package/build/components/global-styles/ui.js +4 -0
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/utils.js +10 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/page-patterns/fields.js +230 -0
- package/build/components/page-patterns/fields.js.map +1 -0
- package/build/components/page-patterns/index.js +8 -226
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +26 -1
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates/fields.js +169 -0
- package/build/components/page-templates/fields.js.map +1 -0
- package/build/components/page-templates/index.js +10 -177
- package/build/components/page-templates/index.js.map +1 -1
- package/build/components/post-edit/index.js +18 -6
- package/build/components/post-edit/index.js.map +1 -1
- package/build/components/post-fields/index.js +19 -15
- package/build/components/post-fields/index.js.map +1 -1
- package/build/components/post-list/index.js +125 -67
- package/build/components/post-list/index.js.map +1 -1
- package/build/components/sidebar-dataviews/add-new-view.js +2 -2
- package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build/components/sidebar-dataviews/dataview-item.js +2 -3
- package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +81 -81
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +3 -42
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/site-hub/index.js +6 -3
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/style-book/index.js +22 -25
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +2 -3
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -4
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build/index.js +0 -2
- package/build/index.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +6 -1
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/add-new-post/index.js +2 -1
- package/build-module/components/add-new-post/index.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +2 -2
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/editor/index.js +73 -22
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +3 -4
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +0 -5
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +26 -6
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js +1 -8
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +21 -6
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js +2 -3
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build-module/components/global-styles/screen-typeset.js +34 -0
- package/build-module/components/global-styles/screen-typeset.js.map +1 -0
- package/build-module/components/global-styles/screen-typography-element.js +14 -0
- package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +4 -6
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/shadows-edit-panel.js +51 -60
- package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build-module/components/global-styles/typeset-button.js +89 -0
- package/build-module/components/global-styles/typeset-button.js.map +1 -0
- package/build-module/components/global-styles/typeset.js +71 -0
- package/build-module/components/global-styles/typeset.js.map +1 -0
- package/build-module/components/global-styles/ui.js +4 -0
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/utils.js +10 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/page-patterns/fields.js +223 -0
- package/build-module/components/page-patterns/fields.js.map +1 -0
- package/build-module/components/page-patterns/index.js +11 -229
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +26 -1
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates/fields.js +160 -0
- package/build-module/components/page-templates/fields.js.map +1 -0
- package/build-module/components/page-templates/index.js +12 -178
- package/build-module/components/page-templates/index.js.map +1 -1
- package/build-module/components/post-edit/index.js +20 -8
- package/build-module/components/post-edit/index.js.map +1 -1
- package/build-module/components/post-fields/index.js +19 -15
- package/build-module/components/post-fields/index.js.map +1 -1
- package/build-module/components/post-list/index.js +127 -69
- package/build-module/components/post-list/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/add-new-view.js +2 -2
- package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js +2 -3
- package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +81 -81
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +3 -42
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/site-hub/index.js +7 -4
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/style-book/index.js +23 -26
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +2 -3
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build-module/index.js +0 -2
- package/build-module/index.js.map +1 -1
- package/build-style/posts-rtl.css +190 -11
- package/build-style/posts.css +190 -11
- package/build-style/style-rtl.css +296 -55
- package/build-style/style.css +296 -55
- package/package.json +41 -41
- package/src/components/add-new-pattern/index.js +8 -3
- package/src/components/add-new-post/index.js +2 -1
- package/src/components/add-new-template/utils.js +10 -6
- package/src/components/editor/index.js +80 -22
- package/src/components/editor/style.scss +59 -1
- package/src/components/global-styles/font-families.js +3 -5
- package/src/components/global-styles/font-library-modal/context.js +0 -5
- package/src/components/global-styles/font-library-modal/font-collection.js +34 -10
- package/src/components/global-styles/font-library-modal/index.js +2 -7
- package/src/components/global-styles/font-library-modal/installed-fonts.js +23 -5
- package/src/components/global-styles/font-library-modal/style.scss +1 -1
- package/src/components/global-styles/font-library-modal/upload-fonts.js +2 -2
- package/src/components/global-styles/screen-typeset.js +42 -0
- package/src/components/global-styles/screen-typography-element.js +14 -0
- package/src/components/global-styles/screen-typography.js +4 -4
- package/src/components/global-styles/shadows-edit-panel.js +66 -73
- package/src/components/global-styles/style.scss +4 -7
- package/src/components/global-styles/typeset-button.js +93 -0
- package/src/components/global-styles/typeset.js +73 -0
- package/src/components/global-styles/ui.js +5 -0
- package/src/components/global-styles/utils.js +13 -1
- package/src/components/layout/style.scss +8 -0
- package/src/components/page-patterns/fields.js +251 -0
- package/src/components/page-patterns/index.js +15 -244
- package/src/components/page-patterns/style.scss +82 -85
- package/src/components/page-patterns/use-patterns.js +31 -1
- package/src/components/page-templates/fields.js +157 -0
- package/src/components/page-templates/index.js +19 -170
- package/src/components/page-templates/style.scss +14 -5
- package/src/components/post-edit/index.js +27 -8
- package/src/components/post-fields/index.js +29 -17
- package/src/components/post-list/index.js +134 -74
- package/src/components/sidebar-dataviews/add-new-view.js +2 -4
- package/src/components/sidebar-dataviews/dataview-item.js +2 -2
- package/src/components/sidebar-dataviews/default-views.js +95 -95
- package/src/components/sidebar-dataviews/index.js +3 -37
- package/src/components/site-hub/index.js +11 -2
- package/src/components/site-icon/style.scss +4 -1
- package/src/components/style-book/index.js +27 -32
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
- package/src/hooks/push-changes-to-global-styles/index.js +2 -3
- package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
- package/src/index.js +0 -2
- package/build/utils/clone-deep.js +0 -15
- package/build/utils/clone-deep.js.map +0 -1
- package/build-module/utils/clone-deep.js +0 -9
- package/build-module/utils/clone-deep.js.map +0 -1
- package/src/utils/clone-deep.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_components","_compose","_i18n","_icons","_context","_fontCard","_interopRequireDefault","_filterFonts","_toggleFont","_fontsOutline","_googleFontsConfirmDialog","_utils","_sortFontFaces","_collectionFontVariant","_jsxRuntime","DEFAULT_CATEGORY","slug","name","_x","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","useState","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","notice","setNotice","useContext","FontLibraryContext","selectedCollection","find","collection","useEffect","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","useMemo","_selectedCollection$f","font_families","collectionCategories","categories","fonts","filterFonts","isLoading","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","debounce","handleToggleVariant","font","face","newFontsToInstall","toggleFont","fontToInstallOutline","getFontsOutline","resetFontsToInstall","handleInstall","fontFamily","fontFace","Promise","all","map","src","file","downloadFontFaceAssets","error","__","getSortedFontFaces","fontStyle","fontWeight","sortFontFaces","jsx","default","ActionsComponent","DropdownMenu","icon","moreVertical","label","popoverProps","position","controls","title","onClick","jsxs","className","children","ProgressBar","Fragment","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalHStack","justify","__experimentalVStack","__experimentalHeading","level","size","__experimentalText","description","__experimentalSpacer","margin","Flex","FlexItem","SearchControl","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","SelectControl","role","font_family_settings","navigatorPath","__experimentalNavigatorToParentButton","chevronLeft","Notice","status","onRemove","spacing","i","selected","isFontFontFaceInOutline","Button","variant","isBusy","disabled","accessibleWhenDisabled","showTooltip","tooltipPosition","expanded","createInterpolateElement","sprintf","CurrentPageControl","options","Array","newPage","parseInt","chevronRight","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalHeading as Heading,\n\tNotice,\n\tSelectControl,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tDropdownMenu,\n\tSearchControl,\n\tProgressBar,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { moreVertical, chevronLeft, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport { toggleFont } from './utils/toggleFont';\nimport {\n\tgetFontsOutline,\n\tisFontFontFaceInOutline,\n} from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { downloadFontFaceAssets } from './utils';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport CollectionFontVariant from './collection-font-variant';\n\nconst DEFAULT_CATEGORY = {\n\tslug: 'all',\n\tname: _x( 'All', 'font categories' ),\n};\n\nconst LOCAL_STORAGE_ITEM = 'wp-font-library-google-fonts-permission';\nconst MIN_WINDOW_HEIGHT = 500;\n\nfunction FontCollection( { slug } ) {\n\tconst requiresPermission = slug === 'google-fonts';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn window.localStorage.getItem( LOCAL_STORAGE_ITEM ) === 'true';\n\t};\n\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst {\n\t\tcollections,\n\t\tgetFontCollection,\n\t\tinstallFonts,\n\t\tisInstalling,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.slug === slug\n\t);\n\n\tuseEffect( () => {\n\t\tconst handleStorage = () => {\n\t\t\tsetRenderConfirmDialog(\n\t\t\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t\t\t);\n\t\t};\n\t\thandleStorage();\n\t\twindow.addEventListener( 'storage', handleStorage );\n\t\treturn () => window.removeEventListener( 'storage', handleStorage );\n\t}, [ slug, requiresPermission ] );\n\n\tconst revokeAccess = () => {\n\t\twindow.localStorage.setItem( LOCAL_STORAGE_ITEM, 'false' );\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( slug );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tif ( ! notice ) {\n\t\t\t\t\tsetNotice( {\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ slug, getFontCollection, setNotice, notice ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ slug, setNotice ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.font_families ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\tconst isLoading = ! selectedCollection?.font_families && ! notice;\n\n\t// NOTE: The height of the font library modal unavailable to use for rendering font family items is roughly 417px\n\t// The height of each font family item is 61px.\n\tconst windowHeight = Math.max( window.innerHeight, MIN_WINDOW_HEIGHT );\n\tconst pageSize = Math.floor( ( windowHeight - 417 ) / 61 );\n\tconst totalPages = Math.ceil( fonts.length / pageSize );\n\tconst itemsStart = ( page - 1 ) * pageSize;\n\tconst itemsLimit = page * pageSize;\n\tconst items = fonts.slice( itemsStart, itemsLimit );\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst handleInstall = async () => {\n\t\tsetNotice( null );\n\n\t\tconst fontFamily = fontsToInstall[ 0 ];\n\n\t\ttry {\n\t\t\tif ( fontFamily?.fontFace ) {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tfontFamily.fontFace.map( async ( fontFace ) => {\n\t\t\t\t\t\tif ( fontFace.src ) {\n\t\t\t\t\t\t\tfontFace.file = await downloadFontFaceAssets(\n\t\t\t\t\t\t\t\tfontFace.src\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\t// If any of the fonts fail to download,\n\t\t\t// show an error notice and stop the request from being sent.\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Error installing the fonts, could not be downloaded.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFonts( [ fontFamily ] );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\t\tresetFontsToInstall();\n\t};\n\n\tconst getSortedFontFaces = ( fontFamily ) => {\n\t\tif ( ! fontFamily ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! fontFamily.fontFace || ! fontFamily.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: fontFamily.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( fontFamily.fontFace );\n\t};\n\n\tif ( renderConfirmDialog ) {\n\t\treturn <GoogleFontsConfirmDialog />;\n\t}\n\n\tconst ActionsComponent = () => {\n\t\tif ( slug !== 'google-fonts' || renderConfirmDialog || selectedFont ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tposition: 'bottom left',\n\t\t\t\t} }\n\t\t\t\tcontrols={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: __( 'Revoke access to Google Fonts' ),\n\t\t\t\t\t\tonClick: revokeAccess,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isLoading && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isLoading && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath=\"/\"\n\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.name }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.description }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t<ActionsComponent />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Flex>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__search\"\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t</Flex>\n\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\n\t\t\t\t\t\t\t{ !! selectedCollection?.font_families?.length &&\n\t\t\t\t\t\t\t\t! fonts.length && (\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'No fonts found. Try with a different search term'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ items.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings.slug\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\tfont={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedFont(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }{ ' ' }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedFont( null );\n\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ selectedFont?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __( 'Select font variants to install.' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getSortedFontFaces( selectedFont ).map(\n\t\t\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\t\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant={\n\t\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.slug,\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.fontFace\n\t\t\t\t\t\t\t\t\t\t\t\t\t? face\n\t\t\t\t\t\t\t\t\t\t\t\t\t: null, // If the font has no fontFace, we want to check if the font is in the outline\n\t\t\t\t\t\t\t\t\t\t\t\tfontToInstallOutline\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t{ selectedFont && (\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ handleInstall }\n\t\t\t\t\t\t\t\tisBusy={ isInstalling }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tfontsToInstall.length === 0 || isInstalling\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Install' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! selectedFont && (\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page - 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__page-selection\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Total number of pages.\n\t\t\t\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t\t\t\t'Page <CurrentPageControl /> of %s',\n\t\t\t\t\t\t\t\t\t\t\t'paging'\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tCurrentPageControl: (\n\t\t\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Current page'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ page }\n\t\t\t\t\t\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t\t\t\t\t\t...Array( totalPages ),\n\t\t\t\t\t\t\t\t\t\t\t\t].map( ( e, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newPage ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetPage(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt( newPage )\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page + 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_element","require","_components","_compose","_i18n","_icons","_context","_fontCard","_interopRequireDefault","_filterFonts","_toggleFont","_fontsOutline","_googleFontsConfirmDialog","_utils","_sortFontFaces","_collectionFontVariant","_jsxRuntime","DEFAULT_CATEGORY","slug","name","_x","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","useState","notice","setNotice","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","useContext","FontLibraryContext","selectedCollection","find","collection","useEffect","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","useMemo","_selectedCollection$f","font_families","collectionCategories","categories","fonts","filterFonts","isLoading","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","debounce","handleToggleVariant","font","face","newFontsToInstall","toggleFont","fontToInstallOutline","getFontsOutline","resetFontsToInstall","selectFontCount","fontFace","isIndeterminate","isSelectAllChecked","toggleSelectAll","newFonts","handleInstall","fontFamily","Promise","all","map","src","file","downloadFontFaceAssets","error","__","getSortedFontFaces","fontStyle","fontWeight","sortFontFaces","jsx","default","ActionsComponent","DropdownMenu","icon","moreVertical","label","popoverProps","position","controls","title","onClick","jsxs","className","children","ProgressBar","Fragment","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalHStack","justify","__experimentalVStack","__experimentalHeading","level","size","__experimentalText","description","__experimentalSpacer","margin","Flex","FlexItem","SearchControl","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","SelectControl","__next40pxDefaultSize","role","font_family_settings","navigatorPath","__experimentalNavigatorToParentButton","chevronLeft","Notice","status","onRemove","CheckboxControl","checked","indeterminate","spacing","i","selected","isFontFontFaceInOutline","Button","variant","isBusy","disabled","accessibleWhenDisabled","showTooltip","tooltipPosition","expanded","createInterpolateElement","sprintf","CurrentPageControl","options","Array","newPage","parseInt","chevronRight","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalHeading as Heading,\n\tNotice,\n\tSelectControl,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tDropdownMenu,\n\tSearchControl,\n\tProgressBar,\n\tCheckboxControl,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { moreVertical, chevronLeft, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport { toggleFont } from './utils/toggleFont';\nimport {\n\tgetFontsOutline,\n\tisFontFontFaceInOutline,\n} from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { downloadFontFaceAssets } from './utils';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport CollectionFontVariant from './collection-font-variant';\n\nconst DEFAULT_CATEGORY = {\n\tslug: 'all',\n\tname: _x( 'All', 'font categories' ),\n};\n\nconst LOCAL_STORAGE_ITEM = 'wp-font-library-google-fonts-permission';\nconst MIN_WINDOW_HEIGHT = 500;\n\nfunction FontCollection( { slug } ) {\n\tconst requiresPermission = slug === 'google-fonts';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn window.localStorage.getItem( LOCAL_STORAGE_ITEM ) === 'true';\n\t};\n\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ notice, setNotice ] = useState( false );\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 { collections, getFontCollection, installFonts, isInstalling } =\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\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}, [ slug ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.font_families ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\tconst isLoading = ! selectedCollection?.font_families && ! notice;\n\n\t// NOTE: The height of the font library modal unavailable to use for rendering font family items is roughly 417px\n\t// The height of each font family item is 61px.\n\tconst windowHeight = Math.max( window.innerHeight, MIN_WINDOW_HEIGHT );\n\tconst pageSize = Math.floor( ( windowHeight - 417 ) / 61 );\n\tconst totalPages = Math.ceil( fonts.length / pageSize );\n\tconst itemsStart = ( page - 1 ) * pageSize;\n\tconst itemsLimit = page * pageSize;\n\tconst items = fonts.slice( itemsStart, itemsLimit );\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t\tsetPage( 1 );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t\tsetPage( 1 );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst selectFontCount =\n\t\tfontsToInstall.length > 0 ? fontsToInstall[ 0 ]?.fontFace?.length : 0;\n\n\t// Check if any fonts are selected.\n\tconst isIndeterminate =\n\t\tselectFontCount > 0 &&\n\t\tselectFontCount !== selectedFont?.fontFace?.length;\n\n\t// Check if all fonts are selected.\n\tconst isSelectAllChecked =\n\t\tselectFontCount === selectedFont?.fontFace?.length;\n\n\t// Toggle select all fonts.\n\tconst toggleSelectAll = () => {\n\t\tconst newFonts = isSelectAllChecked ? [] : [ selectedFont ];\n\n\t\tsetFontsToInstall( newFonts );\n\t};\n\n\tconst handleInstall = async () => {\n\t\tsetNotice( null );\n\n\t\tconst fontFamily = fontsToInstall[ 0 ];\n\n\t\ttry {\n\t\t\tif ( fontFamily?.fontFace ) {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tfontFamily.fontFace.map( async ( fontFace ) => {\n\t\t\t\t\t\tif ( fontFace.src ) {\n\t\t\t\t\t\t\tfontFace.file = await downloadFontFaceAssets(\n\t\t\t\t\t\t\t\tfontFace.src\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\t// If any of the fonts fail to download,\n\t\t\t// show an error notice and stop the request from being sent.\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Error installing the fonts, could not be downloaded.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFonts( [ fontFamily ] );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\t\tresetFontsToInstall();\n\t};\n\n\tconst getSortedFontFaces = ( fontFamily ) => {\n\t\tif ( ! fontFamily ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! fontFamily.fontFace || ! fontFamily.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: fontFamily.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( fontFamily.fontFace );\n\t};\n\n\tif ( renderConfirmDialog ) {\n\t\treturn <GoogleFontsConfirmDialog />;\n\t}\n\n\tconst ActionsComponent = () => {\n\t\tif ( slug !== 'google-fonts' || renderConfirmDialog || selectedFont ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tposition: 'bottom left',\n\t\t\t\t} }\n\t\t\t\tcontrols={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: __( 'Revoke access to Google Fonts' ),\n\t\t\t\t\t\tonClick: revokeAccess,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isLoading && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isLoading && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath=\"/\"\n\t\t\t\t\t\tclassName=\"font-library-modal__tabpanel-layout\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.name }\n\t\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ selectedCollection.description }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t<ActionsComponent />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Flex>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__search\"\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ category.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t</Flex>\n\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\n\t\t\t\t\t\t\t{ !! selectedCollection?.font_families?.length &&\n\t\t\t\t\t\t\t\t! fonts.length && (\n\t\t\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'No fonts found. Try with a different search term'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ items.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings.slug\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\tfont={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedFont(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont.font_family_settings\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }{ ' ' }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedFont( null );\n\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ selectedFont?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __( 'Select font variants to install.' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__select-all\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Select all' ) }\n\t\t\t\t\t\t\t\tchecked={ isSelectAllChecked }\n\t\t\t\t\t\t\t\tonChange={ toggleSelectAll }\n\t\t\t\t\t\t\t\tindeterminate={ isIndeterminate }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getSortedFontFaces( selectedFont ).map(\n\t\t\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\t\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant={\n\t\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.slug,\n\t\t\t\t\t\t\t\t\t\t\t\tselectedFont.fontFace\n\t\t\t\t\t\t\t\t\t\t\t\t\t? face\n\t\t\t\t\t\t\t\t\t\t\t\t\t: null, // If the font has no fontFace, we want to check if the font is in the outline\n\t\t\t\t\t\t\t\t\t\t\t\tfontToInstallOutline\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t{ selectedFont && (\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ handleInstall }\n\t\t\t\t\t\t\t\tisBusy={ isInstalling }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tfontsToInstall.length === 0 || isInstalling\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Install' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ! selectedFont && (\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page - 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === 1 }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__page-selection\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Total number of pages.\n\t\t\t\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t\t\t\t'Page <CurrentPageControl /> of %s',\n\t\t\t\t\t\t\t\t\t\t\t'paging'\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tCurrentPageControl: (\n\t\t\t\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Current page'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ page }\n\t\t\t\t\t\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t\t\t\t\t\t...Array( totalPages ),\n\t\t\t\t\t\t\t\t\t\t\t\t].map( ( e, i ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: i + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newPage ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetPage(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseInt( newPage )\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => setPage( page + 1 ) }\n\t\t\t\t\t\t\t\tdisabled={ page === totalPages }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -47,8 +47,7 @@ function FontLibraryModal({
|
|
|
47
47
|
defaultTabId = 'installed-fonts'
|
|
48
48
|
}) {
|
|
49
49
|
const {
|
|
50
|
-
collections
|
|
51
|
-
setNotice
|
|
50
|
+
collections
|
|
52
51
|
} = (0, _element.useContext)(_context.FontLibraryContext);
|
|
53
52
|
const canUserCreate = (0, _data.useSelect)(select => {
|
|
54
53
|
return select(_coreData.store).canUser('create', {
|
|
@@ -61,11 +60,6 @@ function FontLibraryModal({
|
|
|
61
60
|
tabs.push(UPLOAD_TAB);
|
|
62
61
|
tabs.push(...tabsFromCollections(collections || []));
|
|
63
62
|
}
|
|
64
|
-
|
|
65
|
-
// Reset notice when new tab is selected.
|
|
66
|
-
const onSelect = () => {
|
|
67
|
-
setNotice(null);
|
|
68
|
-
};
|
|
69
63
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Modal, {
|
|
70
64
|
title: (0, _i18n.__)('Fonts'),
|
|
71
65
|
onRequestClose: onRequestClose,
|
|
@@ -75,7 +69,6 @@ function FontLibraryModal({
|
|
|
75
69
|
className: "font-library-modal__tabs",
|
|
76
70
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Tabs, {
|
|
77
71
|
defaultTabId: defaultTabId,
|
|
78
|
-
onSelect: onSelect,
|
|
79
72
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Tabs.TabList, {
|
|
80
73
|
children: tabs.map(({
|
|
81
74
|
id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_components","_coreData","_data","_element","_installedFonts","_interopRequireDefault","_fontCollection","_uploadFonts","_context","_lockUnlock","_jsxRuntime","Tabs","unlock","componentsPrivateApis","DEFAULT_TAB","id","title","_x","UPLOAD_TAB","__","tabsFromCollections","collections","map","slug","name","length","FontLibraryModal","onRequestClose","defaultTabId","
|
|
1
|
+
{"version":3,"names":["_i18n","require","_components","_coreData","_data","_element","_installedFonts","_interopRequireDefault","_fontCollection","_uploadFonts","_context","_lockUnlock","_jsxRuntime","Tabs","unlock","componentsPrivateApis","DEFAULT_TAB","id","title","_x","UPLOAD_TAB","__","tabsFromCollections","collections","map","slug","name","length","FontLibraryModal","onRequestClose","defaultTabId","useContext","FontLibraryContext","canUserCreate","useSelect","select","coreStore","canUser","kind","tabs","push","jsx","Modal","isFullScreen","className","children","jsxs","TabList","Tab","tabId","contents","default","TabPanel","focusable","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InstalledFonts from './installed-fonts';\nimport FontCollection from './font-collection';\nimport UploadFonts from './upload-fonts';\nimport { FontLibraryContext } from './context';\nimport { unlock } from '../../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst DEFAULT_TAB = {\n\tid: 'installed-fonts',\n\ttitle: _x( 'Library', 'Font library' ),\n};\n\nconst UPLOAD_TAB = {\n\tid: 'upload-fonts',\n\ttitle: __( 'Upload' ),\n};\n\nconst tabsFromCollections = ( collections ) =>\n\tcollections.map( ( { slug, name } ) => ( {\n\t\tid: slug,\n\t\ttitle:\n\t\t\tcollections.length === 1 && slug === 'google-fonts'\n\t\t\t\t? __( 'Install Fonts' )\n\t\t\t\t: name,\n\t} ) );\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tdefaultTabId = 'installed-fonts',\n} ) {\n\tconst { collections } = useContext( FontLibraryContext );\n\tconst canUserCreate = useSelect( ( select ) => {\n\t\treturn select( coreStore ).canUser( 'create', {\n\t\t\tkind: 'postType',\n\t\t\tname: 'wp_font_family',\n\t\t} );\n\t}, [] );\n\n\tconst tabs = [ DEFAULT_TAB ];\n\n\tif ( canUserCreate ) {\n\t\ttabs.push( UPLOAD_TAB );\n\t\ttabs.push( ...tabsFromCollections( collections || [] ) );\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Fonts' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tisFullScreen\n\t\t\tclassName=\"font-library-modal\"\n\t\t>\n\t\t\t<div className=\"font-library-modal__tabs\">\n\t\t\t\t<Tabs defaultTabId={ defaultTabId }>\n\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t{ tabs.map( ( { id, title } ) => (\n\t\t\t\t\t\t\t<Tabs.Tab key={ id } tabId={ id }>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( { id } ) => {\n\t\t\t\t\t\tlet contents;\n\t\t\t\t\t\tswitch ( id ) {\n\t\t\t\t\t\t\tcase 'upload-fonts':\n\t\t\t\t\t\t\t\tcontents = <UploadFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\t\t\tcontents = <InstalledFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tcontents = <FontCollection slug={ id } />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\t\ttabId={ id }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contents }\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -41,12 +41,11 @@ function InstalledFonts() {
|
|
|
41
41
|
isResolvingLibrary,
|
|
42
42
|
isInstalling,
|
|
43
43
|
saveFontFamilies,
|
|
44
|
-
getFontFacesActivated
|
|
45
|
-
notice,
|
|
46
|
-
setNotice
|
|
44
|
+
getFontFacesActivated
|
|
47
45
|
} = (0, _element.useContext)(_context.FontLibraryContext);
|
|
48
46
|
const [fontFamilies, setFontFamilies] = useGlobalSetting('typography.fontFamilies');
|
|
49
47
|
const [isConfirmDeleteOpen, setIsConfirmDeleteOpen] = (0, _element.useState)(false);
|
|
48
|
+
const [notice, setNotice] = (0, _element.useState)(false);
|
|
50
49
|
const [baseFontFamilies] = useGlobalSetting('typography.fontFamilies', undefined, 'base');
|
|
51
50
|
const globalStylesId = (0, _data.useSelect)(select => {
|
|
52
51
|
const {
|
|
@@ -78,6 +77,21 @@ function InstalledFonts() {
|
|
|
78
77
|
const handleUninstallClick = () => {
|
|
79
78
|
setIsConfirmDeleteOpen(true);
|
|
80
79
|
};
|
|
80
|
+
const handleUpdate = async () => {
|
|
81
|
+
setNotice(null);
|
|
82
|
+
try {
|
|
83
|
+
await saveFontFamilies(fontFamilies);
|
|
84
|
+
setNotice({
|
|
85
|
+
type: 'success',
|
|
86
|
+
message: (0, _i18n.__)('Font family updated successfully.')
|
|
87
|
+
});
|
|
88
|
+
} catch (error) {
|
|
89
|
+
setNotice({
|
|
90
|
+
type: 'error',
|
|
91
|
+
message: (0, _i18n.__)('There was an error updating the font family. ') + error.message
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
};
|
|
81
95
|
const getFontFacesToDisplay = font => {
|
|
82
96
|
if (!font) {
|
|
83
97
|
return [];
|
|
@@ -166,6 +180,7 @@ function InstalledFonts() {
|
|
|
166
180
|
navigatorPath: "/fontFamily",
|
|
167
181
|
variantsText: getFontCardVariantsText(font),
|
|
168
182
|
onClick: () => {
|
|
183
|
+
setNotice(null);
|
|
169
184
|
handleSetLibraryFontSelected(font);
|
|
170
185
|
}
|
|
171
186
|
})
|
|
@@ -186,6 +201,7 @@ function InstalledFonts() {
|
|
|
186
201
|
navigatorPath: "/fontFamily",
|
|
187
202
|
variantsText: getFontCardVariantsText(font),
|
|
188
203
|
onClick: () => {
|
|
204
|
+
setNotice(null);
|
|
189
205
|
handleSetLibraryFontSelected(font);
|
|
190
206
|
}
|
|
191
207
|
})
|
|
@@ -209,6 +225,7 @@ function InstalledFonts() {
|
|
|
209
225
|
size: "small",
|
|
210
226
|
onClick: () => {
|
|
211
227
|
handleSetLibraryFontSelected(null);
|
|
228
|
+
setNotice(null);
|
|
212
229
|
},
|
|
213
230
|
label: (0, _i18n.__)('Back')
|
|
214
231
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHeading, {
|
|
@@ -260,9 +277,7 @@ function InstalledFonts() {
|
|
|
260
277
|
children: (0, _i18n.__)('Delete')
|
|
261
278
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
262
279
|
variant: "primary",
|
|
263
|
-
onClick:
|
|
264
|
-
saveFontFamilies(fontFamilies);
|
|
265
|
-
},
|
|
280
|
+
onClick: handleUpdate,
|
|
266
281
|
disabled: !fontFamiliesHasChanges,
|
|
267
282
|
accessibleWhenDisabled: true,
|
|
268
283
|
children: (0, _i18n.__)('Update')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_icons","_blockEditor","_context","_fontCard","_interopRequireDefault","_libraryFontVariant","_sortFontFaces","_utils","_lockUnlock","_jsxRuntime","useGlobalSetting","unlock","blockEditorPrivateApis","InstalledFonts","_libraryFontSelected$","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","notice","setNotice","useContext","FontLibraryContext","fontFamilies","setFontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","baseFontFamilies","undefined","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","coreStore","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFontFamilyId","id","canUserDelete","canUser","kind","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","sortFontFaces","getFontCardVariantsText","variantsInstalled","variantsActive","sprintf","__","useEffect","activeFontsCount","selectedFontsCount","isIndeterminate","isSelectAllChecked","toggleSelectAll","_fontFamilies$library","initialFonts","newFonts","forEach","face","unloadFontFaceInBrowser","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","hasFonts","jsxs","className","children","jsx","ProgressBar","Fragment","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalVStack","spacing","Notice","status","type","onRemove","message","__experimentalText","as","_x","role","default","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","Flex","justify","__experimentalNavigatorToParentButton","icon","chevronLeft","size","label","__experimentalHeading","level","__experimentalSpacer","margin","CheckboxControl","checked","onChange","indeterminate","__nextHasNoMarginBottom","i","__experimentalHStack","Button","isDestructive","variant","disabled","accessibleWhenDisabled","navigator","useNavigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","__experimentalConfirmDialog","cancelButtonText","confirmButtonText","onCancel","onConfirm","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tProgressBar,\n\tCheckboxControl,\n} from '@wordpress/components';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport {\n\tsetUIValuesNeeded,\n\tloadFontFaceInBrowser,\n\tunloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n} from './utils';\nimport { unlock } from '../../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst globalStylesId = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn __experimentalGetCurrentGlobalStylesId();\n\t} );\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst themeFontsSlugs = new Set( themeFonts.map( ( f ) => f.slug ) );\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? themeFonts.concat(\n\t\t\t\tbaseFontFamilies.theme\n\t\t\t\t\t.filter( ( f ) => ! themeFontsSlugs.has( f.slug ) )\n\t\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t )\n\t\t: [];\n\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_font_family',\n\t\t\t\t\tid: customFontFamilyId,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\t// Get activated fonts count.\n\tconst activeFontsCount = libraryFontSelected\n\t\t? getFontFacesActivated(\n\t\t\t\tlibraryFontSelected.slug,\n\t\t\t\tlibraryFontSelected.source\n\t\t ).length\n\t\t: 0;\n\n\tconst selectedFontsCount =\n\t\tlibraryFontSelected?.fontFace?.length ??\n\t\t( libraryFontSelected?.fontFamily ? 1 : 0 );\n\n\t// Check if any fonts are selected.\n\tconst isIndeterminate =\n\t\tactiveFontsCount > 0 && activeFontsCount !== selectedFontsCount;\n\n\t// Check if all fonts are selected.\n\tconst isSelectAllChecked = activeFontsCount === selectedFontsCount;\n\n\t// Toggle select all fonts.\n\tconst toggleSelectAll = () => {\n\t\tconst initialFonts =\n\t\t\tfontFamilies?.[ libraryFontSelected.source ]?.filter(\n\t\t\t\t( f ) => f.slug !== libraryFontSelected.slug\n\t\t\t) ?? [];\n\t\tconst newFonts = isSelectAllChecked\n\t\t\t? initialFonts\n\t\t\t: [ ...initialFonts, libraryFontSelected ];\n\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ libraryFontSelected.source ]: newFonts,\n\t\t} );\n\n\t\tif ( libraryFontSelected.fontFace ) {\n\t\t\tlibraryFontSelected.fontFace.forEach( ( face ) => {\n\t\t\t\tif ( isSelectAllChecked ) {\n\t\t\t\t\tunloadFontFaceInBrowser( face, 'all' );\n\t\t\t\t} else {\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face?.src ),\n\t\t\t\t\t\t'all'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst hasFonts = baseThemeFonts.length > 0 || baseCustomFonts.length > 0;\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isResolvingLibrary && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath={\n\t\t\t\t\t\t\tlibraryFontSelected ? '/fontFamily' : '/'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<VStack spacing=\"8\">\n\t\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! hasFonts && (\n\t\t\t\t\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'No fonts installed.' ) }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts provided by the theme. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'Theme', 'font source' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts installed by the user. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'Custom', 'font source' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__select-all\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Select all' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isSelectAllChecked }\n\t\t\t\t\t\t\t\t\tonChange={ toggleSelectAll }\n\t\t\t\t\t\t\t\t\tindeterminate={ isIndeterminate }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getFontFacesToDisplay(\n\t\t\t\t\t\t\t\t\tlibraryFontSelected\n\t\t\t\t\t\t\t\t).map( ( face, i ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsaveFontFamilies( fontFamilies );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_icons","_blockEditor","_context","_fontCard","_interopRequireDefault","_libraryFontVariant","_sortFontFaces","_utils","_lockUnlock","_jsxRuntime","useGlobalSetting","unlock","blockEditorPrivateApis","InstalledFonts","_libraryFontSelected$","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","useContext","FontLibraryContext","fontFamilies","setFontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","notice","setNotice","baseFontFamilies","undefined","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","coreStore","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFontFamilyId","id","canUserDelete","canUser","kind","shouldDisplayDeleteButton","handleUninstallClick","handleUpdate","type","message","__","error","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","sortFontFaces","getFontCardVariantsText","variantsInstalled","variantsActive","sprintf","useEffect","activeFontsCount","selectedFontsCount","isIndeterminate","isSelectAllChecked","toggleSelectAll","_fontFamilies$library","initialFonts","newFonts","forEach","face","unloadFontFaceInBrowser","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","hasFonts","jsxs","className","children","jsx","ProgressBar","Fragment","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","__experimentalVStack","spacing","Notice","status","onRemove","__experimentalText","as","_x","role","default","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","Flex","justify","__experimentalNavigatorToParentButton","icon","chevronLeft","size","label","__experimentalHeading","level","__experimentalSpacer","margin","CheckboxControl","checked","onChange","indeterminate","__nextHasNoMarginBottom","i","__experimentalHStack","Button","isDestructive","variant","disabled","accessibleWhenDisabled","navigator","useNavigator","handleConfirmUninstall","goBack","handleCancelUninstall","__experimentalConfirmDialog","cancelButtonText","confirmButtonText","onCancel","onConfirm","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tProgressBar,\n\tCheckboxControl,\n} from '@wordpress/components';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport {\n\tsetUIValuesNeeded,\n\tloadFontFaceInBrowser,\n\tunloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n} from './utils';\nimport { unlock } from '../../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t} = useContext( FontLibraryContext );\n\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst [ notice, setNotice ] = useState( false );\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst globalStylesId = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn __experimentalGetCurrentGlobalStylesId();\n\t} );\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\tconst themeFontsSlugs = new Set( themeFonts.map( ( f ) => f.slug ) );\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? themeFonts.concat(\n\t\t\t\tbaseFontFamilies.theme\n\t\t\t\t\t.filter( ( f ) => ! themeFontsSlugs.has( f.slug ) )\n\t\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t )\n\t\t: [];\n\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_font_family',\n\t\t\t\t\tid: customFontFamilyId,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst handleUpdate = async () => {\n\t\tsetNotice( null );\n\t\ttry {\n\t\t\tawait saveFontFamilies( fontFamilies );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family updated successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error updating the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\t// Get activated fonts count.\n\tconst activeFontsCount = libraryFontSelected\n\t\t? getFontFacesActivated(\n\t\t\t\tlibraryFontSelected.slug,\n\t\t\t\tlibraryFontSelected.source\n\t\t ).length\n\t\t: 0;\n\n\tconst selectedFontsCount =\n\t\tlibraryFontSelected?.fontFace?.length ??\n\t\t( libraryFontSelected?.fontFamily ? 1 : 0 );\n\n\t// Check if any fonts are selected.\n\tconst isIndeterminate =\n\t\tactiveFontsCount > 0 && activeFontsCount !== selectedFontsCount;\n\n\t// Check if all fonts are selected.\n\tconst isSelectAllChecked = activeFontsCount === selectedFontsCount;\n\n\t// Toggle select all fonts.\n\tconst toggleSelectAll = () => {\n\t\tconst initialFonts =\n\t\t\tfontFamilies?.[ libraryFontSelected.source ]?.filter(\n\t\t\t\t( f ) => f.slug !== libraryFontSelected.slug\n\t\t\t) ?? [];\n\t\tconst newFonts = isSelectAllChecked\n\t\t\t? initialFonts\n\t\t\t: [ ...initialFonts, libraryFontSelected ];\n\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ libraryFontSelected.source ]: newFonts,\n\t\t} );\n\n\t\tif ( libraryFontSelected.fontFace ) {\n\t\t\tlibraryFontSelected.fontFace.forEach( ( face ) => {\n\t\t\t\tif ( isSelectAllChecked ) {\n\t\t\t\t\tunloadFontFaceInBrowser( face, 'all' );\n\t\t\t\t} else {\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face?.src ),\n\t\t\t\t\t\t'all'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst hasFonts = baseThemeFonts.length > 0 || baseCustomFonts.length > 0;\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isResolvingLibrary && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath={\n\t\t\t\t\t\t\tlibraryFontSelected ? '/fontFamily' : '/'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<VStack spacing=\"8\">\n\t\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! hasFonts && (\n\t\t\t\t\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'No fonts installed.' ) }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts provided by the theme. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'Theme', 'font source' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts installed by the user. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'Custom', 'font source' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__select-all\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Select all' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isSelectAllChecked }\n\t\t\t\t\t\t\t\t\tonChange={ toggleSelectAll }\n\t\t\t\t\t\t\t\t\tindeterminate={ isIndeterminate }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getFontFacesToDisplay(\n\t\t\t\t\t\t\t\t\tlibraryFontSelected\n\t\t\t\t\t\t\t\t).map( ( face, i ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ handleUpdate }\n\t\t\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,11 +24,10 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
24
24
|
|
|
25
25
|
function UploadFonts() {
|
|
26
26
|
const {
|
|
27
|
-
installFonts
|
|
28
|
-
notice,
|
|
29
|
-
setNotice
|
|
27
|
+
installFonts
|
|
30
28
|
} = (0, _element.useContext)(_context.FontLibraryContext);
|
|
31
29
|
const [isUploading, setIsUploading] = (0, _element.useState)(false);
|
|
30
|
+
const [notice, setNotice] = (0, _element.useState)(false);
|
|
32
31
|
const handleDropZone = files => {
|
|
33
32
|
handleFilesUpload(files);
|
|
34
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_components","_element","_constants","_context","_libFont","_makeFamiliesFromFaces","_interopRequireDefault","_utils","_jsxRuntime","UploadFonts","installFonts","notice","setNotice","useContext","FontLibraryContext","isUploading","setIsUploading","useState","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","ALLOWED_FILE_EXTENSIONS","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","__","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","loadFontFaceInBrowser","handleInstall","font","Font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","makeFamiliesFromFaces","errors","installationErrors","jsxs","className","children","jsx","DropZone","onFilesDrop","__experimentalVStack","Notice","status","__unstableHTML","onRemove","index","FlexItem","ProgressBar","FormFileUpload","accept","ext","join","multiple","onChange","render","openFileDialog","Button","onClick","__experimentalSpacer","margin","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useContext, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\n\nfunction UploadFonts() {\n\tconst { installFonts, notice, setNotice } =\n\t\tuseContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = async ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tlet hasInvalidFiles = false;\n\n\t\t// Use map to create a promise for each file check, then filter with Promise.all.\n\t\tconst checkFilesPromises = selectedFiles.map( async ( file ) => {\n\t\t\tconst isFont = await isFontFile( file );\n\t\t\tif ( ! isFont ) {\n\t\t\t\thasInvalidFiles = true;\n\t\t\t\treturn null; // Return null for invalid files.\n\t\t\t}\n\t\t\t// Check for duplicates\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn null; // Return null for duplicates.\n\t\t\t}\n\t\t\t// Check if the file extension is allowed.\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn file; // Return the file if it passes all checks.\n\t\t\t}\n\t\t\treturn null; // Return null for disallowed file extensions.\n\t\t} );\n\n\t\t// Filter out the nulls after all promises have resolved.\n\t\tconst allowedFiles = ( await Promise.all( checkFilesPromises ) ).filter(\n\t\t\t( file ) => null !== file\n\t\t);\n\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tconst message = hasInvalidFiles\n\t\t\t\t? __( 'Sorry, you are not allowed to upload this file type.' )\n\t\t\t\t: __( 'No fonts found to install.' );\n\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage,\n\t\t\t} );\n\t\t\tsetIsUploading( false );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\thandleInstall( fontFacesLoaded );\n\t};\n\n\t/**\n\t * Checks if a file is a valid Font file.\n\t *\n\t * @param {File} file The file to be checked.\n\t * @return {boolean} Whether the file is a valid font file.\n\t */\n\tasync function isFontFile( file ) {\n\t\tconst font = new Font( 'Uploaded Font' );\n\t\ttry {\n\t\t\tconst buffer = await readFileAsArrayBuffer( file );\n\t\t\tawait font.fromDataBuffer( buffer, 'font' );\n\t\t\treturn true;\n\t\t} catch ( error ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\n\t\ttry {\n\t\t\tawait installFonts( fontFamilies );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t\terrors: error?.installationErrors,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ notice && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t__unstableHTML\n\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t{ notice.errors && (\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{ notice.errors.map( ( error, index ) => (\n\t\t\t\t\t\t\t\t\t<li key={ index }>{ error }</li>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload font' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_components","_element","_constants","_context","_libFont","_makeFamiliesFromFaces","_interopRequireDefault","_utils","_jsxRuntime","UploadFonts","installFonts","useContext","FontLibraryContext","isUploading","setIsUploading","useState","notice","setNotice","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","ALLOWED_FILE_EXTENSIONS","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","__","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","loadFontFaceInBrowser","handleInstall","font","Font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","makeFamiliesFromFaces","errors","installationErrors","jsxs","className","children","jsx","DropZone","onFilesDrop","__experimentalVStack","Notice","status","__unstableHTML","onRemove","index","FlexItem","ProgressBar","FormFileUpload","accept","ext","join","multiple","onChange","render","openFileDialog","Button","onClick","__experimentalSpacer","margin","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useContext, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\n\nfunction UploadFonts() {\n\tconst { installFonts } = useContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst [ notice, setNotice ] = useState( false );\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = async ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tlet hasInvalidFiles = false;\n\n\t\t// Use map to create a promise for each file check, then filter with Promise.all.\n\t\tconst checkFilesPromises = selectedFiles.map( async ( file ) => {\n\t\t\tconst isFont = await isFontFile( file );\n\t\t\tif ( ! isFont ) {\n\t\t\t\thasInvalidFiles = true;\n\t\t\t\treturn null; // Return null for invalid files.\n\t\t\t}\n\t\t\t// Check for duplicates\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn null; // Return null for duplicates.\n\t\t\t}\n\t\t\t// Check if the file extension is allowed.\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn file; // Return the file if it passes all checks.\n\t\t\t}\n\t\t\treturn null; // Return null for disallowed file extensions.\n\t\t} );\n\n\t\t// Filter out the nulls after all promises have resolved.\n\t\tconst allowedFiles = ( await Promise.all( checkFilesPromises ) ).filter(\n\t\t\t( file ) => null !== file\n\t\t);\n\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tconst message = hasInvalidFiles\n\t\t\t\t? __( 'Sorry, you are not allowed to upload this file type.' )\n\t\t\t\t: __( 'No fonts found to install.' );\n\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage,\n\t\t\t} );\n\t\t\tsetIsUploading( false );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\thandleInstall( fontFacesLoaded );\n\t};\n\n\t/**\n\t * Checks if a file is a valid Font file.\n\t *\n\t * @param {File} file The file to be checked.\n\t * @return {boolean} Whether the file is a valid font file.\n\t */\n\tasync function isFontFile( file ) {\n\t\tconst font = new Font( 'Uploaded Font' );\n\t\ttry {\n\t\t\tconst buffer = await readFileAsArrayBuffer( file );\n\t\t\tawait font.fromDataBuffer( buffer, 'font' );\n\t\t\treturn true;\n\t\t} catch ( error ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\n\t\ttry {\n\t\t\tawait installFonts( fontFamilies );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t\terrors: error?.installationErrors,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ notice && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t__unstableHTML\n\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t{ notice.errors && (\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{ notice.errors.map( ( error, index ) => (\n\t\t\t\t\t\t\t\t\t<li key={ index }>{ error }</li>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload font' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _i18n = require("@wordpress/i18n");
|
|
9
|
+
var _data = require("@wordpress/data");
|
|
10
|
+
var _editor = require("@wordpress/editor");
|
|
11
|
+
var _components = require("@wordpress/components");
|
|
12
|
+
var _variationsTypography = _interopRequireDefault(require("./variations/variations-typography"));
|
|
13
|
+
var _header = _interopRequireDefault(require("./header"));
|
|
14
|
+
var _fontFamilies = _interopRequireDefault(require("./font-families"));
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
/**
|
|
17
|
+
* WordPress dependencies
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Internal dependencies
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
function ScreenTypeset() {
|
|
25
|
+
const fontLibraryEnabled = (0, _data.useSelect)(select => select(_editor.store).getEditorSettings().fontLibraryEnabled, []);
|
|
26
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
27
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_header.default, {
|
|
28
|
+
title: (0, _i18n.__)('Typesets'),
|
|
29
|
+
description: (0, _i18n.__)('Fonts and typographic styling applied across the site.')
|
|
30
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
31
|
+
className: "edit-site-global-styles-screen",
|
|
32
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
33
|
+
spacing: 7,
|
|
34
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_variationsTypography.default, {}), fontLibraryEnabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_fontFamilies.default, {})]
|
|
35
|
+
})
|
|
36
|
+
})]
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
var _default = exports.default = ScreenTypeset;
|
|
40
|
+
//# sourceMappingURL=screen-typeset.js.map
|