@wordpress/edit-site 5.20.0 → 5.21.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 (231) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/trash-post.js +48 -0
  3. package/build/components/actions/trash-post.js.map +1 -0
  4. package/build/components/add-new-template/add-custom-template-modal-content.js +17 -13
  5. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  6. package/build/components/block-editor/resize-handle.js +2 -1
  7. package/build/components/block-editor/resize-handle.js.map +1 -1
  8. package/build/components/create-template-part-modal/index.js +10 -6
  9. package/build/components/create-template-part-modal/index.js.map +1 -1
  10. package/build/components/dataviews/dataviews.js +41 -32
  11. package/build/components/dataviews/dataviews.js.map +1 -1
  12. package/build/components/dataviews/field-actions.js +30 -0
  13. package/build/components/dataviews/field-actions.js.map +1 -0
  14. package/build/components/dataviews/filters.js +61 -0
  15. package/build/components/dataviews/filters.js.map +1 -0
  16. package/build/components/dataviews/in-filter.js +51 -0
  17. package/build/components/dataviews/in-filter.js.map +1 -0
  18. package/build/components/dataviews/index.js +0 -7
  19. package/build/components/dataviews/index.js.map +1 -1
  20. package/build/components/dataviews/pagination.js +75 -27
  21. package/build/components/dataviews/pagination.js.map +1 -1
  22. package/build/components/dataviews/text-filter.js +18 -12
  23. package/build/components/dataviews/text-filter.js.map +1 -1
  24. package/build/components/dataviews/view-actions.js +94 -56
  25. package/build/components/dataviews/view-actions.js.map +1 -1
  26. package/build/components/dataviews/view-grid.js +59 -0
  27. package/build/components/dataviews/view-grid.js.map +1 -0
  28. package/build/components/dataviews/view-list.js +283 -0
  29. package/build/components/dataviews/view-list.js.map +1 -0
  30. package/build/components/editor/index.js +2 -1
  31. package/build/components/editor/index.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/context.js +16 -10
  33. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/font-collection.js +20 -6
  35. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  36. package/build/components/global-styles/screen-block.js +1 -2
  37. package/build/components/global-styles/screen-block.js.map +1 -1
  38. package/build/components/global-styles/screen-root.js +1 -2
  39. package/build/components/global-styles/screen-root.js.map +1 -1
  40. package/build/components/global-styles/ui.js +3 -4
  41. package/build/components/global-styles/ui.js.map +1 -1
  42. package/build/components/layout/index.js +10 -2
  43. package/build/components/layout/index.js.map +1 -1
  44. package/build/components/media/index.js +34 -0
  45. package/build/components/media/index.js.map +1 -0
  46. package/build/components/page-actions/index.js +0 -2
  47. package/build/components/page-actions/index.js.map +1 -1
  48. package/build/components/page-pages/index.js +153 -107
  49. package/build/components/page-pages/index.js.map +1 -1
  50. package/build/components/page-patterns/delete-category-menu-item.js +89 -0
  51. package/build/components/page-patterns/delete-category-menu-item.js.map +1 -0
  52. package/build/components/page-patterns/duplicate-menu-item.js +52 -131
  53. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  54. package/build/components/page-patterns/grid-item.js +1 -0
  55. package/build/components/page-patterns/grid-item.js.map +1 -1
  56. package/build/components/page-patterns/header.js +25 -3
  57. package/build/components/page-patterns/header.js.map +1 -1
  58. package/build/components/page-patterns/rename-category-menu-item.js +49 -0
  59. package/build/components/page-patterns/rename-category-menu-item.js.map +1 -0
  60. package/build/components/page-patterns/rename-menu-item.js +1 -1
  61. package/build/components/page-patterns/rename-menu-item.js.map +1 -1
  62. package/build/components/page-patterns/use-patterns.js +1 -0
  63. package/build/components/page-patterns/use-patterns.js.map +1 -1
  64. package/build/components/pattern-modal/duplicate.js +65 -0
  65. package/build/components/pattern-modal/duplicate.js.map +1 -0
  66. package/build/components/pattern-modal/index.js +24 -0
  67. package/build/components/pattern-modal/index.js.map +1 -0
  68. package/build/components/pattern-modal/rename.js +42 -0
  69. package/build/components/pattern-modal/rename.js.map +1 -0
  70. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
  71. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  72. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
  73. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  74. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
  75. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  76. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +29 -0
  77. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
  78. package/build/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
  79. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  80. package/build/hooks/commands/use-common-commands.js +1 -2
  81. package/build/hooks/commands/use-common-commands.js.map +1 -1
  82. package/build/hooks/commands/use-edit-mode-commands.js +49 -0
  83. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  84. package/build/lock-unlock.js +1 -1
  85. package/build/lock-unlock.js.map +1 -1
  86. package/build/store/selectors.js +4 -5
  87. package/build/store/selectors.js.map +1 -1
  88. package/build-module/components/actions/trash-post.js +41 -0
  89. package/build-module/components/actions/trash-post.js.map +1 -0
  90. package/build-module/components/add-new-template/add-custom-template-modal-content.js +16 -12
  91. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  92. package/build-module/components/block-editor/resize-handle.js +2 -1
  93. package/build-module/components/block-editor/resize-handle.js.map +1 -1
  94. package/build-module/components/create-template-part-modal/index.js +10 -6
  95. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  96. package/build-module/components/dataviews/dataviews.js +40 -31
  97. package/build-module/components/dataviews/dataviews.js.map +1 -1
  98. package/build-module/components/dataviews/field-actions.js +22 -0
  99. package/build-module/components/dataviews/field-actions.js.map +1 -0
  100. package/build-module/components/dataviews/filters.js +53 -0
  101. package/build-module/components/dataviews/filters.js.map +1 -0
  102. package/build-module/components/dataviews/in-filter.js +43 -0
  103. package/build-module/components/dataviews/in-filter.js.map +1 -0
  104. package/build-module/components/dataviews/index.js +0 -1
  105. package/build-module/components/dataviews/index.js.map +1 -1
  106. package/build-module/components/dataviews/pagination.js +74 -28
  107. package/build-module/components/dataviews/pagination.js.map +1 -1
  108. package/build-module/components/dataviews/text-filter.js +19 -13
  109. package/build-module/components/dataviews/text-filter.js.map +1 -1
  110. package/build-module/components/dataviews/view-actions.js +95 -54
  111. package/build-module/components/dataviews/view-actions.js.map +1 -1
  112. package/build-module/components/dataviews/view-grid.js +51 -0
  113. package/build-module/components/dataviews/view-grid.js.map +1 -0
  114. package/build-module/components/dataviews/view-list.js +274 -0
  115. package/build-module/components/dataviews/view-list.js.map +1 -0
  116. package/build-module/components/editor/index.js +2 -1
  117. package/build-module/components/editor/index.js.map +1 -1
  118. package/build-module/components/global-styles/font-library-modal/context.js +16 -10
  119. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  120. package/build-module/components/global-styles/font-library-modal/font-collection.js +20 -6
  121. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  122. package/build-module/components/global-styles/screen-block.js +1 -2
  123. package/build-module/components/global-styles/screen-block.js.map +1 -1
  124. package/build-module/components/global-styles/screen-root.js +1 -2
  125. package/build-module/components/global-styles/screen-root.js.map +1 -1
  126. package/build-module/components/global-styles/ui.js +3 -4
  127. package/build-module/components/global-styles/ui.js.map +1 -1
  128. package/build-module/components/layout/index.js +11 -3
  129. package/build-module/components/layout/index.js.map +1 -1
  130. package/build-module/components/media/index.js +26 -0
  131. package/build-module/components/media/index.js.map +1 -0
  132. package/build-module/components/page-actions/index.js +0 -2
  133. package/build-module/components/page-actions/index.js.map +1 -1
  134. package/build-module/components/page-pages/index.js +156 -110
  135. package/build-module/components/page-pages/index.js.map +1 -1
  136. package/build-module/components/page-patterns/delete-category-menu-item.js +82 -0
  137. package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -0
  138. package/build-module/components/page-patterns/duplicate-menu-item.js +54 -133
  139. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  140. package/build-module/components/page-patterns/grid-item.js +1 -0
  141. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  142. package/build-module/components/page-patterns/header.js +26 -4
  143. package/build-module/components/page-patterns/header.js.map +1 -1
  144. package/build-module/components/page-patterns/rename-category-menu-item.js +42 -0
  145. package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -0
  146. package/build-module/components/page-patterns/rename-menu-item.js +1 -1
  147. package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
  148. package/build-module/components/page-patterns/use-patterns.js +1 -0
  149. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  150. package/build-module/components/pattern-modal/duplicate.js +57 -0
  151. package/build-module/components/pattern-modal/duplicate.js.map +1 -0
  152. package/build-module/components/pattern-modal/index.js +14 -0
  153. package/build-module/components/pattern-modal/index.js.map +1 -0
  154. package/build-module/components/pattern-modal/rename.js +34 -0
  155. package/build-module/components/pattern-modal/rename.js.map +1 -0
  156. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
  157. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
  158. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
  159. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
  160. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
  161. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  162. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +22 -0
  163. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
  164. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
  165. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  166. package/build-module/hooks/commands/use-common-commands.js +1 -2
  167. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  168. package/build-module/hooks/commands/use-edit-mode-commands.js +50 -1
  169. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  170. package/build-module/lock-unlock.js +1 -1
  171. package/build-module/lock-unlock.js.map +1 -1
  172. package/build-module/store/selectors.js +4 -5
  173. package/build-module/store/selectors.js.map +1 -1
  174. package/build-style/style-rtl.css +42 -9
  175. package/build-style/style.css +42 -9
  176. package/package.json +40 -40
  177. package/src/components/actions/trash-post.js +55 -0
  178. package/src/components/add-new-template/add-custom-template-modal-content.js +22 -17
  179. package/src/components/block-editor/resize-handle.js +1 -0
  180. package/src/components/create-template-part-modal/index.js +9 -5
  181. package/src/components/dataviews/README.md +107 -0
  182. package/src/components/dataviews/dataviews.js +44 -33
  183. package/src/components/dataviews/field-actions.js +28 -0
  184. package/src/components/dataviews/filters.js +57 -0
  185. package/src/components/dataviews/in-filter.js +47 -0
  186. package/src/components/dataviews/index.js +0 -1
  187. package/src/components/dataviews/pagination.js +71 -29
  188. package/src/components/dataviews/style.scss +11 -1
  189. package/src/components/dataviews/text-filter.js +19 -15
  190. package/src/components/dataviews/view-actions.js +108 -63
  191. package/src/components/dataviews/view-grid.js +60 -0
  192. package/src/components/dataviews/view-list.js +348 -0
  193. package/src/components/editor/index.js +2 -0
  194. package/src/components/global-styles/font-library-modal/context.js +17 -11
  195. package/src/components/global-styles/font-library-modal/font-collection.js +18 -10
  196. package/src/components/global-styles/screen-block.js +1 -2
  197. package/src/components/global-styles/screen-root.js +1 -2
  198. package/src/components/global-styles/style.scss +16 -4
  199. package/src/components/global-styles/ui.js +1 -2
  200. package/src/components/layout/index.js +12 -4
  201. package/src/components/media/index.js +25 -0
  202. package/src/components/page-actions/index.js +1 -7
  203. package/src/components/page-pages/index.js +156 -108
  204. package/src/components/page-pages/style.scss +3 -0
  205. package/src/components/page-patterns/delete-category-menu-item.js +104 -0
  206. package/src/components/page-patterns/duplicate-menu-item.js +68 -181
  207. package/src/components/page-patterns/grid-item.js +1 -0
  208. package/src/components/page-patterns/header.js +42 -6
  209. package/src/components/page-patterns/rename-category-menu-item.js +45 -0
  210. package/src/components/page-patterns/rename-menu-item.js +2 -2
  211. package/src/components/page-patterns/style.scss +8 -0
  212. package/src/components/page-patterns/use-patterns.js +5 -0
  213. package/src/components/pattern-modal/duplicate.js +53 -0
  214. package/src/components/pattern-modal/index.js +19 -0
  215. package/src/components/pattern-modal/rename.js +29 -0
  216. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +4 -0
  217. package/src/components/sidebar-navigation-screen/style.scss +17 -5
  218. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -7
  219. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -8
  220. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +32 -0
  221. package/src/components/sidebar-navigation-screen-template/home-template-details.js +21 -7
  222. package/src/hooks/commands/use-common-commands.js +1 -2
  223. package/src/hooks/commands/use-edit-mode-commands.js +41 -0
  224. package/src/lock-unlock.js +1 -1
  225. package/src/store/selectors.js +9 -10
  226. package/src/style.scss +1 -0
  227. package/build/components/dataviews/list-view.js +0 -89
  228. package/build/components/dataviews/list-view.js.map +0 -1
  229. package/build-module/components/dataviews/list-view.js +0 -80
  230. package/build-module/components/dataviews/list-view.js.map +0 -1
  231. package/src/components/dataviews/list-view.js +0 -106
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_blockEditor","_data","_coreData","_resolvers","_lockUnlock","_utils","_toggleFont","_getIntersectingFontFaces","_interopRequireDefault","useGlobalSetting","unlock","blockEditorPrivateApis","FontLibraryContext","createContext","exports","FontLibraryProvider","children","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","useDispatch","coreStore","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","fontFamilies","isInstalling","setIsInstalling","useState","refreshKey","setRefreshKey","refreshLibrary","Date","now","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","useEntityRecords","libraryFonts","map","post","JSON","parse","content","raw","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","baseThemeFonts","theme","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFonts","customFonts","custom","baseCustomFonts","useEffect","handleSetLibraryFontSelected","font","fonts","fontSelected","find","slug","toggleModal","tabName","loadedFontUrls","Set","site","currentTheme","getSite","getCurrentTheme","themeUrl","url","stylesheet","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","Array","isArray","fontFace","face","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFonts","formData","makeFormDataFromFontFamilies","response","fetchInstallFonts","fontsInstalled","successes","fontToBeActivated","getIntersectingFontFaces","activateCustomFontFamilies","error","errors","uninstallFont","fetchUninstallFonts","deactivateFontFamily","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","filter","fontsToAdd","mergeFontFamilies","forEach","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","toggleFont","loadFontFaceAsset","has","add","collections","setFontCollections","getFontCollections","fetchFontCollections","getFontCollection","id","hasData","collection","data","fetchFontCollection","updatedCollections","_react","createElement","Provider","value","_default","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useState, useEffect } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseEntityRecord,\n\tuseEntityRecords,\n\tstore as coreStore,\n} from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchInstallFonts,\n\tfetchUninstallFonts,\n\tfetchFontCollections,\n\tfetchFontCollection,\n} from './resolvers';\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport {\n\tsetUIValuesNeeded,\n\tmergeFontFamilies,\n\tloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n\tmakeFormDataFromFontFamilies,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\nimport getIntersectingFontFaces from './utils/get-intersecting-font-faces';\n\nexport const FontLibraryContext = createContext( {} );\n\nfunction FontLibraryProvider( { children } ) {\n\tconst { __experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits } =\n\t\tuseDispatch( coreStore );\n\tconst { globalStylesId } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn { globalStylesId: __experimentalGetCurrentGlobalStylesId() };\n\t} );\n\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst [ isInstalling, setIsInstalling ] = useState( false );\n\tconst [ refreshKey, setRefreshKey ] = useState( 0 );\n\n\tconst refreshLibrary = () => {\n\t\tsetRefreshKey( Date.now() );\n\t};\n\n\tconst {\n\t\trecords: libraryPosts = [],\n\t\tisResolving: isResolvingLibrary,\n\t\thasResolved: hasResolvedLibrary,\n\t} = useEntityRecords( 'postType', 'wp_font_family', { refreshKey } );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( post ) =>\n\t\t\tJSON.parse( post.content.raw )\n\t\t) || [];\n\n\t// Global Styles (settings) font families\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\t// theme.json file font families\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\n\t// Save font families to the global styles post in the database.\n\tconst saveFontFamilies = () => {\n\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t'settings.typography.fontFamilies',\n\t\t] );\n\t};\n\n\t// Library Fonts\n\tconst [ modalTabOpen, setModalTabOpen ] = useState( false );\n\tconst [ libraryFontSelected, setLibraryFontSelected ] = useState( null );\n\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? baseFontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst baseCustomFonts = libraryFonts\n\t\t? libraryFonts\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tuseEffect( () => {\n\t\tif ( ! modalTabOpen ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t}\n\t}, [ modalTabOpen ] );\n\n\tconst handleSetLibraryFontSelected = ( font ) => {\n\t\t// If font is null, reset the selected font\n\t\tif ( ! font ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst fonts =\n\t\t\tfont.source === 'theme' ? baseThemeFonts : baseCustomFonts;\n\n\t\t// Tries to find the font in the installed fonts\n\t\tconst fontSelected = fonts.find( ( f ) => f.slug === font.slug );\n\t\t// If the font is not found (it is only defined in custom styles), use the font from custom styles\n\t\tsetLibraryFontSelected( {\n\t\t\t...( fontSelected || font ),\n\t\t\tsource: font.source,\n\t\t} );\n\t};\n\n\tconst toggleModal = ( tabName ) => {\n\t\tsetModalTabOpen( tabName || null );\n\t};\n\n\t// Demo\n\tconst [ loadedFontUrls ] = useState( new Set() );\n\n\t// Theme data\n\tconst { site, currentTheme } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tsite: select( coreStore ).getSite(),\n\t\t\tcurrentTheme: select( coreStore ).getCurrentTheme(),\n\t\t};\n\t} );\n\tconst themeUrl =\n\t\tsite?.url + '/wp-content/themes/' + currentTheme?.stylesheet;\n\n\tconst getAvailableFontsOutline = ( availableFontFamilies ) => {\n\t\tconst outline = availableFontFamilies.reduce( ( acc, font ) => {\n\t\t\tconst availableFontFaces = Array.isArray( font?.fontFace )\n\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t )\n\t\t\t\t: [ 'normal400' ]; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400\n\n\t\t\tacc[ font.slug ] = availableFontFaces;\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn outline;\n\t};\n\n\tconst getActivatedFontsOutline = ( source ) => {\n\t\tswitch ( source ) {\n\t\t\tcase 'theme':\n\t\t\t\treturn getAvailableFontsOutline( themeFonts );\n\t\t\tcase 'custom':\n\t\t\tdefault:\n\t\t\t\treturn getAvailableFontsOutline( customFonts );\n\t\t}\n\t};\n\n\tconst isFontActivated = ( slug, style, weight, source ) => {\n\t\tif ( ! style && ! weight ) {\n\t\t\treturn !! getActivatedFontsOutline( source )[ slug ];\n\t\t}\n\t\treturn !! getActivatedFontsOutline( source )[ slug ]?.includes(\n\t\t\tstyle + weight\n\t\t);\n\t};\n\n\tconst getFontFacesActivated = ( slug, source ) => {\n\t\treturn getActivatedFontsOutline( source )[ slug ] || [];\n\t};\n\n\tasync function installFonts( fonts ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Prepare formData to install.\n\t\t\tconst formData = makeFormDataFromFontFamilies( fonts );\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tconst response = await fetchInstallFonts( formData );\n\t\t\tconst fontsInstalled = response?.successes || [];\n\t\t\t// Get intersecting font faces between the fonts we tried to installed and the fonts that were installed\n\t\t\t// (to avoid activating a non installed font).\n\t\t\tconst fontToBeActivated = getIntersectingFontFaces(\n\t\t\t\tfontsInstalled,\n\t\t\t\tfonts\n\t\t\t);\n\t\t\t// Activate the font families (add the font families to the global styles).\n\t\t\tactivateCustomFontFamilies( fontToBeActivated );\n\t\t\t// Save the global styles to the database.\n\t\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t\t'settings.typography.fontFamilies',\n\t\t\t] );\n\t\t\trefreshLibrary();\n\t\t\tsetIsInstalling( false );\n\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\tsetIsInstalling( false );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\n\t\t}\n\t}\n\n\tasync function uninstallFont( font ) {\n\t\ttry {\n\t\t\t// Uninstall the font (remove the font files from the server and the post from the database).\n\t\t\tconst response = await fetchUninstallFonts( [ font ] );\n\t\t\t// Deactivate the font family (remove the font family from the global styles).\n\t\t\tif ( ! response.errors ) {\n\t\t\t\tdeactivateFontFamily( font );\n\t\t\t\t// Save the global styles to the database.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t[ 'settings.typography.fontFamilies' ]\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Refresh the library (the the library font families from database).\n\t\t\trefreshLibrary();\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( error );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\n\t\t}\n\t}\n\n\tconst deactivateFontFamily = ( font ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialCustomFonts = fontFamilies?.[ font.source ] ?? [];\n\t\tconst newCustomFonts = initialCustomFonts.filter(\n\t\t\t( f ) => f.slug !== font.slug\n\t\t);\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newCustomFonts,\n\t\t} );\n\t};\n\n\tconst activateCustomFontFamilies = ( fontsToAdd ) => {\n\t\t// Merge the existing custom fonts with the new fonts.\n\t\tconst newCustomFonts = mergeFontFamilies(\n\t\t\tfontFamilies?.custom,\n\t\t\tfontsToAdd\n\t\t);\n\t\t// Activate the fonts by set the new custom fonts array.\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\tcustom: newCustomFonts,\n\t\t} );\n\t\t// Add custom fonts to the browser.\n\t\tfontsToAdd.forEach( ( font ) => {\n\t\t\tif ( font.fontFace ) {\n\t\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\t\t// Load font faces just in the iframe because they already are in the document.\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face.src ),\n\t\t\t\t\t\t'iframe'\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t};\n\n\tconst toggleActivateFont = ( font, face ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialFonts = fontFamilies?.[ font.source ] ?? [];\n\t\t// Toggles the received font family or font face\n\t\tconst newFonts = toggleFont( font, face, initialFonts );\n\t\t// Updates the font families activated in global settings:\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newFonts,\n\t\t} );\n\t};\n\n\tconst loadFontFaceAsset = async ( fontFace ) => {\n\t\t// If the font doesn't have a src, don't load it.\n\t\tif ( ! fontFace.src ) return;\n\t\t// Get the src of the font.\n\t\tconst src = getDisplaySrcFromFontFace( fontFace.src, themeUrl );\n\t\t// If the font is already loaded, don't load it again.\n\t\tif ( ! src || loadedFontUrls.has( src ) ) return;\n\t\t// Load the font in the browser.\n\t\tloadFontFaceInBrowser( fontFace, src, 'document' );\n\t\t// Add the font to the loaded fonts list.\n\t\tloadedFontUrls.add( src );\n\t};\n\n\t// Font Collections\n\tconst [ collections, setFontCollections ] = useState( [] );\n\tconst getFontCollections = async () => {\n\t\tconst response = await fetchFontCollections();\n\t\tsetFontCollections( response );\n\t};\n\tconst getFontCollection = async ( id ) => {\n\t\tconst hasData = !! collections.find(\n\t\t\t( collection ) => collection.id === id\n\t\t)?.data;\n\t\tif ( hasData ) return;\n\t\tconst response = await fetchFontCollection( id );\n\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\tcollection.id === id\n\t\t\t\t? { ...collection, data: { ...response?.data } }\n\t\t\t\t: collection\n\t\t);\n\t\tsetFontCollections( updatedCollections );\n\t};\n\n\tuseEffect( () => {\n\t\tgetFontCollections();\n\t}, [] );\n\n\treturn (\n\t\t<FontLibraryContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tlibraryFontSelected,\n\t\t\t\thandleSetLibraryFontSelected,\n\t\t\t\tthemeFonts,\n\t\t\t\tbaseThemeFonts,\n\t\t\t\tcustomFonts,\n\t\t\t\tbaseCustomFonts,\n\t\t\t\tisFontActivated,\n\t\t\t\tgetFontFacesActivated,\n\t\t\t\tloadFontFaceAsset,\n\t\t\t\tinstallFonts,\n\t\t\t\tuninstallFont,\n\t\t\t\ttoggleActivateFont,\n\t\t\t\tgetAvailableFontsOutline,\n\t\t\t\tmodalTabOpen,\n\t\t\t\ttoggleModal,\n\t\t\t\trefreshLibrary,\n\t\t\t\tsaveFontFamilies,\n\t\t\t\tfontFamiliesHasChanges,\n\t\t\t\tisResolvingLibrary,\n\t\t\t\thasResolvedLibrary,\n\t\t\t\tisInstalling,\n\t\t\t\tcollections,\n\t\t\t\tgetFontCollection,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</FontLibraryContext.Provider>\n\t);\n}\n\nexport default FontLibraryProvider;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_blockEditor","_data","_coreData","_resolvers","_lockUnlock","_utils","_toggleFont","_getIntersectingFontFaces","_interopRequireDefault","useGlobalSetting","unlock","blockEditorPrivateApis","FontLibraryContext","createContext","exports","FontLibraryProvider","children","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","useDispatch","coreStore","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","fontFamilies","isInstalling","setIsInstalling","useState","refreshKey","setRefreshKey","refreshLibrary","Date","now","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","useEntityRecords","libraryFonts","map","post","JSON","parse","content","raw","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","baseThemeFonts","theme","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFonts","customFonts","custom","baseCustomFonts","useEffect","handleSetLibraryFontSelected","font","fonts","fontSelected","find","slug","toggleModal","tabName","loadedFontUrls","Set","site","currentTheme","getSite","getCurrentTheme","themeUrl","url","stylesheet","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","Array","isArray","fontFace","face","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFonts","formData","makeFormDataFromFontFamilies","response","fetchInstallFonts","fontsInstalled","successes","fontToBeActivated","getIntersectingFontFaces","activateCustomFontFamilies","error","errors","uninstallFont","fetchUninstallFonts","deactivateFontFamily","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","filter","fontsToAdd","mergeFontFamilies","forEach","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","toggleFont","loadFontFaceAsset","has","add","collections","setFontCollections","getFontCollections","fetchFontCollections","getFontCollection","id","hasData","collection","data","fetchFontCollection","updatedCollections","e","_react","createElement","Provider","value","_default","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useState, useEffect } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseEntityRecord,\n\tuseEntityRecords,\n\tstore as coreStore,\n} from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchInstallFonts,\n\tfetchUninstallFonts,\n\tfetchFontCollections,\n\tfetchFontCollection,\n} from './resolvers';\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport {\n\tsetUIValuesNeeded,\n\tmergeFontFamilies,\n\tloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n\tmakeFormDataFromFontFamilies,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\nimport getIntersectingFontFaces from './utils/get-intersecting-font-faces';\n\nexport const FontLibraryContext = createContext( {} );\n\nfunction FontLibraryProvider( { children } ) {\n\tconst { __experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits } =\n\t\tuseDispatch( coreStore );\n\tconst { globalStylesId } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn { globalStylesId: __experimentalGetCurrentGlobalStylesId() };\n\t} );\n\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst [ isInstalling, setIsInstalling ] = useState( false );\n\tconst [ refreshKey, setRefreshKey ] = useState( 0 );\n\n\tconst refreshLibrary = () => {\n\t\tsetRefreshKey( Date.now() );\n\t};\n\n\tconst {\n\t\trecords: libraryPosts = [],\n\t\tisResolving: isResolvingLibrary,\n\t\thasResolved: hasResolvedLibrary,\n\t} = useEntityRecords( 'postType', 'wp_font_family', { refreshKey } );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( post ) =>\n\t\t\tJSON.parse( post.content.raw )\n\t\t) || [];\n\n\t// Global Styles (settings) font families\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\t// theme.json file font families\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\n\t// Save font families to the global styles post in the database.\n\tconst saveFontFamilies = () => {\n\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t'settings.typography.fontFamilies',\n\t\t] );\n\t};\n\n\t// Library Fonts\n\tconst [ modalTabOpen, setModalTabOpen ] = useState( false );\n\tconst [ libraryFontSelected, setLibraryFontSelected ] = useState( null );\n\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? baseFontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst baseCustomFonts = libraryFonts\n\t\t? libraryFonts\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tuseEffect( () => {\n\t\tif ( ! modalTabOpen ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t}\n\t}, [ modalTabOpen ] );\n\n\tconst handleSetLibraryFontSelected = ( font ) => {\n\t\t// If font is null, reset the selected font\n\t\tif ( ! font ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst fonts =\n\t\t\tfont.source === 'theme' ? baseThemeFonts : baseCustomFonts;\n\n\t\t// Tries to find the font in the installed fonts\n\t\tconst fontSelected = fonts.find( ( f ) => f.slug === font.slug );\n\t\t// If the font is not found (it is only defined in custom styles), use the font from custom styles\n\t\tsetLibraryFontSelected( {\n\t\t\t...( fontSelected || font ),\n\t\t\tsource: font.source,\n\t\t} );\n\t};\n\n\tconst toggleModal = ( tabName ) => {\n\t\tsetModalTabOpen( tabName || null );\n\t};\n\n\t// Demo\n\tconst [ loadedFontUrls ] = useState( new Set() );\n\n\t// Theme data\n\tconst { site, currentTheme } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tsite: select( coreStore ).getSite(),\n\t\t\tcurrentTheme: select( coreStore ).getCurrentTheme(),\n\t\t};\n\t} );\n\tconst themeUrl =\n\t\tsite?.url + '/wp-content/themes/' + currentTheme?.stylesheet;\n\n\tconst getAvailableFontsOutline = ( availableFontFamilies ) => {\n\t\tconst outline = availableFontFamilies.reduce( ( acc, font ) => {\n\t\t\tconst availableFontFaces = Array.isArray( font?.fontFace )\n\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t )\n\t\t\t\t: [ 'normal400' ]; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400\n\n\t\t\tacc[ font.slug ] = availableFontFaces;\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn outline;\n\t};\n\n\tconst getActivatedFontsOutline = ( source ) => {\n\t\tswitch ( source ) {\n\t\t\tcase 'theme':\n\t\t\t\treturn getAvailableFontsOutline( themeFonts );\n\t\t\tcase 'custom':\n\t\t\tdefault:\n\t\t\t\treturn getAvailableFontsOutline( customFonts );\n\t\t}\n\t};\n\n\tconst isFontActivated = ( slug, style, weight, source ) => {\n\t\tif ( ! style && ! weight ) {\n\t\t\treturn !! getActivatedFontsOutline( source )[ slug ];\n\t\t}\n\t\treturn !! getActivatedFontsOutline( source )[ slug ]?.includes(\n\t\t\tstyle + weight\n\t\t);\n\t};\n\n\tconst getFontFacesActivated = ( slug, source ) => {\n\t\treturn getActivatedFontsOutline( source )[ slug ] || [];\n\t};\n\n\tasync function installFonts( fonts ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Prepare formData to install.\n\t\t\tconst formData = makeFormDataFromFontFamilies( fonts );\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tconst response = await fetchInstallFonts( formData );\n\t\t\tconst fontsInstalled = response?.successes || [];\n\t\t\t// Get intersecting font faces between the fonts we tried to installed and the fonts that were installed\n\t\t\t// (to avoid activating a non installed font).\n\t\t\tconst fontToBeActivated = getIntersectingFontFaces(\n\t\t\t\tfontsInstalled,\n\t\t\t\tfonts\n\t\t\t);\n\t\t\t// Activate the font families (add the font families to the global styles).\n\t\t\tactivateCustomFontFamilies( fontToBeActivated );\n\t\t\t// Save the global styles to the database.\n\t\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t\t'settings.typography.fontFamilies',\n\t\t\t] );\n\t\t\trefreshLibrary();\n\t\t\tsetIsInstalling( false );\n\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\tsetIsInstalling( false );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\n\t\t}\n\t}\n\n\tasync function uninstallFont( font ) {\n\t\ttry {\n\t\t\t// Uninstall the font (remove the font files from the server and the post from the database).\n\t\t\tconst response = await fetchUninstallFonts( [ font ] );\n\t\t\t// Deactivate the font family (remove the font family from the global styles).\n\t\t\tif ( ! response.errors ) {\n\t\t\t\tdeactivateFontFamily( font );\n\t\t\t\t// Save the global styles to the database.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t[ 'settings.typography.fontFamilies' ]\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Refresh the library (the the library font families from database).\n\t\t\trefreshLibrary();\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( error );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\n\t\t}\n\t}\n\n\tconst deactivateFontFamily = ( font ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialCustomFonts = fontFamilies?.[ font.source ] ?? [];\n\t\tconst newCustomFonts = initialCustomFonts.filter(\n\t\t\t( f ) => f.slug !== font.slug\n\t\t);\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newCustomFonts,\n\t\t} );\n\t};\n\n\tconst activateCustomFontFamilies = ( fontsToAdd ) => {\n\t\t// Merge the existing custom fonts with the new fonts.\n\t\tconst newCustomFonts = mergeFontFamilies(\n\t\t\tfontFamilies?.custom,\n\t\t\tfontsToAdd\n\t\t);\n\t\t// Activate the fonts by set the new custom fonts array.\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\tcustom: newCustomFonts,\n\t\t} );\n\t\t// Add custom fonts to the browser.\n\t\tfontsToAdd.forEach( ( font ) => {\n\t\t\tif ( font.fontFace ) {\n\t\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\t\t// Load font faces just in the iframe because they already are in the document.\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face.src ),\n\t\t\t\t\t\t'iframe'\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t};\n\n\tconst toggleActivateFont = ( font, face ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialFonts = fontFamilies?.[ font.source ] ?? [];\n\t\t// Toggles the received font family or font face\n\t\tconst newFonts = toggleFont( font, face, initialFonts );\n\t\t// Updates the font families activated in global settings:\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newFonts,\n\t\t} );\n\t};\n\n\tconst loadFontFaceAsset = async ( fontFace ) => {\n\t\t// If the font doesn't have a src, don't load it.\n\t\tif ( ! fontFace.src ) return;\n\t\t// Get the src of the font.\n\t\tconst src = getDisplaySrcFromFontFace( fontFace.src, themeUrl );\n\t\t// If the font is already loaded, don't load it again.\n\t\tif ( ! src || loadedFontUrls.has( src ) ) return;\n\t\t// Load the font in the browser.\n\t\tloadFontFaceInBrowser( fontFace, src, 'document' );\n\t\t// Add the font to the loaded fonts list.\n\t\tloadedFontUrls.add( src );\n\t};\n\n\t// Font Collections\n\tconst [ collections, setFontCollections ] = useState( [] );\n\tconst getFontCollections = async () => {\n\t\tconst response = await fetchFontCollections();\n\t\tsetFontCollections( response );\n\t};\n\tconst getFontCollection = async ( id ) => {\n\t\ttry {\n\t\t\tconst hasData = !! collections.find(\n\t\t\t\t( collection ) => collection.id === id\n\t\t\t)?.data;\n\t\t\tif ( hasData ) return;\n\t\t\tconst response = await fetchFontCollection( id );\n\t\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\t\tcollection.id === id\n\t\t\t\t\t? { ...collection, data: { ...response?.data } }\n\t\t\t\t\t: collection\n\t\t\t);\n\t\t\tsetFontCollections( updatedCollections );\n\t\t} catch ( e ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( e );\n\t\t\tthrow e;\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tgetFontCollections();\n\t}, [] );\n\n\treturn (\n\t\t<FontLibraryContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tlibraryFontSelected,\n\t\t\t\thandleSetLibraryFontSelected,\n\t\t\t\tthemeFonts,\n\t\t\t\tbaseThemeFonts,\n\t\t\t\tcustomFonts,\n\t\t\t\tbaseCustomFonts,\n\t\t\t\tisFontActivated,\n\t\t\t\tgetFontFacesActivated,\n\t\t\t\tloadFontFaceAsset,\n\t\t\t\tinstallFonts,\n\t\t\t\tuninstallFont,\n\t\t\t\ttoggleActivateFont,\n\t\t\t\tgetAvailableFontsOutline,\n\t\t\t\tmodalTabOpen,\n\t\t\t\ttoggleModal,\n\t\t\t\trefreshLibrary,\n\t\t\t\tsaveFontFamilies,\n\t\t\t\tfontFamiliesHasChanges,\n\t\t\t\tisResolvingLibrary,\n\t\t\t\thasResolvedLibrary,\n\t\t\t\tisInstalling,\n\t\t\t\tcollections,\n\t\t\t\tgetFontCollection,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</FontLibraryContext.Provider>\n\t);\n}\n\nexport default FontLibraryProvider;\n"],"mappings":"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"}
@@ -61,19 +61,33 @@ function FontCollection({
61
61
  return () => window.removeEventListener('storage', handleStorage);
62
62
  }, [id, requiresPermission]);
63
63
  (0, _element.useEffect)(() => {
64
- getFontCollection(id);
65
- resetFilters();
64
+ const fetchFontCollection = async () => {
65
+ try {
66
+ await getFontCollection(id);
67
+ resetFilters();
68
+ } catch (e) {
69
+ setNotice({
70
+ type: 'error',
71
+ message: e?.message,
72
+ duration: 0 // Don't auto-hide.
73
+ });
74
+ }
75
+ };
76
+
77
+ fetchFontCollection();
66
78
  }, [id, getFontCollection]);
67
79
  (0, _element.useEffect)(() => {
68
80
  setSelectedFont(null);
81
+ setNotice(null);
69
82
  }, [id]);
70
83
 
71
84
  // Reset notice after 5 seconds
72
85
  (0, _element.useEffect)(() => {
73
- if (notice) {
86
+ if (notice && notice?.duration !== 0) {
87
+ var _notice$duration;
74
88
  const timeout = setTimeout(() => {
75
89
  setNotice(null);
76
- }, 5000);
90
+ }, (_notice$duration = notice.duration) !== null && _notice$duration !== void 0 ? _notice$duration : 5000);
77
91
  return () => clearTimeout(timeout);
78
92
  }
79
93
  }, [notice]);
@@ -132,7 +146,7 @@ function FontCollection({
132
146
  })
133
147
  }, renderConfirmDialog && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalSpacer, {
134
148
  margin: 8
135
- }), (0, _react.createElement)(_googleFontsConfirmDialog.default, null)), !renderConfirmDialog && !selectedCollection.data && (0, _react.createElement)(_components.Spinner, null), notice && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)(_components.__experimentalSpacer, {
149
+ }), (0, _react.createElement)(_googleFontsConfirmDialog.default, null)), notice && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)(_components.__experimentalSpacer, {
136
150
  margin: 2
137
151
  }), (0, _react.createElement)(_components.Notice, {
138
152
  isDismissible: false,
@@ -161,7 +175,7 @@ function FontCollection({
161
175
  key: category.id
162
176
  }, category.name))))), (0, _react.createElement)(_components.__experimentalSpacer, {
163
177
  margin: 4
164
- }), !renderConfirmDialog && !selectedCollection?.data?.fontFamilies && (0, _react.createElement)(_components.Spinner, null), !renderConfirmDialog && !!selectedCollection?.data?.fontFamilies?.length && !fonts.length && (0, _react.createElement)(_components.__experimentalText, null, (0, _i18n.__)('No fonts found. Try with a different seach term')), !renderConfirmDialog && selectedFont && (0, _react.createElement)(_collectionFontDetails.default, {
178
+ }), !renderConfirmDialog && !selectedCollection?.data?.fontFamilies && !notice && (0, _react.createElement)(_components.Spinner, null), !renderConfirmDialog && !!selectedCollection?.data?.fontFamilies?.length && !fonts.length && (0, _react.createElement)(_components.__experimentalText, null, (0, _i18n.__)('No fonts found. Try with a different seach term')), !renderConfirmDialog && selectedFont && (0, _react.createElement)(_collectionFontDetails.default, {
165
179
  font: selectedFont,
166
180
  handleToggleVariant: handleToggleVariant,
167
181
  fontToInstallOutline: fontToInstallOutline
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_components","_compose","_i18n","_icons","_tabLayout","_interopRequireDefault","_context","_fontsGrid","_fontCard","_filterFonts","_collectionFontDetails","_toggleFont","_fontsOutline","_googleFontsConfirmDialog","_getNoticeFromResponse","DEFAULT_CATEGORY","id","name","__","FontCollection","_selectedCollection$d2","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","notice","setNotice","useState","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","useContext","FontLibraryContext","selectedCollection","find","collection","useEffect","handleStorage","addEventListener","removeEventListener","resetFilters","timeout","setTimeout","clearTimeout","collectionFonts","useMemo","_selectedCollection$d","data","fontFamilies","collectionCategories","categories","fonts","filterFonts","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","debounce","resetSearch","handleUnselectFont","handleToggleVariant","font","face","newFontsToInstall","toggleFont","fontToInstallOutline","getFontsOutline","resetFontsToInstall","handleInstall","response","installNotice","getNoticeFromInstallResponse","_react","createElement","default","title","description","handleBack","footer","length","Footer","Fragment","__experimentalSpacer","margin","Spinner","FlexItem","Notice","isDismissible","status","type","className","message","Flex","__experimentalInputControl","placeholder","label","onChange","prefix","Icon","icon","suffix","closeSmall","onClick","SelectControl","map","key","__experimentalText","slug","isInstalling","justify","Button","variant","isBusy","disabled","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext, useEffect, useState, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalInputControl as InputControl,\n\t__experimentalText as Text,\n\tSelectControl,\n\tSpinner,\n\tIcon,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tNotice,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { search, closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TabLayout from './tab-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport CollectionFontDetails from './collection-font-details';\nimport { toggleFont } from './utils/toggleFont';\nimport { getFontsOutline } from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { getNoticeFromInstallResponse } from './utils/get-notice-from-response';\n\nconst DEFAULT_CATEGORY = {\n\tid: 'all',\n\tname: __( 'All' ),\n};\nfunction FontCollection( { id } ) {\n\tconst requiresPermission = id === 'default-font-collection';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn (\n\t\t\twindow.localStorage.getItem(\n\t\t\t\t'wp-font-library-default-font-collection-permission'\n\t\t\t) === 'true'\n\t\t);\n\t};\n\n\tconst [ notice, setNotice ] = useState( null );\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst { collections, getFontCollection, installFonts } =\n\t\tuseContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.id === id\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}, [ id, requiresPermission ] );\n\n\tuseEffect( () => {\n\t\tgetFontCollection( id );\n\t\tresetFilters();\n\t}, [ id, getFontCollection ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t}, [ id ] );\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.data?.fontFamilies ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.data?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetFilters( { ...filters, search: '' } );\n\t};\n\n\tconst handleUnselectFont = () => {\n\t\tsetSelectedFont( null );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst handleInstall = async () => {\n\t\tconst response = await installFonts( fontsToInstall );\n\t\tconst installNotice = getNoticeFromInstallResponse( response );\n\t\tsetNotice( installNotice );\n\t\tresetFontsToInstall();\n\t};\n\n\treturn (\n\t\t<TabLayout\n\t\t\ttitle={\n\t\t\t\t! selectedFont ? selectedCollection.name : selectedFont.name\n\t\t\t}\n\t\t\tdescription={\n\t\t\t\t! selectedFont\n\t\t\t\t\t? selectedCollection.description\n\t\t\t\t\t: __( 'Select font variants to install.' )\n\t\t\t}\n\t\t\thandleBack={ !! selectedFont && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\tfontsToInstall.length > 0 && (\n\t\t\t\t\t<Footer handleInstall={ handleInstall } />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ renderConfirmDialog && (\n\t\t\t\t<>\n\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t<GoogleFontsConfirmDialog />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedCollection.data && (\n\t\t\t\t<Spinner />\n\t\t\t) }\n\n\t\t\t{ notice && (\n\t\t\t\t<>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__font-collection__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\tprefix={ <Icon icon={ search } /> }\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\tfilters?.search ? (\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\t\tonClick={ resetSearch }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\tvalue={ category.id }\n\t\t\t\t\t\t\t\t\t\tkey={ category.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\n\t\t\t<Spacer margin={ 4 } />\n\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t! selectedCollection?.data?.fontFamilies && <Spinner /> }\n\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t!! selectedCollection?.data?.fontFamilies?.length &&\n\t\t\t\t! fonts.length && (\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'No fonts found. Try with a different seach term'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && selectedFont && (\n\t\t\t\t<CollectionFontDetails\n\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\tfontToInstallOutline={ fontToInstallOutline }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<FontsGrid>\n\t\t\t\t\t{ fonts.map( ( font ) => (\n\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetSelectedFont( font );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</FontsGrid>\n\t\t\t) }\n\t\t</TabLayout>\n\t);\n}\n\nfunction Footer( { handleInstall } ) {\n\tconst { isInstalling } = useContext( FontLibraryContext );\n\n\treturn (\n\t\t<Flex justify=\"flex-end\">\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ handleInstall }\n\t\t\t\tisBusy={ isInstalling }\n\t\t\t\tdisabled={ isInstalling }\n\t\t\t>\n\t\t\t\t{ __( 'Install' ) }\n\t\t\t</Button>\n\t\t</Flex>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_components","_compose","_i18n","_icons","_tabLayout","_interopRequireDefault","_context","_fontsGrid","_fontCard","_filterFonts","_collectionFontDetails","_toggleFont","_fontsOutline","_googleFontsConfirmDialog","_getNoticeFromResponse","DEFAULT_CATEGORY","id","name","__","FontCollection","_selectedCollection$d2","requiresPermission","getGoogleFontsPermissionFromStorage","window","localStorage","getItem","notice","setNotice","useState","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","filters","setFilters","renderConfirmDialog","setRenderConfirmDialog","collections","getFontCollection","installFonts","useContext","FontLibraryContext","selectedCollection","find","collection","useEffect","handleStorage","addEventListener","removeEventListener","fetchFontCollection","resetFilters","e","type","message","duration","_notice$duration","timeout","setTimeout","clearTimeout","collectionFonts","useMemo","_selectedCollection$d","data","fontFamilies","collectionCategories","categories","fonts","filterFonts","handleCategoryFilter","category","handleUpdateSearchInput","value","search","debouncedUpdateSearchInput","debounce","resetSearch","handleUnselectFont","handleToggleVariant","font","face","newFontsToInstall","toggleFont","fontToInstallOutline","getFontsOutline","resetFontsToInstall","handleInstall","response","installNotice","getNoticeFromInstallResponse","_react","createElement","default","title","description","handleBack","footer","length","Footer","Fragment","__experimentalSpacer","margin","FlexItem","Notice","isDismissible","status","className","Flex","__experimentalInputControl","placeholder","label","onChange","prefix","Icon","icon","suffix","closeSmall","onClick","SelectControl","map","key","Spinner","__experimentalText","slug","isInstalling","justify","Button","variant","isBusy","disabled","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-collection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext, useEffect, useState, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalInputControl as InputControl,\n\t__experimentalText as Text,\n\tSelectControl,\n\tSpinner,\n\tIcon,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tNotice,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { search, closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TabLayout from './tab-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport CollectionFontDetails from './collection-font-details';\nimport { toggleFont } from './utils/toggleFont';\nimport { getFontsOutline } from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { getNoticeFromInstallResponse } from './utils/get-notice-from-response';\n\nconst DEFAULT_CATEGORY = {\n\tid: 'all',\n\tname: __( 'All' ),\n};\nfunction FontCollection( { id } ) {\n\tconst requiresPermission = id === 'default-font-collection';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn (\n\t\t\twindow.localStorage.getItem(\n\t\t\t\t'wp-font-library-default-font-collection-permission'\n\t\t\t) === 'true'\n\t\t);\n\t};\n\n\tconst [ notice, setNotice ] = useState( null );\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst { collections, getFontCollection, installFonts } =\n\t\tuseContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.id === id\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}, [ id, requiresPermission ] );\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( id );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tsetNotice( {\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\tduration: 0, // Don't auto-hide.\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ id, getFontCollection ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ id ] );\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice && notice?.duration !== 0 ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, notice.duration ?? 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.data?.fontFamilies ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.data?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetFilters( { ...filters, search: '' } );\n\t};\n\n\tconst handleUnselectFont = () => {\n\t\tsetSelectedFont( null );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst handleInstall = async () => {\n\t\tconst response = await installFonts( fontsToInstall );\n\t\tconst installNotice = getNoticeFromInstallResponse( response );\n\t\tsetNotice( installNotice );\n\t\tresetFontsToInstall();\n\t};\n\n\treturn (\n\t\t<TabLayout\n\t\t\ttitle={\n\t\t\t\t! selectedFont ? selectedCollection.name : selectedFont.name\n\t\t\t}\n\t\t\tdescription={\n\t\t\t\t! selectedFont\n\t\t\t\t\t? selectedCollection.description\n\t\t\t\t\t: __( 'Select font variants to install.' )\n\t\t\t}\n\t\t\thandleBack={ !! selectedFont && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\tfontsToInstall.length > 0 && (\n\t\t\t\t\t<Footer handleInstall={ handleInstall } />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ renderConfirmDialog && (\n\t\t\t\t<>\n\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t<GoogleFontsConfirmDialog />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ notice && (\n\t\t\t\t<>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__font-collection__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\tprefix={ <Icon icon={ search } /> }\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\tfilters?.search ? (\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\t\tonClick={ resetSearch }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\tvalue={ category.id }\n\t\t\t\t\t\t\t\t\t\tkey={ category.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t! selectedCollection?.data?.fontFamilies &&\n\t\t\t\t! notice && <Spinner /> }\n\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t!! selectedCollection?.data?.fontFamilies?.length &&\n\t\t\t\t! fonts.length && (\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'No fonts found. Try with a different seach term'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && selectedFont && (\n\t\t\t\t<CollectionFontDetails\n\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\tfontToInstallOutline={ fontToInstallOutline }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<FontsGrid>\n\t\t\t\t\t{ fonts.map( ( font ) => (\n\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetSelectedFont( font );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</FontsGrid>\n\t\t\t) }\n\t\t</TabLayout>\n\t);\n}\n\nfunction Footer( { handleInstall } ) {\n\tconst { isInstalling } = useContext( FontLibraryContext );\n\n\treturn (\n\t\t<Flex justify=\"flex-end\">\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ handleInstall }\n\t\t\t\tisBusy={ isInstalling }\n\t\t\t\tdisabled={ isInstalling }\n\t\t\t>\n\t\t\t\t{ __( 'Install' ) }\n\t\t\t</Button>\n\t\t</Flex>\n\t);\n}\n\nexport default FontCollection;\n"],"mappings":"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"}
@@ -112,7 +112,6 @@ function ScreenBlock({
112
112
  const {
113
113
  canEditCSS
114
114
  } = (0, _data.useSelect)(select => {
115
- var _globalStyles$_links$;
116
115
  const {
117
116
  getEntityRecord,
118
117
  __experimentalGetCurrentGlobalStylesId
@@ -120,7 +119,7 @@ function ScreenBlock({
120
119
  const globalStylesId = __experimentalGetCurrentGlobalStylesId();
121
120
  const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
122
121
  return {
123
- canEditCSS: (_globalStyles$_links$ = !!globalStyles?._links?.['wp:action-edit-css']) !== null && _globalStyles$_links$ !== void 0 ? _globalStyles$_links$ : false
122
+ canEditCSS: !!globalStyles?._links?.['wp:action-edit-css']
124
123
  };
125
124
  }, []);
126
125
  const currentBlockStyle = variation ? blockVariations.find(s => s.name === variation) : null;
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_blockEditor","_element","_data","_coreData","_components","_i18n","_header","_interopRequireDefault","_blockPreviewPanel","_lockUnlock","_subtitle","_variationsPanel","applyFallbackStyle","border","hasColorOrWidth","color","width","style","undefined","applyAllFallbackStyles","hasSplitBorders","top","right","bottom","left","useHasDimensionsPanel","useHasTypographyPanel","useHasBorderPanel","useGlobalSetting","useSettingsForBlockElement","useHasColorPanel","useHasEffectsPanel","useHasFiltersPanel","useHasImageSettingsPanel","useGlobalStyle","BorderPanel","StylesBorderPanel","ColorPanel","StylesColorPanel","TypographyPanel","StylesTypographyPanel","DimensionsPanel","StylesDimensionsPanel","EffectsPanel","StylesEffectsPanel","FiltersPanel","StylesFiltersPanel","ImageSettingsPanel","AdvancedPanel","StylesAdvancedPanel","unlock","blockEditorPrivateApis","ScreenBlock","name","variation","prefixParts","concat","prefix","join","shouldDecodeEncode","inheritedStyle","setStyle","userSettings","rawSettings","setSettings","settings","blockType","getBlockType","spacing","blockGap","supports","__experimentalSkipSerialization","some","spacingType","blockVariations","useBlockVariations","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasEffectsPanel","hasFiltersPanel","hasImageSettingsPanel","hasVariationsPanel","length","canEditCSS","useSelect","select","_globalStyles$_links$","getEntityRecord","__experimentalGetCurrentGlobalStylesId","coreStore","globalStylesId","globalStyles","_links","currentBlockStyle","find","s","inheritedStyleWithLayout","useMemo","layout","styleWithLayout","onChangeDimensions","newStyle","updatedStyle","onChangeLightbox","newSetting","lightbox","onChangeBorders","radius","newBorder","updatedBorder","_react","createElement","Fragment","default","title","label","className","__experimentalVStack","__","VariationsPanel","inheritedValue","value","onChange","includeLayoutControls","customDuotone","PanelBody","initialOpen","sprintf","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-block.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tPanelBody,\n\t__experimentalVStack as VStack,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from './header';\nimport BlockPreviewPanel from './block-preview-panel';\nimport { unlock } from '../../lock-unlock';\nimport Subtitle from './subtitle';\nimport { useBlockVariations, VariationsPanel } from './variations-panel';\n\nfunction applyFallbackStyle( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tconst hasColorOrWidth = border.color || border.width;\n\n\tif ( ! border.style && hasColorOrWidth ) {\n\t\treturn { ...border, style: 'solid' };\n\t}\n\n\tif ( border.style && ! hasColorOrWidth ) {\n\t\treturn undefined;\n\t}\n\n\treturn border;\n}\n\nfunction applyAllFallbackStyles( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tif ( hasSplitBorders( border ) ) {\n\t\treturn {\n\t\t\ttop: applyFallbackStyle( border.top ),\n\t\t\tright: applyFallbackStyle( border.right ),\n\t\t\tbottom: applyFallbackStyle( border.bottom ),\n\t\t\tleft: applyFallbackStyle( border.left ),\n\t\t};\n\t}\n\n\treturn applyFallbackStyle( border );\n}\n\nconst {\n\tuseHasDimensionsPanel,\n\tuseHasTypographyPanel,\n\tuseHasBorderPanel,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n\tuseHasColorPanel,\n\tuseHasEffectsPanel,\n\tuseHasFiltersPanel,\n\tuseHasImageSettingsPanel,\n\tuseGlobalStyle,\n\tBorderPanel: StylesBorderPanel,\n\tColorPanel: StylesColorPanel,\n\tTypographyPanel: StylesTypographyPanel,\n\tDimensionsPanel: StylesDimensionsPanel,\n\tEffectsPanel: StylesEffectsPanel,\n\tFiltersPanel: StylesFiltersPanel,\n\tImageSettingsPanel,\n\tAdvancedPanel: StylesAdvancedPanel,\n} = unlock( blockEditorPrivateApis );\n\nfunction ScreenBlock( { name, variation } ) {\n\tlet prefixParts = [];\n\tif ( variation ) {\n\t\tprefixParts = [ 'variations', variation ].concat( prefixParts );\n\t}\n\tconst prefix = prefixParts.join( '.' );\n\n\tconst [ style ] = useGlobalStyle( prefix, name, 'user', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ inheritedStyle, setStyle ] = useGlobalStyle( prefix, name, 'all', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ userSettings ] = useGlobalSetting( '', name, 'user' );\n\tconst [ rawSettings, setSettings ] = useGlobalSetting( '', name );\n\tconst settings = useSettingsForBlockElement( rawSettings, name );\n\tconst blockType = getBlockType( name );\n\n\t// Only allow `blockGap` support if serialization has not been skipped, to be sure global spacing can be applied.\n\tif (\n\t\tsettings?.spacing?.blockGap &&\n\t\tblockType?.supports?.spacing?.blockGap &&\n\t\t( blockType?.supports?.spacing?.__experimentalSkipSerialization ===\n\t\t\ttrue ||\n\t\t\tblockType?.supports?.spacing?.__experimentalSkipSerialization?.some?.(\n\t\t\t\t( spacingType ) => spacingType === 'blockGap'\n\t\t\t) )\n\t) {\n\t\tsettings.spacing.blockGap = false;\n\t}\n\n\tconst blockVariations = useBlockVariations( name );\n\tconst hasTypographyPanel = useHasTypographyPanel( settings );\n\tconst hasColorPanel = useHasColorPanel( settings );\n\tconst hasBorderPanel = useHasBorderPanel( settings );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( settings );\n\tconst hasEffectsPanel = useHasEffectsPanel( settings );\n\tconst hasFiltersPanel = useHasFiltersPanel( settings );\n\tconst hasImageSettingsPanel = useHasImageSettingsPanel(\n\t\tname,\n\t\tuserSettings,\n\t\tsettings\n\t);\n\tconst hasVariationsPanel = !! blockVariations?.length && ! variation;\n\tconst { canEditCSS } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tcanEditCSS:\n\t\t\t\t!! globalStyles?._links?.[ 'wp:action-edit-css' ] ?? false,\n\t\t};\n\t}, [] );\n\tconst currentBlockStyle = variation\n\t\t? blockVariations.find( ( s ) => s.name === variation )\n\t\t: null;\n\n\t// These intermediary objects are needed because the \"layout\" property is stored\n\t// in settings rather than styles.\n\tconst inheritedStyleWithLayout = useMemo( () => {\n\t\treturn {\n\t\t\t...inheritedStyle,\n\t\t\tlayout: settings.layout,\n\t\t};\n\t}, [ inheritedStyle, settings.layout ] );\n\tconst styleWithLayout = useMemo( () => {\n\t\treturn {\n\t\t\t...style,\n\t\t\tlayout: userSettings.layout,\n\t\t};\n\t}, [ style, userSettings.layout ] );\n\tconst onChangeDimensions = ( newStyle ) => {\n\t\tconst updatedStyle = { ...newStyle };\n\t\tdelete updatedStyle.layout;\n\t\tsetStyle( updatedStyle );\n\n\t\tif ( newStyle.layout !== userSettings.layout ) {\n\t\t\tsetSettings( {\n\t\t\t\t...userSettings,\n\t\t\t\tlayout: newStyle.layout,\n\t\t\t} );\n\t\t}\n\t};\n\tconst onChangeLightbox = ( newSetting ) => {\n\t\t// If the newSetting is undefined, this means that the user has deselected\n\t\t// (reset) the lightbox setting.\n\t\tif ( newSetting === undefined ) {\n\t\t\tsetSettings( {\n\t\t\t\t...rawSettings,\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\n\t\t\t// Otherwise, we simply set the lightbox setting to the new value but\n\t\t\t// taking care of not overriding the other lightbox settings.\n\t\t} else {\n\t\t\tsetSettings( {\n\t\t\t\t...rawSettings,\n\t\t\t\tlightbox: {\n\t\t\t\t\t...rawSettings.lightbox,\n\t\t\t\t\t...newSetting,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t};\n\tconst onChangeBorders = ( newStyle ) => {\n\t\tif ( ! newStyle?.border ) {\n\t\t\tsetStyle( newStyle );\n\t\t\treturn;\n\t\t}\n\n\t\t// As Global Styles can't conditionally generate styles based on if\n\t\t// other style properties have been set, we need to force split\n\t\t// border definitions for user set global border styles. Border\n\t\t// radius is derived from the same property i.e. `border.radius` if\n\t\t// it is a string that is used. The longhand border radii styles are\n\t\t// only generated if that property is an object.\n\t\t//\n\t\t// For borders (color, style, and width) those are all properties on\n\t\t// the `border` style property. This means if the theme.json defined\n\t\t// split borders and the user condenses them into a flat border or\n\t\t// vice-versa we'd get both sets of styles which would conflict.\n\t\tconst { radius, ...newBorder } = newStyle.border;\n\t\tconst border = applyAllFallbackStyles( newBorder );\n\t\tconst updatedBorder = ! hasSplitBorders( border )\n\t\t\t? {\n\t\t\t\t\ttop: border,\n\t\t\t\t\tright: border,\n\t\t\t\t\tbottom: border,\n\t\t\t\t\tleft: border,\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tcolor: null,\n\t\t\t\t\tstyle: null,\n\t\t\t\t\twidth: null,\n\t\t\t\t\t...border,\n\t\t\t };\n\n\t\tsetStyle( { ...newStyle, border: { ...updatedBorder, radius } } );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ variation ? currentBlockStyle.label : blockType.title }\n\t\t\t/>\n\t\t\t<BlockPreviewPanel name={ name } variation={ variation } />\n\t\t\t{ hasVariationsPanel && (\n\t\t\t\t<div className=\"edit-site-global-styles-screen-variations\">\n\t\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t\t<Subtitle>{ __( 'Style Variations' ) }</Subtitle>\n\t\t\t\t\t\t<VariationsPanel name={ name } />\n\t\t\t\t\t</VStack>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ hasColorPanel && (\n\t\t\t\t<StylesColorPanel\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasTypographyPanel && (\n\t\t\t\t<StylesTypographyPanel\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasDimensionsPanel && (\n\t\t\t\t<StylesDimensionsPanel\n\t\t\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\t\t\tvalue={ styleWithLayout }\n\t\t\t\t\tonChange={ onChangeDimensions }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tincludeLayoutControls\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBorderPanel && (\n\t\t\t\t<StylesBorderPanel\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ onChangeBorders }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasEffectsPanel && (\n\t\t\t\t<StylesEffectsPanel\n\t\t\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\t\t\tvalue={ styleWithLayout }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tincludeLayoutControls\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasFiltersPanel && (\n\t\t\t\t<StylesFiltersPanel\n\t\t\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\t\t\tvalue={ styleWithLayout }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ {\n\t\t\t\t\t\t...settings,\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t...settings.color,\n\t\t\t\t\t\t\tcustomDuotone: false, //TO FIX: Custom duotone only works on the block level right now\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t\tincludeLayoutControls\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasImageSettingsPanel && (\n\t\t\t\t<ImageSettingsPanel\n\t\t\t\t\tonChange={ onChangeLightbox }\n\t\t\t\t\tvalue={ userSettings }\n\t\t\t\t\tinheritedValue={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ canEditCSS && (\n\t\t\t\t<PanelBody title={ __( 'Advanced' ) } initialOpen={ false }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: is the name of a block e.g., 'Image' or 'Table'.\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Add your own CSS to customize the appearance of the %s block. You do not need to include a CSS selector, just add the property and value.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tblockType?.title\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<StylesAdvancedPanel\n\t\t\t\t\t\tvalue={ style }\n\t\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenBlock;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_blocks","require","_blockEditor","_element","_data","_coreData","_components","_i18n","_header","_interopRequireDefault","_blockPreviewPanel","_lockUnlock","_subtitle","_variationsPanel","applyFallbackStyle","border","hasColorOrWidth","color","width","style","undefined","applyAllFallbackStyles","hasSplitBorders","top","right","bottom","left","useHasDimensionsPanel","useHasTypographyPanel","useHasBorderPanel","useGlobalSetting","useSettingsForBlockElement","useHasColorPanel","useHasEffectsPanel","useHasFiltersPanel","useHasImageSettingsPanel","useGlobalStyle","BorderPanel","StylesBorderPanel","ColorPanel","StylesColorPanel","TypographyPanel","StylesTypographyPanel","DimensionsPanel","StylesDimensionsPanel","EffectsPanel","StylesEffectsPanel","FiltersPanel","StylesFiltersPanel","ImageSettingsPanel","AdvancedPanel","StylesAdvancedPanel","unlock","blockEditorPrivateApis","ScreenBlock","name","variation","prefixParts","concat","prefix","join","shouldDecodeEncode","inheritedStyle","setStyle","userSettings","rawSettings","setSettings","settings","blockType","getBlockType","spacing","blockGap","supports","__experimentalSkipSerialization","some","spacingType","blockVariations","useBlockVariations","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasEffectsPanel","hasFiltersPanel","hasImageSettingsPanel","hasVariationsPanel","length","canEditCSS","useSelect","select","getEntityRecord","__experimentalGetCurrentGlobalStylesId","coreStore","globalStylesId","globalStyles","_links","currentBlockStyle","find","s","inheritedStyleWithLayout","useMemo","layout","styleWithLayout","onChangeDimensions","newStyle","updatedStyle","onChangeLightbox","newSetting","lightbox","onChangeBorders","radius","newBorder","updatedBorder","_react","createElement","Fragment","default","title","label","className","__experimentalVStack","__","VariationsPanel","inheritedValue","value","onChange","includeLayoutControls","customDuotone","PanelBody","initialOpen","sprintf","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-block.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tPanelBody,\n\t__experimentalVStack as VStack,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from './header';\nimport BlockPreviewPanel from './block-preview-panel';\nimport { unlock } from '../../lock-unlock';\nimport Subtitle from './subtitle';\nimport { useBlockVariations, VariationsPanel } from './variations-panel';\n\nfunction applyFallbackStyle( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tconst hasColorOrWidth = border.color || border.width;\n\n\tif ( ! border.style && hasColorOrWidth ) {\n\t\treturn { ...border, style: 'solid' };\n\t}\n\n\tif ( border.style && ! hasColorOrWidth ) {\n\t\treturn undefined;\n\t}\n\n\treturn border;\n}\n\nfunction applyAllFallbackStyles( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tif ( hasSplitBorders( border ) ) {\n\t\treturn {\n\t\t\ttop: applyFallbackStyle( border.top ),\n\t\t\tright: applyFallbackStyle( border.right ),\n\t\t\tbottom: applyFallbackStyle( border.bottom ),\n\t\t\tleft: applyFallbackStyle( border.left ),\n\t\t};\n\t}\n\n\treturn applyFallbackStyle( border );\n}\n\nconst {\n\tuseHasDimensionsPanel,\n\tuseHasTypographyPanel,\n\tuseHasBorderPanel,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n\tuseHasColorPanel,\n\tuseHasEffectsPanel,\n\tuseHasFiltersPanel,\n\tuseHasImageSettingsPanel,\n\tuseGlobalStyle,\n\tBorderPanel: StylesBorderPanel,\n\tColorPanel: StylesColorPanel,\n\tTypographyPanel: StylesTypographyPanel,\n\tDimensionsPanel: StylesDimensionsPanel,\n\tEffectsPanel: StylesEffectsPanel,\n\tFiltersPanel: StylesFiltersPanel,\n\tImageSettingsPanel,\n\tAdvancedPanel: StylesAdvancedPanel,\n} = unlock( blockEditorPrivateApis );\n\nfunction ScreenBlock( { name, variation } ) {\n\tlet prefixParts = [];\n\tif ( variation ) {\n\t\tprefixParts = [ 'variations', variation ].concat( prefixParts );\n\t}\n\tconst prefix = prefixParts.join( '.' );\n\n\tconst [ style ] = useGlobalStyle( prefix, name, 'user', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ inheritedStyle, setStyle ] = useGlobalStyle( prefix, name, 'all', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ userSettings ] = useGlobalSetting( '', name, 'user' );\n\tconst [ rawSettings, setSettings ] = useGlobalSetting( '', name );\n\tconst settings = useSettingsForBlockElement( rawSettings, name );\n\tconst blockType = getBlockType( name );\n\n\t// Only allow `blockGap` support if serialization has not been skipped, to be sure global spacing can be applied.\n\tif (\n\t\tsettings?.spacing?.blockGap &&\n\t\tblockType?.supports?.spacing?.blockGap &&\n\t\t( blockType?.supports?.spacing?.__experimentalSkipSerialization ===\n\t\t\ttrue ||\n\t\t\tblockType?.supports?.spacing?.__experimentalSkipSerialization?.some?.(\n\t\t\t\t( spacingType ) => spacingType === 'blockGap'\n\t\t\t) )\n\t) {\n\t\tsettings.spacing.blockGap = false;\n\t}\n\n\tconst blockVariations = useBlockVariations( name );\n\tconst hasTypographyPanel = useHasTypographyPanel( settings );\n\tconst hasColorPanel = useHasColorPanel( settings );\n\tconst hasBorderPanel = useHasBorderPanel( settings );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( settings );\n\tconst hasEffectsPanel = useHasEffectsPanel( settings );\n\tconst hasFiltersPanel = useHasFiltersPanel( settings );\n\tconst hasImageSettingsPanel = useHasImageSettingsPanel(\n\t\tname,\n\t\tuserSettings,\n\t\tsettings\n\t);\n\tconst hasVariationsPanel = !! blockVariations?.length && ! variation;\n\tconst { canEditCSS } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tcanEditCSS: !! globalStyles?._links?.[ 'wp:action-edit-css' ],\n\t\t};\n\t}, [] );\n\tconst currentBlockStyle = variation\n\t\t? blockVariations.find( ( s ) => s.name === variation )\n\t\t: null;\n\n\t// These intermediary objects are needed because the \"layout\" property is stored\n\t// in settings rather than styles.\n\tconst inheritedStyleWithLayout = useMemo( () => {\n\t\treturn {\n\t\t\t...inheritedStyle,\n\t\t\tlayout: settings.layout,\n\t\t};\n\t}, [ inheritedStyle, settings.layout ] );\n\tconst styleWithLayout = useMemo( () => {\n\t\treturn {\n\t\t\t...style,\n\t\t\tlayout: userSettings.layout,\n\t\t};\n\t}, [ style, userSettings.layout ] );\n\tconst onChangeDimensions = ( newStyle ) => {\n\t\tconst updatedStyle = { ...newStyle };\n\t\tdelete updatedStyle.layout;\n\t\tsetStyle( updatedStyle );\n\n\t\tif ( newStyle.layout !== userSettings.layout ) {\n\t\t\tsetSettings( {\n\t\t\t\t...userSettings,\n\t\t\t\tlayout: newStyle.layout,\n\t\t\t} );\n\t\t}\n\t};\n\tconst onChangeLightbox = ( newSetting ) => {\n\t\t// If the newSetting is undefined, this means that the user has deselected\n\t\t// (reset) the lightbox setting.\n\t\tif ( newSetting === undefined ) {\n\t\t\tsetSettings( {\n\t\t\t\t...rawSettings,\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\n\t\t\t// Otherwise, we simply set the lightbox setting to the new value but\n\t\t\t// taking care of not overriding the other lightbox settings.\n\t\t} else {\n\t\t\tsetSettings( {\n\t\t\t\t...rawSettings,\n\t\t\t\tlightbox: {\n\t\t\t\t\t...rawSettings.lightbox,\n\t\t\t\t\t...newSetting,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t};\n\tconst onChangeBorders = ( newStyle ) => {\n\t\tif ( ! newStyle?.border ) {\n\t\t\tsetStyle( newStyle );\n\t\t\treturn;\n\t\t}\n\n\t\t// As Global Styles can't conditionally generate styles based on if\n\t\t// other style properties have been set, we need to force split\n\t\t// border definitions for user set global border styles. Border\n\t\t// radius is derived from the same property i.e. `border.radius` if\n\t\t// it is a string that is used. The longhand border radii styles are\n\t\t// only generated if that property is an object.\n\t\t//\n\t\t// For borders (color, style, and width) those are all properties on\n\t\t// the `border` style property. This means if the theme.json defined\n\t\t// split borders and the user condenses them into a flat border or\n\t\t// vice-versa we'd get both sets of styles which would conflict.\n\t\tconst { radius, ...newBorder } = newStyle.border;\n\t\tconst border = applyAllFallbackStyles( newBorder );\n\t\tconst updatedBorder = ! hasSplitBorders( border )\n\t\t\t? {\n\t\t\t\t\ttop: border,\n\t\t\t\t\tright: border,\n\t\t\t\t\tbottom: border,\n\t\t\t\t\tleft: border,\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tcolor: null,\n\t\t\t\t\tstyle: null,\n\t\t\t\t\twidth: null,\n\t\t\t\t\t...border,\n\t\t\t };\n\n\t\tsetStyle( { ...newStyle, border: { ...updatedBorder, radius } } );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ variation ? currentBlockStyle.label : blockType.title }\n\t\t\t/>\n\t\t\t<BlockPreviewPanel name={ name } variation={ variation } />\n\t\t\t{ hasVariationsPanel && (\n\t\t\t\t<div className=\"edit-site-global-styles-screen-variations\">\n\t\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t\t<Subtitle>{ __( 'Style Variations' ) }</Subtitle>\n\t\t\t\t\t\t<VariationsPanel name={ name } />\n\t\t\t\t\t</VStack>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ hasColorPanel && (\n\t\t\t\t<StylesColorPanel\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasTypographyPanel && (\n\t\t\t\t<StylesTypographyPanel\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasDimensionsPanel && (\n\t\t\t\t<StylesDimensionsPanel\n\t\t\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\t\t\tvalue={ styleWithLayout }\n\t\t\t\t\tonChange={ onChangeDimensions }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tincludeLayoutControls\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBorderPanel && (\n\t\t\t\t<StylesBorderPanel\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ onChangeBorders }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasEffectsPanel && (\n\t\t\t\t<StylesEffectsPanel\n\t\t\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\t\t\tvalue={ styleWithLayout }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tincludeLayoutControls\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasFiltersPanel && (\n\t\t\t\t<StylesFiltersPanel\n\t\t\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\t\t\tvalue={ styleWithLayout }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ {\n\t\t\t\t\t\t...settings,\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t...settings.color,\n\t\t\t\t\t\t\tcustomDuotone: false, //TO FIX: Custom duotone only works on the block level right now\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t\tincludeLayoutControls\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasImageSettingsPanel && (\n\t\t\t\t<ImageSettingsPanel\n\t\t\t\t\tonChange={ onChangeLightbox }\n\t\t\t\t\tvalue={ userSettings }\n\t\t\t\t\tinheritedValue={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ canEditCSS && (\n\t\t\t\t<PanelBody title={ __( 'Advanced' ) } initialOpen={ false }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: is the name of a block e.g., 'Image' or 'Table'.\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Add your own CSS to customize the appearance of the %s block. You do not need to include a CSS selector, just add the property and value.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tblockType?.title\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<StylesAdvancedPanel\n\t\t\t\t\t\tvalue={ style }\n\t\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenBlock;\n"],"mappings":"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"}
@@ -34,7 +34,6 @@ function ScreenRoot() {
34
34
  hasVariations,
35
35
  canEditCSS
36
36
  } = (0, _data.useSelect)(select => {
37
- var _globalStyles$_links$;
38
37
  const {
39
38
  getEntityRecord,
40
39
  __experimentalGetCurrentGlobalStylesId,
@@ -44,7 +43,7 @@ function ScreenRoot() {
44
43
  const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
45
44
  return {
46
45
  hasVariations: !!__experimentalGetCurrentThemeGlobalStylesVariations()?.length,
47
- canEditCSS: (_globalStyles$_links$ = !!globalStyles?._links?.['wp:action-edit-css']) !== null && _globalStyles$_links$ !== void 0 ? _globalStyles$_links$ : false
46
+ canEditCSS: !!globalStyles?._links?.['wp:action-edit-css']
48
47
  };
49
48
  }, []);
50
49
  return (0, _react.createElement)(_components.Card, {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_icons","_data","_coreData","_blockEditor","_iconWithCurrentColor","_navigationButton","_rootMenu","_interopRequireDefault","_preview","_lockUnlock","ScreenRoot","useGlobalStyle","unlock","blockEditorPrivateApis","customCSS","hasVariations","canEditCSS","useSelect","select","_globalStyles$_links$","getEntityRecord","__experimentalGetCurrentGlobalStylesId","__experimentalGetCurrentThemeGlobalStylesVariations","coreStore","globalStylesId","globalStyles","undefined","length","_links","_react","createElement","Card","size","className","CardBody","__experimentalVStack","spacing","CardMedia","default","__experimentalItemGroup","NavigationButtonAsItem","path","__","__experimentalHStack","justify","FlexItem","IconWithCurrentColor","icon","isRTL","chevronLeft","chevronRight","CardDivider","__experimentalSpacer","as","paddingTop","paddingX","marginBottom","Fragment","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-root.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalVStack as VStack,\n\tFlexItem,\n\tCardBody,\n\tCard,\n\tCardDivider,\n\tCardMedia,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { IconWithCurrentColor } from './icon-with-current-color';\nimport { NavigationButtonAsItem } from './navigation-button';\nimport RootMenu from './root-menu';\nimport StylesPreview from './preview';\nimport { unlock } from '../../lock-unlock';\n\nfunction ScreenRoot() {\n\tconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\tconst [ customCSS ] = useGlobalStyle( 'css' );\n\n\tconst { hasVariations, canEditCSS } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEntityRecord,\n\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\t__experimentalGetCurrentThemeGlobalStylesVariations,\n\t\t} = select( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\thasVariations:\n\t\t\t\t!! __experimentalGetCurrentThemeGlobalStylesVariations()\n\t\t\t\t\t?.length,\n\t\t\tcanEditCSS:\n\t\t\t\t!! globalStyles?._links?.[ 'wp:action-edit-css' ] ?? false,\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Card size=\"small\" className=\"edit-site-global-styles-screen-root\">\n\t\t\t<CardBody>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<Card>\n\t\t\t\t\t\t<CardMedia>\n\t\t\t\t\t\t\t<StylesPreview />\n\t\t\t\t\t\t</CardMedia>\n\t\t\t\t\t</Card>\n\t\t\t\t\t{ hasVariations && (\n\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\t\t\tpath=\"/variations\"\n\t\t\t\t\t\t\t\taria-label={ __( 'Browse styles' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Browse styles' ) }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<IconWithCurrentColor\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronLeft : chevronRight\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</HStack>\n\t\t\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<RootMenu />\n\t\t\t\t</VStack>\n\t\t\t</CardBody>\n\n\t\t\t<CardDivider />\n\n\t\t\t<CardBody>\n\t\t\t\t<Spacer\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tpaddingTop={ 2 }\n\t\t\t\t\t/*\n\t\t\t\t\t * 13px matches the text inset of the NavigationButton (12px padding, plus the width of the button's border).\n\t\t\t\t\t * This is an ad hoc override for this instance and the Addtional CSS option below. Other options for matching the\n\t\t\t\t\t * the nav button inset should be looked at before reusing further.\n\t\t\t\t\t */\n\t\t\t\t\tpaddingX=\"13px\"\n\t\t\t\t\tmarginBottom={ 4 }\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Customize the appearance of specific blocks for the whole site.'\n\t\t\t\t\t) }\n\t\t\t\t</Spacer>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\tpath=\"/blocks\"\n\t\t\t\t\t\taria-label={ __( 'Blocks styles' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t<FlexItem>{ __( 'Blocks' ) }</FlexItem>\n\t\t\t\t\t\t\t<IconWithCurrentColor\n\t\t\t\t\t\t\t\ticon={ isRTL() ? chevronLeft : chevronRight }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t</ItemGroup>\n\t\t\t</CardBody>\n\n\t\t\t{ canEditCSS && !! customCSS && (\n\t\t\t\t<>\n\t\t\t\t\t<CardDivider />\n\t\t\t\t\t<CardBody>\n\t\t\t\t\t\t<Spacer\n\t\t\t\t\t\t\tas=\"p\"\n\t\t\t\t\t\t\tpaddingTop={ 2 }\n\t\t\t\t\t\t\tpaddingX=\"13px\"\n\t\t\t\t\t\t\tmarginBottom={ 4 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Add your own CSS to customize the appearance and layout of your site.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\t\t\tpath=\"/css\"\n\t\t\t\t\t\t\t\taria-label={ __( 'Additional CSS' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Additional CSS' ) }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<IconWithCurrentColor\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronLeft : chevronRight\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</HStack>\n\t\t\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</CardBody>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</Card>\n\t);\n}\n\nexport default ScreenRoot;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_i18n","_icons","_data","_coreData","_blockEditor","_iconWithCurrentColor","_navigationButton","_rootMenu","_interopRequireDefault","_preview","_lockUnlock","ScreenRoot","useGlobalStyle","unlock","blockEditorPrivateApis","customCSS","hasVariations","canEditCSS","useSelect","select","getEntityRecord","__experimentalGetCurrentGlobalStylesId","__experimentalGetCurrentThemeGlobalStylesVariations","coreStore","globalStylesId","globalStyles","undefined","length","_links","_react","createElement","Card","size","className","CardBody","__experimentalVStack","spacing","CardMedia","default","__experimentalItemGroup","NavigationButtonAsItem","path","__","__experimentalHStack","justify","FlexItem","IconWithCurrentColor","icon","isRTL","chevronLeft","chevronRight","CardDivider","__experimentalSpacer","as","paddingTop","paddingX","marginBottom","Fragment","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-root.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalVStack as VStack,\n\tFlexItem,\n\tCardBody,\n\tCard,\n\tCardDivider,\n\tCardMedia,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { IconWithCurrentColor } from './icon-with-current-color';\nimport { NavigationButtonAsItem } from './navigation-button';\nimport RootMenu from './root-menu';\nimport StylesPreview from './preview';\nimport { unlock } from '../../lock-unlock';\n\nfunction ScreenRoot() {\n\tconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\tconst [ customCSS ] = useGlobalStyle( 'css' );\n\n\tconst { hasVariations, canEditCSS } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEntityRecord,\n\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\t__experimentalGetCurrentThemeGlobalStylesVariations,\n\t\t} = select( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\thasVariations:\n\t\t\t\t!! __experimentalGetCurrentThemeGlobalStylesVariations()\n\t\t\t\t\t?.length,\n\t\t\tcanEditCSS: !! globalStyles?._links?.[ 'wp:action-edit-css' ],\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Card size=\"small\" className=\"edit-site-global-styles-screen-root\">\n\t\t\t<CardBody>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<Card>\n\t\t\t\t\t\t<CardMedia>\n\t\t\t\t\t\t\t<StylesPreview />\n\t\t\t\t\t\t</CardMedia>\n\t\t\t\t\t</Card>\n\t\t\t\t\t{ hasVariations && (\n\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\t\t\tpath=\"/variations\"\n\t\t\t\t\t\t\t\taria-label={ __( 'Browse styles' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Browse styles' ) }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<IconWithCurrentColor\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronLeft : chevronRight\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</HStack>\n\t\t\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<RootMenu />\n\t\t\t\t</VStack>\n\t\t\t</CardBody>\n\n\t\t\t<CardDivider />\n\n\t\t\t<CardBody>\n\t\t\t\t<Spacer\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tpaddingTop={ 2 }\n\t\t\t\t\t/*\n\t\t\t\t\t * 13px matches the text inset of the NavigationButton (12px padding, plus the width of the button's border).\n\t\t\t\t\t * This is an ad hoc override for this instance and the Addtional CSS option below. Other options for matching the\n\t\t\t\t\t * the nav button inset should be looked at before reusing further.\n\t\t\t\t\t */\n\t\t\t\t\tpaddingX=\"13px\"\n\t\t\t\t\tmarginBottom={ 4 }\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Customize the appearance of specific blocks for the whole site.'\n\t\t\t\t\t) }\n\t\t\t\t</Spacer>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\tpath=\"/blocks\"\n\t\t\t\t\t\taria-label={ __( 'Blocks styles' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t<FlexItem>{ __( 'Blocks' ) }</FlexItem>\n\t\t\t\t\t\t\t<IconWithCurrentColor\n\t\t\t\t\t\t\t\ticon={ isRTL() ? chevronLeft : chevronRight }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t</ItemGroup>\n\t\t\t</CardBody>\n\n\t\t\t{ canEditCSS && !! customCSS && (\n\t\t\t\t<>\n\t\t\t\t\t<CardDivider />\n\t\t\t\t\t<CardBody>\n\t\t\t\t\t\t<Spacer\n\t\t\t\t\t\t\tas=\"p\"\n\t\t\t\t\t\t\tpaddingTop={ 2 }\n\t\t\t\t\t\t\tpaddingX=\"13px\"\n\t\t\t\t\t\t\tmarginBottom={ 4 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Add your own CSS to customize the appearance and layout of your site.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\t\t\tpath=\"/css\"\n\t\t\t\t\t\t\t\taria-label={ __( 'Additional CSS' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Additional CSS' ) }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<IconWithCurrentColor\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronLeft : chevronRight\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</HStack>\n\t\t\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</CardBody>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</Card>\n\t);\n}\n\nexport default ScreenRoot;\n"],"mappings":"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"}
@@ -57,7 +57,6 @@ function GlobalStylesActionMenu() {
57
57
  const {
58
58
  canEditCSS
59
59
  } = (0, _data.useSelect)(select => {
60
- var _globalStyles$_links$;
61
60
  const {
62
61
  getEntityRecord,
63
62
  __experimentalGetCurrentGlobalStylesId
@@ -65,7 +64,7 @@ function GlobalStylesActionMenu() {
65
64
  const globalStylesId = __experimentalGetCurrentGlobalStylesId();
66
65
  const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
67
66
  return {
68
- canEditCSS: (_globalStyles$_links$ = !!globalStyles?._links?.['wp:action-edit-css']) !== null && _globalStyles$_links$ !== void 0 ? _globalStyles$_links$ : false
67
+ canEditCSS: !!globalStyles?._links?.['wp:action-edit-css']
69
68
  };
70
69
  }, []);
71
70
  const {
@@ -101,7 +100,7 @@ function GlobalStylesRevisionsMenu() {
101
100
  const {
102
101
  revisionsCount
103
102
  } = (0, _data.useSelect)(select => {
104
- var _globalStyles$_links$2;
103
+ var _globalStyles$_links$;
105
104
  const {
106
105
  getEntityRecord,
107
106
  __experimentalGetCurrentGlobalStylesId
@@ -109,7 +108,7 @@ function GlobalStylesRevisionsMenu() {
109
108
  const globalStylesId = __experimentalGetCurrentGlobalStylesId();
110
109
  const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
111
110
  return {
112
- revisionsCount: (_globalStyles$_links$2 = globalStyles?._links?.['version-history']?.[0]?.count) !== null && _globalStyles$_links$2 !== void 0 ? _globalStyles$_links$2 : 0
111
+ revisionsCount: (_globalStyles$_links$ = globalStyles?._links?.['version-history']?.[0]?.count) !== null && _globalStyles$_links$ !== void 0 ? _globalStyles$_links$ : 0
113
112
  };
114
113
  }, []);
115
114
  const {