@wordpress/edit-site 6.6.1 → 6.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-template/add-custom-template-modal-content.js +6 -7
  3. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  4. package/build/components/add-new-template/index.js +7 -10
  5. package/build/components/add-new-template/index.js.map +1 -1
  6. package/build/components/block-editor/use-site-editor-settings.js +0 -24
  7. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  8. package/build/components/editor/index.js +6 -3
  9. package/build/components/editor/index.js.map +1 -1
  10. package/build/components/editor-canvas-container/index.js +4 -1
  11. package/build/components/editor-canvas-container/index.js.map +1 -1
  12. package/build/components/error-boundary/warning.js +4 -1
  13. package/build/components/error-boundary/warning.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/font-card.js +5 -2
  15. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/font-collection.js +27 -19
  17. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/installed-fonts.js +21 -8
  19. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/upload-fonts.js +4 -1
  21. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  22. package/build/components/global-styles/font-sizes/font-size.js +10 -11
  23. package/build/components/global-styles/font-sizes/font-size.js.map +1 -1
  24. package/build/components/global-styles/font-sizes/font-sizes.js +4 -6
  25. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  26. package/build/components/global-styles/header.js +1 -8
  27. package/build/components/global-styles/header.js.map +1 -1
  28. package/build/components/global-styles/navigation-button.js +1 -1
  29. package/build/components/global-styles/navigation-button.js.map +1 -1
  30. package/build/components/global-styles/palette.js +4 -1
  31. package/build/components/global-styles/palette.js.map +1 -1
  32. package/build/components/global-styles/preset-colors.js +1 -1
  33. package/build/components/global-styles/preset-colors.js.map +1 -1
  34. package/build/components/global-styles/screen-revisions/revisions-buttons.js +4 -1
  35. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  36. package/build/components/global-styles/shadows-edit-panel.js +20 -10
  37. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  38. package/build/components/global-styles/typeset-button.js +5 -4
  39. package/build/components/global-styles/typeset-button.js.map +1 -1
  40. package/build/components/layout/index.js +1 -2
  41. package/build/components/layout/index.js.map +1 -1
  42. package/build/components/page-patterns/fields.js +5 -2
  43. package/build/components/page-patterns/fields.js.map +1 -1
  44. package/build/components/pagination/index.js +4 -4
  45. package/build/components/pagination/index.js.map +1 -1
  46. package/build/components/save-panel/index.js +4 -1
  47. package/build/components/save-panel/index.js.map +1 -1
  48. package/build/components/sidebar-button/index.js +4 -1
  49. package/build/components/sidebar-button/index.js.map +1 -1
  50. package/build/components/sidebar-dataviews/add-new-view.js +8 -2
  51. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  52. package/build/components/site-hub/index.js +30 -14
  53. package/build/components/site-hub/index.js.map +1 -1
  54. package/build/components/style-book/index.js +1 -5
  55. package/build/components/style-book/index.js.map +1 -1
  56. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -4
  57. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  58. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +12 -12
  59. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  60. package/build/components/welcome-guide/template.js +20 -9
  61. package/build/components/welcome-guide/template.js.map +1 -1
  62. package/build/hooks/commands/use-common-commands.js +2 -4
  63. package/build/hooks/commands/use-common-commands.js.map +1 -1
  64. package/build-module/components/add-new-template/add-custom-template-modal-content.js +6 -7
  65. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  66. package/build-module/components/add-new-template/index.js +7 -10
  67. package/build-module/components/add-new-template/index.js.map +1 -1
  68. package/build-module/components/block-editor/use-site-editor-settings.js +0 -23
  69. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  70. package/build-module/components/editor/index.js +6 -3
  71. package/build-module/components/editor/index.js.map +1 -1
  72. package/build-module/components/editor-canvas-container/index.js +4 -1
  73. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  74. package/build-module/components/error-boundary/warning.js +4 -1
  75. package/build-module/components/error-boundary/warning.js.map +1 -1
  76. package/build-module/components/global-styles/font-library-modal/font-card.js +7 -4
  77. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  78. package/build-module/components/global-styles/font-library-modal/font-collection.js +29 -21
  79. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  80. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +24 -11
  81. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  82. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +4 -1
  83. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  84. package/build-module/components/global-styles/font-sizes/font-size.js +15 -16
  85. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -1
  86. package/build-module/components/global-styles/font-sizes/font-sizes.js +4 -6
  87. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  88. package/build-module/components/global-styles/header.js +2 -9
  89. package/build-module/components/global-styles/header.js.map +1 -1
  90. package/build-module/components/global-styles/navigation-button.js +2 -2
  91. package/build-module/components/global-styles/navigation-button.js.map +1 -1
  92. package/build-module/components/global-styles/palette.js +4 -1
  93. package/build-module/components/global-styles/palette.js.map +1 -1
  94. package/build-module/components/global-styles/preset-colors.js +1 -1
  95. package/build-module/components/global-styles/preset-colors.js.map +1 -1
  96. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +4 -1
  97. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  98. package/build-module/components/global-styles/shadows-edit-panel.js +20 -10
  99. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  100. package/build-module/components/global-styles/typeset-button.js +6 -5
  101. package/build-module/components/global-styles/typeset-button.js.map +1 -1
  102. package/build-module/components/layout/index.js +1 -2
  103. package/build-module/components/layout/index.js.map +1 -1
  104. package/build-module/components/page-patterns/fields.js +5 -2
  105. package/build-module/components/page-patterns/fields.js.map +1 -1
  106. package/build-module/components/pagination/index.js +5 -5
  107. package/build-module/components/pagination/index.js.map +1 -1
  108. package/build-module/components/save-panel/index.js +4 -1
  109. package/build-module/components/save-panel/index.js.map +1 -1
  110. package/build-module/components/sidebar-button/index.js +4 -1
  111. package/build-module/components/sidebar-button/index.js.map +1 -1
  112. package/build-module/components/sidebar-dataviews/add-new-view.js +8 -2
  113. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  114. package/build-module/components/site-hub/index.js +30 -14
  115. package/build-module/components/site-hub/index.js.map +1 -1
  116. package/build-module/components/style-book/index.js +1 -5
  117. package/build-module/components/style-book/index.js.map +1 -1
  118. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -4
  119. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  120. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +12 -12
  121. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  122. package/build-module/components/welcome-guide/template.js +19 -9
  123. package/build-module/components/welcome-guide/template.js.map +1 -1
  124. package/build-module/hooks/commands/use-common-commands.js +2 -4
  125. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  126. package/build-style/posts-rtl.css +90 -83
  127. package/build-style/posts.css +90 -83
  128. package/build-style/style-rtl.css +94 -99
  129. package/build-style/style.css +94 -99
  130. package/package.json +41 -41
  131. package/src/components/add-new-template/add-custom-template-modal-content.js +6 -7
  132. package/src/components/add-new-template/index.js +6 -8
  133. package/src/components/add-new-template/style.scss +1 -2
  134. package/src/components/block-editor/use-site-editor-settings.js +0 -18
  135. package/src/components/editor/index.js +4 -2
  136. package/src/components/editor-canvas-container/index.js +2 -0
  137. package/src/components/editor-canvas-container/style.scss +1 -1
  138. package/src/components/error-boundary/warning.js +6 -1
  139. package/src/components/global-styles/font-library-modal/font-card.js +5 -3
  140. package/src/components/global-styles/font-library-modal/font-collection.js +45 -27
  141. package/src/components/global-styles/font-library-modal/installed-fonts.js +36 -14
  142. package/src/components/global-styles/font-library-modal/upload-fonts.js +2 -0
  143. package/src/components/global-styles/font-sizes/font-size.js +18 -18
  144. package/src/components/global-styles/font-sizes/font-sizes.js +9 -11
  145. package/src/components/global-styles/header.js +2 -7
  146. package/src/components/global-styles/navigation-button.js +2 -4
  147. package/src/components/global-styles/palette.js +2 -0
  148. package/src/components/global-styles/preset-colors.js +1 -1
  149. package/src/components/global-styles/screen-revisions/revisions-buttons.js +2 -0
  150. package/src/components/global-styles/screen-revisions/style.scss +1 -1
  151. package/src/components/global-styles/shadows-edit-panel.js +23 -13
  152. package/src/components/global-styles/style.scss +5 -5
  153. package/src/components/global-styles/typeset-button.js +10 -3
  154. package/src/components/global-styles/variations/style.scss +1 -2
  155. package/src/components/layout/index.js +0 -2
  156. package/src/components/layout/style.scss +2 -24
  157. package/src/components/page/style.scss +5 -1
  158. package/src/components/page-patterns/fields.js +3 -1
  159. package/src/components/page-patterns/style.scss +2 -11
  160. package/src/components/page-templates/style.scss +1 -2
  161. package/src/components/pagination/index.js +5 -5
  162. package/src/components/post-list/style.scss +1 -1
  163. package/src/components/save-panel/index.js +2 -0
  164. package/src/components/sidebar-button/index.js +2 -0
  165. package/src/components/sidebar-dataviews/add-new-view.js +4 -0
  166. package/src/components/sidebar-dataviews/style.scss +1 -1
  167. package/src/components/sidebar-navigation-item/style.scss +0 -1
  168. package/src/components/sidebar-navigation-screen/style.scss +0 -1
  169. package/src/components/site-hub/index.js +18 -12
  170. package/src/components/style-book/index.js +1 -4
  171. package/src/components/style-book/style.scss +2 -2
  172. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -4
  173. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +15 -12
  174. package/src/components/welcome-guide/template.js +12 -18
  175. package/src/hooks/commands/use-common-commands.js +3 -5
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","useEffect","useState","useMemo","createInterpolateElement","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalHeading","Heading","Notice","SelectControl","FlexItem","Flex","Button","DropdownMenu","SearchControl","ProgressBar","CheckboxControl","debounce","sprintf","__","_x","moreVertical","chevronLeft","chevronRight","FontLibraryContext","FontCard","filterFonts","toggleFont","getFontsOutline","isFontFontFaceInOutline","GoogleFontsConfirmDialog","downloadFontFaceAssets","sortFontFaces","CollectionFontVariant","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_CATEGORY","slug","name","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","notice","setNotice","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","selectedCollection","find","collection","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","_selectedCollection$f","font_families","collectionCategories","categories","fonts","isLoading","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","selectFontCount","fontFace","isIndeterminate","isSelectAllChecked","toggleSelectAll","newFonts","handleInstall","fontFamily","Promise","all","map","src","file","error","getSortedFontFaces","fontStyle","fontWeight","ActionsComponent","icon","label","popoverProps","position","controls","title","onClick","className","children","initialPath","path","justify","level","size","description","margin","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","__next40pxDefaultSize","role","font_family_settings","navigatorPath","status","onRemove","checked","indeterminate","spacing","i","selected","variant","isBusy","disabled","accessibleWhenDisabled","showTooltip","tooltipPosition","expanded","CurrentPageControl","options","Array","newPage","parseInt"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalHeading as Heading,\n\tNotice,\n\tSelectControl,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tDropdownMenu,\n\tSearchControl,\n\tProgressBar,\n\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":[]}
1
+ {"version":3,"names":["useContext","useEffect","useState","useMemo","createInterpolateElement","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorBackButton","NavigatorBackButton","__experimentalHeading","Heading","Notice","SelectControl","FlexItem","Flex","Button","DropdownMenu","SearchControl","ProgressBar","CheckboxControl","debounce","sprintf","__","_x","isRTL","moreVertical","chevronLeft","chevronRight","FontLibraryContext","FontCard","filterFonts","toggleFont","getFontsOutline","isFontFontFaceInOutline","GoogleFontsConfirmDialog","downloadFontFaceAssets","sortFontFaces","CollectionFontVariant","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_CATEGORY","slug","name","LOCAL_STORAGE_ITEM","MIN_WINDOW_HEIGHT","FontCollection","_selectedCollection$c","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","selectedFont","setSelectedFont","notice","setNotice","fontsToInstall","setFontsToInstall","page","setPage","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","isInstalling","selectedCollection","find","collection","handleStorage","addEventListener","removeEventListener","revokeAccess","setItem","dispatchEvent","Event","fetchFontCollection","resetFilters","e","type","message","collectionFonts","_selectedCollection$f","font_families","collectionCategories","categories","fonts","isLoading","windowHeight","Math","max","innerHeight","pageSize","floor","totalPages","ceil","length","itemsStart","itemsLimit","items","slice","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","handleToggleVariant","font","face","newFontsToInstall","fontToInstallOutline","resetFontsToInstall","selectFontCount","fontFace","isIndeterminate","isSelectAllChecked","toggleSelectAll","newFonts","handleInstall","fontFamily","Promise","all","map","src","file","error","getSortedFontFaces","fontStyle","fontWeight","ActionsComponent","icon","label","popoverProps","position","controls","title","onClick","className","children","initialPath","path","justify","level","size","description","margin","placeholder","onChange","__nextHasNoMarginBottom","hideLabelFromVision","__next40pxDefaultSize","role","font_family_settings","navigatorPath","status","onRemove","checked","indeterminate","spacing","i","selected","variant","isBusy","disabled","accessibleWhenDisabled","showTooltip","tooltipPosition","expanded","CurrentPageControl","options","Array","newPage","parseInt"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorBackButton as NavigatorBackButton,\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, isRTL } 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<NavigatorBackButton\n\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronRight : chevronLeft\n\t\t\t\t\t\t\t\t\t}\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{ /*\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{ getSortedFontFaces( selectedFont ).map(\n\t\t\t\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\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>\n\t\t\t\t\t\t\t\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleToggleVariant\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\tselected={ isFontFontFaceInOutline(\n\t\t\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\t\t\tselectedFont.fontFace\n\t\t\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\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\t\t\tfontToInstallOutline\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</li>\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</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</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\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\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={ isRTL() ? chevronRight : 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={ isRTL() ? chevronLeft : 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,12 +1,12 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { Button, __experimentalConfirmDialog as ConfirmDialog, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorToParentButton as NavigatorToParentButton, __experimentalUseNavigator as useNavigator, __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Flex, Notice, ProgressBar, CheckboxControl } from '@wordpress/components';
4
+ import { Button, __experimentalConfirmDialog as ConfirmDialog, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorBackButton as NavigatorBackButton, __experimentalUseNavigator as useNavigator, __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Flex, Notice, ProgressBar, CheckboxControl } from '@wordpress/components';
5
5
  import { useEntityRecord, store as coreStore } from '@wordpress/core-data';
6
6
  import { useSelect } from '@wordpress/data';
7
7
  import { useContext, useEffect, useState } from '@wordpress/element';
8
- import { __, _x, sprintf } from '@wordpress/i18n';
9
- import { chevronLeft } from '@wordpress/icons';
8
+ import { __, _x, sprintf, isRTL } from '@wordpress/i18n';
9
+ import { chevronLeft, chevronRight } from '@wordpress/icons';
10
10
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
11
11
 
12
12
  /**
@@ -215,8 +215,8 @@ function InstalledFonts() {
215
215
  handleSetLibraryFontSelected: handleSetLibraryFontSelected
216
216
  }), /*#__PURE__*/_jsxs(Flex, {
217
217
  justify: "flex-start",
218
- children: [/*#__PURE__*/_jsx(NavigatorToParentButton, {
219
- icon: chevronLeft,
218
+ children: [/*#__PURE__*/_jsx(NavigatorBackButton, {
219
+ icon: isRTL() ? chevronRight : chevronLeft,
220
220
  size: "small",
221
221
  onClick: () => {
222
222
  handleSetLibraryFontSelected(null);
@@ -256,21 +256,34 @@ function InstalledFonts() {
256
256
  __nextHasNoMarginBottom: true
257
257
  }), /*#__PURE__*/_jsx(Spacer, {
258
258
  margin: 8
259
- }), getFontFacesToDisplay(libraryFontSelected).map((face, i) => /*#__PURE__*/_jsx(LibraryFontVariant, {
260
- font: libraryFontSelected,
261
- face: face
262
- }, `face${i}`))]
259
+ }), /*#__PURE__*/_jsx("ul", {
260
+ role: "list",
261
+ className: "font-library-modal__fonts-list",
262
+ children: getFontFacesToDisplay(libraryFontSelected).map((face, i) => /*#__PURE__*/_jsx("li", {
263
+ className: "font-library-modal__fonts-list-item",
264
+ children: /*#__PURE__*/_jsx(LibraryFontVariant, {
265
+ font: libraryFontSelected,
266
+ face: face
267
+ }, `face${i}`)
268
+ }, `face${i}`))
269
+ })]
263
270
  })]
264
271
  })]
265
272
  }), /*#__PURE__*/_jsxs(HStack, {
266
273
  justify: "flex-end",
267
274
  className: "font-library-modal__footer",
268
- children: [isInstalling && /*#__PURE__*/_jsx(ProgressBar, {}), shouldDisplayDeleteButton && /*#__PURE__*/_jsx(Button, {
275
+ children: [isInstalling && /*#__PURE__*/_jsx(ProgressBar, {}), shouldDisplayDeleteButton && /*#__PURE__*/_jsx(Button
276
+ // TODO: Switch to `true` (40px size) if possible
277
+ , {
278
+ __next40pxDefaultSize: false,
269
279
  isDestructive: true,
270
280
  variant: "tertiary",
271
281
  onClick: handleUninstallClick,
272
282
  children: __('Delete')
273
- }), /*#__PURE__*/_jsx(Button, {
283
+ }), /*#__PURE__*/_jsx(Button
284
+ // TODO: Switch to `true` (40px size) if possible
285
+ , {
286
+ __next40pxDefaultSize: false,
274
287
  variant: "primary",
275
288
  onClick: handleUpdate,
276
289
  disabled: !fontFamiliesHasChanges,
@@ -1 +1 @@
1
- {"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalUseNavigator","useNavigator","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Flex","Notice","ProgressBar","CheckboxControl","useEntityRecord","store","coreStore","useSelect","useContext","useEffect","useState","__","_x","sprintf","chevronLeft","privateApis","blockEditorPrivateApis","FontLibraryContext","FontCard","LibraryFontVariant","sortFontFaces","setUIValuesNeeded","loadFontFaceInBrowser","unloadFontFaceInBrowser","getDisplaySrcFromFontFace","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","InstalledFonts","_libraryFontSelected$","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamilies","setFontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","notice","setNotice","baseFontFamilies","undefined","globalStylesId","select","__experimentalGetCurrentGlobalStylesId","globalStyles","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFontFamilyId","id","canUserDelete","canUser","kind","shouldDisplayDeleteButton","handleUninstallClick","handleUpdate","type","message","error","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","getFontCardVariantsText","variantsInstalled","variantsActive","activeFontsCount","selectedFontsCount","isIndeterminate","isSelectAllChecked","toggleSelectAll","_fontFamilies$library","initialFonts","newFonts","forEach","face","src","hasFonts","className","children","initialPath","path","spacing","status","onRemove","as","role","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","justify","icon","size","label","level","margin","checked","onChange","indeterminate","__nextHasNoMarginBottom","i","isDestructive","variant","disabled","accessibleWhenDisabled","navigator","handleConfirmUninstall","goBack","handleCancelUninstall","cancelButtonText","confirmButtonText","onCancel","onConfirm"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tProgressBar,\n\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: sprintf(\n\t\t\t\t\t/* translators: %s: error message */\n\t\t\t\t\t__( 'There was an error updating the font family. %s' ),\n\t\t\t\t\terror.message\n\t\t\t\t),\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":[]}
1
+ {"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorBackButton","NavigatorBackButton","__experimentalUseNavigator","useNavigator","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Flex","Notice","ProgressBar","CheckboxControl","useEntityRecord","store","coreStore","useSelect","useContext","useEffect","useState","__","_x","sprintf","isRTL","chevronLeft","chevronRight","privateApis","blockEditorPrivateApis","FontLibraryContext","FontCard","LibraryFontVariant","sortFontFaces","setUIValuesNeeded","loadFontFaceInBrowser","unloadFontFaceInBrowser","getDisplaySrcFromFontFace","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","InstalledFonts","_libraryFontSelected$","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamilies","setFontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","notice","setNotice","baseFontFamilies","undefined","globalStylesId","select","__experimentalGetCurrentGlobalStylesId","globalStyles","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFontFamilyId","id","canUserDelete","canUser","kind","shouldDisplayDeleteButton","handleUninstallClick","handleUpdate","type","message","error","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","getFontCardVariantsText","variantsInstalled","variantsActive","activeFontsCount","selectedFontsCount","isIndeterminate","isSelectAllChecked","toggleSelectAll","_fontFamilies$library","initialFonts","newFonts","forEach","face","src","hasFonts","className","children","initialPath","path","spacing","status","onRemove","as","role","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","justify","icon","size","label","level","margin","checked","onChange","indeterminate","__nextHasNoMarginBottom","i","__next40pxDefaultSize","isDestructive","variant","disabled","accessibleWhenDisabled","navigator","handleConfirmUninstall","goBack","handleCancelUninstall","cancelButtonText","confirmButtonText","onCancel","onConfirm"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorBackButton as NavigatorBackButton,\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, isRTL } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } 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: sprintf(\n\t\t\t\t\t/* translators: %s: error message */\n\t\t\t\t\t__( 'There was an error updating the font family. %s' ),\n\t\t\t\t\terror.message\n\t\t\t\t),\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<NavigatorBackButton\n\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronRight : chevronLeft\n\t\t\t\t\t\t\t\t\t}\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{ /*\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{ getFontFacesToDisplay(\n\t\t\t\t\t\t\t\t\t\tlibraryFontSelected\n\t\t\t\t\t\t\t\t\t).map( ( face, i ) => (\n\t\t\t\t\t\t\t\t\t\t<li\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\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<LibraryFontVariant\n\t\t\t\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\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</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\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\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\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\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":[]}
@@ -191,7 +191,10 @@ function UploadFonts() {
191
191
  onChange: onFilesUpload,
192
192
  render: ({
193
193
  openFileDialog
194
- }) => /*#__PURE__*/_jsx(Button, {
194
+ }) => /*#__PURE__*/_jsx(Button
195
+ // TODO: Switch to `true` (40px size) if possible
196
+ , {
197
+ __next40pxDefaultSize: false,
195
198
  className: "font-library-modal__upload-area",
196
199
  onClick: openFileDialog,
197
200
  children: __('Upload font')
@@ -1 +1 @@
1
- {"version":3,"names":["__","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Button","DropZone","Notice","FormFileUpload","FlexItem","ProgressBar","useContext","useState","ALLOWED_FILE_EXTENSIONS","FontLibraryContext","Font","makeFamiliesFromFaces","loadFontFaceInBrowser","jsx","_jsx","jsxs","_jsxs","UploadFonts","installFonts","isUploading","setIsUploading","notice","setNotice","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","handleInstall","font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","errors","installationErrors","className","children","onFilesDrop","status","__unstableHTML","onRemove","index","accept","ext","join","multiple","onChange","render","openFileDialog","onClick","margin"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useContext, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\n\nfunction UploadFonts() {\n\tconst { installFonts } = 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":[]}
1
+ {"version":3,"names":["__","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Button","DropZone","Notice","FormFileUpload","FlexItem","ProgressBar","useContext","useState","ALLOWED_FILE_EXTENSIONS","FontLibraryContext","Font","makeFamiliesFromFaces","loadFontFaceInBrowser","jsx","_jsx","jsxs","_jsxs","UploadFonts","installFonts","isUploading","setIsUploading","notice","setNotice","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","handleInstall","font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","errors","installationErrors","className","children","onFilesDrop","status","__unstableHTML","onRemove","index","accept","ext","join","multiple","onChange","render","openFileDialog","__next40pxDefaultSize","onClick","margin"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useContext, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\n\nfunction UploadFonts() {\n\tconst { installFonts } = 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\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\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":[]}
@@ -11,14 +11,6 @@ import { useState } from '@wordpress/element';
11
11
  * Internal dependencies
12
12
  */
13
13
  import { unlock } from '../../../lock-unlock';
14
- const {
15
- DropdownMenuV2: DropdownMenu,
16
- DropdownMenuItemV2: DropdownMenuItem,
17
- DropdownMenuItemLabelV2: DropdownMenuItemLabel
18
- } = unlock(componentsPrivateApis);
19
- const {
20
- useGlobalSetting
21
- } = unlock(blockEditorPrivateApis);
22
14
  import ScreenHeader from '../header';
23
15
  import FontSizePreview from './font-size-preview';
24
16
  import ConfirmDeleteFontSizeDialog from './confirm-delete-font-size-dialog';
@@ -27,8 +19,14 @@ import SizeControl from '../size-control';
27
19
  import { jsx as _jsx } from "react/jsx-runtime";
28
20
  import { jsxs as _jsxs } from "react/jsx-runtime";
29
21
  import { Fragment as _Fragment } from "react/jsx-runtime";
22
+ const {
23
+ DropdownMenuV2
24
+ } = unlock(componentsPrivateApis);
25
+ const {
26
+ useGlobalSetting
27
+ } = unlock(blockEditorPrivateApis);
30
28
  function FontSize() {
31
- var _fontSizes$origin, _fontSize$fluid;
29
+ var _fontSizes$origin;
32
30
  const [isDeleteConfirmOpen, setIsDeleteConfirmOpen] = useState(false);
33
31
  const [isRenameDialogOpen, setIsRenameDialogOpen] = useState(false);
34
32
  const {
@@ -40,6 +38,7 @@ function FontSize() {
40
38
  goTo
41
39
  } = useNavigator();
42
40
  const [fontSizes, setFontSizes] = useGlobalSetting('typography.fontSizes');
41
+ const [globalFluid] = useGlobalSetting('typography.fluid');
43
42
 
44
43
  // Get the font sizes from the origin, default to empty array.
45
44
  const sizes = (_fontSizes$origin = fontSizes[origin]) !== null && _fontSizes$origin !== void 0 ? _fontSizes$origin : [];
@@ -47,8 +46,8 @@ function FontSize() {
47
46
  // Get the font size by slug.
48
47
  const fontSize = sizes.find(size => size.slug === slug);
49
48
 
50
- // Whether fluid is true or an object, set it to true, otherwise false.
51
- const isFluid = (_fontSize$fluid = !!fontSize.fluid) !== null && _fontSize$fluid !== void 0 ? _fontSize$fluid : false;
49
+ // Whether the font size is fluid. If not defined, use the global fluid value of the theme.
50
+ const isFluid = fontSize.fluid !== undefined ? !!fontSize.fluid : !!globalFluid;
52
51
 
53
52
  // Whether custom fluid values are used.
54
53
  const isCustomFluid = typeof fontSize.fluid === 'object';
@@ -140,20 +139,20 @@ function FontSize() {
140
139
  marginTop: 3,
141
140
  marginBottom: 0,
142
141
  paddingX: 4,
143
- children: /*#__PURE__*/_jsxs(DropdownMenu, {
142
+ children: /*#__PURE__*/_jsxs(DropdownMenuV2, {
144
143
  trigger: /*#__PURE__*/_jsx(Button, {
145
144
  size: "small",
146
145
  icon: moreVertical,
147
146
  label: __('Font size options')
148
147
  }),
149
- children: [/*#__PURE__*/_jsx(DropdownMenuItem, {
148
+ children: [/*#__PURE__*/_jsx(DropdownMenuV2.Item, {
150
149
  onClick: toggleRenameDialog,
151
- children: /*#__PURE__*/_jsx(DropdownMenuItemLabel, {
150
+ children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {
152
151
  children: __('Rename')
153
152
  })
154
- }), /*#__PURE__*/_jsx(DropdownMenuItem, {
153
+ }), /*#__PURE__*/_jsx(DropdownMenuV2.Item, {
155
154
  onClick: toggleDeleteConfirm,
156
- children: /*#__PURE__*/_jsx(DropdownMenuItemLabel, {
155
+ children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {
157
156
  children: __('Delete')
158
157
  })
159
158
  })]