@wordpress/edit-site 5.27.1 → 5.27.2

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 (109) hide show
  1. package/build/components/block-editor/back-button.js +2 -3
  2. package/build/components/block-editor/back-button.js.map +1 -1
  3. package/build/components/block-editor/site-editor-canvas.js +8 -2
  4. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  5. package/build/components/block-editor/use-post-link-props.js +5 -1
  6. package/build/components/block-editor/use-post-link-props.js.map +1 -1
  7. package/build/components/editor/index.js +7 -7
  8. package/build/components/editor/index.js.map +1 -1
  9. package/build/components/global-styles/font-library-modal/context.js +14 -0
  10. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  11. package/build/components/global-styles/font-library-modal/font-collection.js +17 -33
  12. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  13. package/build/components/global-styles/font-library-modal/font-demo.js +1 -1
  14. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  15. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  16. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  17. package/build/components/global-styles/font-library-modal/index.js +10 -3
  18. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  19. package/build/components/global-styles/font-library-modal/installed-fonts.js +8 -21
  20. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  21. package/build/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  22. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  23. package/build/components/global-styles/font-library-modal/resolvers.js +1 -1
  24. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  25. package/build/components/global-styles/font-library-modal/tab-panel-layout.js +9 -1
  26. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  27. package/build/components/global-styles/font-library-modal/upload-fonts.js +160 -4
  28. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  29. package/build/components/global-styles/font-library-modal/utils/index.js +33 -31
  30. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  31. package/build/components/routes/link.js +1 -1
  32. package/build/components/routes/link.js.map +1 -1
  33. package/build/components/sidebar-edit-mode/index.js +1 -2
  34. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  35. package/build/components/sidebar-edit-mode/settings-header/index.js +7 -36
  36. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  37. package/build/components/welcome-guide/template.js +2 -2
  38. package/build/components/welcome-guide/template.js.map +1 -1
  39. package/build/hooks/commands/use-edit-mode-commands.js +16 -6
  40. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  41. package/build-module/components/block-editor/back-button.js +2 -3
  42. package/build-module/components/block-editor/back-button.js.map +1 -1
  43. package/build-module/components/block-editor/site-editor-canvas.js +8 -2
  44. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  45. package/build-module/components/block-editor/use-post-link-props.js +5 -1
  46. package/build-module/components/block-editor/use-post-link-props.js.map +1 -1
  47. package/build-module/components/editor/index.js +7 -7
  48. package/build-module/components/editor/index.js.map +1 -1
  49. package/build-module/components/global-styles/font-library-modal/context.js +14 -0
  50. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  51. package/build-module/components/global-styles/font-library-modal/font-collection.js +19 -35
  52. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  53. package/build-module/components/global-styles/font-library-modal/font-demo.js +1 -1
  54. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  55. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  56. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  57. package/build-module/components/global-styles/font-library-modal/index.js +10 -3
  58. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  59. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +9 -22
  60. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  61. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  62. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  63. package/build-module/components/global-styles/font-library-modal/resolvers.js +1 -1
  64. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  65. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +10 -2
  66. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
  67. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +162 -6
  68. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  69. package/build-module/components/global-styles/font-library-modal/utils/index.js +32 -30
  70. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  71. package/build-module/components/routes/link.js +1 -1
  72. package/build-module/components/routes/link.js.map +1 -1
  73. package/build-module/components/sidebar-edit-mode/index.js +1 -2
  74. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  75. package/build-module/components/sidebar-edit-mode/settings-header/index.js +7 -36
  76. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  77. package/build-module/components/welcome-guide/template.js +2 -2
  78. package/build-module/components/welcome-guide/template.js.map +1 -1
  79. package/build-module/hooks/commands/use-edit-mode-commands.js +16 -6
  80. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  81. package/build-style/style-rtl.css +4 -6
  82. package/build-style/style.css +4 -6
  83. package/package.json +11 -11
  84. package/src/components/block-editor/back-button.js +6 -3
  85. package/src/components/block-editor/site-editor-canvas.js +19 -12
  86. package/src/components/block-editor/use-post-link-props.js +5 -1
  87. package/src/components/editor/index.js +4 -9
  88. package/src/components/global-styles/font-library-modal/context.js +14 -0
  89. package/src/components/global-styles/font-library-modal/font-collection.js +16 -40
  90. package/src/components/global-styles/font-library-modal/font-demo.js +1 -1
  91. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  92. package/src/components/global-styles/font-library-modal/index.js +8 -3
  93. package/src/components/global-styles/font-library-modal/installed-fonts.js +12 -31
  94. package/src/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  95. package/src/components/global-styles/font-library-modal/resolvers.js +1 -1
  96. package/src/components/global-styles/font-library-modal/style.scss +0 -10
  97. package/src/components/global-styles/font-library-modal/tab-panel-layout.js +15 -0
  98. package/src/components/global-styles/font-library-modal/upload-fonts.js +201 -6
  99. package/src/components/global-styles/font-library-modal/utils/index.js +44 -38
  100. package/src/components/routes/link.js +1 -1
  101. package/src/components/sidebar-edit-mode/index.js +1 -4
  102. package/src/components/sidebar-edit-mode/settings-header/index.js +12 -34
  103. package/src/components/welcome-guide/template.js +2 -2
  104. package/src/hooks/commands/use-edit-mode-commands.js +26 -14
  105. package/build/components/global-styles/font-library-modal/local-fonts.js +0 -196
  106. package/build/components/global-styles/font-library-modal/local-fonts.js.map +0 -1
  107. package/build-module/components/global-styles/font-library-modal/local-fonts.js +0 -187
  108. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +0 -1
  109. package/src/components/global-styles/font-library-modal/local-fonts.js +0 -239
@@ -29,9 +29,8 @@ function BackButton() {
29
29
  const isTemplatePart = location.params.postType === _constants.TEMPLATE_PART_POST_TYPE;
30
30
  const isNavigationMenu = location.params.postType === _constants.NAVIGATION_POST_TYPE;
31
31
  const isPattern = location.params.postType === _constants.PATTERN_TYPES.user;
32
- const previousTemplateId = location.state?.fromTemplateId;
33
- const isFocusMode = isTemplatePart || isNavigationMenu || isPattern;
34
- if (!isFocusMode || !previousTemplateId && !isPattern) {
32
+ const isFocusMode = location.params.focusMode || isTemplatePart || isNavigationMenu || isPattern;
33
+ if (!isFocusMode) {
35
34
  return null;
36
35
  }
37
36
  return (0, _react.createElement)(_components.Button, {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_icons","_i18n","_router","_constants","_lockUnlock","useLocation","useHistory","unlock","routerPrivateApis","BackButton","location","history","isTemplatePart","params","postType","TEMPLATE_PART_POST_TYPE","isNavigationMenu","NAVIGATION_POST_TYPE","isPattern","PATTERN_TYPES","user","previousTemplateId","state","fromTemplateId","isFocusMode","_react","createElement","Button","className","icon","arrowLeft","onClick","back","__","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/block-editor/back-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { arrowLeft } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nfunction BackButton() {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst isTemplatePart = location.params.postType === TEMPLATE_PART_POST_TYPE;\n\tconst isNavigationMenu = location.params.postType === NAVIGATION_POST_TYPE;\n\tconst isPattern = location.params.postType === PATTERN_TYPES.user;\n\tconst previousTemplateId = location.state?.fromTemplateId;\n\n\tconst isFocusMode = isTemplatePart || isNavigationMenu || isPattern;\n\n\tif ( ! isFocusMode || ( ! previousTemplateId && ! isPattern ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"edit-site-visual-editor__back-button\"\n\t\t\ticon={ arrowLeft }\n\t\t\tonClick={ () => {\n\t\t\t\thistory.back();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Back' ) }\n\t\t</Button>\n\t);\n}\n\nexport default BackButton;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,UAAA,GAAAJ,OAAA;AAKA,IAAAK,WAAA,GAAAL,OAAA;AAhBA;AACA;AACA;;AAMA;AACA;AACA;;AAQA,MAAM;EAAEM,WAAW;EAAEC;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAE/D,SAASC,UAAUA,CAAA,EAAG;EACrB,MAAMC,QAAQ,GAAGL,WAAW,CAAC,CAAC;EAC9B,MAAMM,OAAO,GAAGL,UAAU,CAAC,CAAC;EAC5B,MAAMM,cAAc,GAAGF,QAAQ,CAACG,MAAM,CAACC,QAAQ,KAAKC,kCAAuB;EAC3E,MAAMC,gBAAgB,GAAGN,QAAQ,CAACG,MAAM,CAACC,QAAQ,KAAKG,+BAAoB;EAC1E,MAAMC,SAAS,GAAGR,QAAQ,CAACG,MAAM,CAACC,QAAQ,KAAKK,wBAAa,CAACC,IAAI;EACjE,MAAMC,kBAAkB,GAAGX,QAAQ,CAACY,KAAK,EAAEC,cAAc;EAEzD,MAAMC,WAAW,GAAGZ,cAAc,IAAII,gBAAgB,IAAIE,SAAS;EAEnE,IAAK,CAAEM,WAAW,IAAM,CAAEH,kBAAkB,IAAI,CAAEH,SAAW,EAAG;IAC/D,OAAO,IAAI;EACZ;EAEA,OACC,IAAAO,MAAA,CAAAC,aAAA,EAAC5B,WAAA,CAAA6B,MAAM;IACNC,SAAS,EAAC,sCAAsC;IAChDC,IAAI,EAAGC,gBAAW;IAClBC,OAAO,EAAGA,CAAA,KAAM;MACfpB,OAAO,CAACqB,IAAI,CAAC,CAAC;IACf;EAAG,GAED,IAAAC,QAAE,EAAE,MAAO,CACN,CAAC;AAEX;AAAC,IAAAC,QAAA,GAEczB,UAAU;AAAA0B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_components","require","_icons","_i18n","_router","_constants","_lockUnlock","useLocation","useHistory","unlock","routerPrivateApis","BackButton","location","history","isTemplatePart","params","postType","TEMPLATE_PART_POST_TYPE","isNavigationMenu","NAVIGATION_POST_TYPE","isPattern","PATTERN_TYPES","user","isFocusMode","focusMode","_react","createElement","Button","className","icon","arrowLeft","onClick","back","__","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/block-editor/back-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { arrowLeft } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nfunction BackButton() {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst isTemplatePart = location.params.postType === TEMPLATE_PART_POST_TYPE;\n\tconst isNavigationMenu = location.params.postType === NAVIGATION_POST_TYPE;\n\tconst isPattern = location.params.postType === PATTERN_TYPES.user;\n\n\tconst isFocusMode =\n\t\tlocation.params.focusMode ||\n\t\tisTemplatePart ||\n\t\tisNavigationMenu ||\n\t\tisPattern;\n\n\tif ( ! isFocusMode ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"edit-site-visual-editor__back-button\"\n\t\t\ticon={ arrowLeft }\n\t\t\tonClick={ () => {\n\t\t\t\thistory.back();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Back' ) }\n\t\t</Button>\n\t);\n}\n\nexport default BackButton;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,UAAA,GAAAJ,OAAA;AAKA,IAAAK,WAAA,GAAAL,OAAA;AAhBA;AACA;AACA;;AAMA;AACA;AACA;;AAQA,MAAM;EAAEM,WAAW;EAAEC;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAE/D,SAASC,UAAUA,CAAA,EAAG;EACrB,MAAMC,QAAQ,GAAGL,WAAW,CAAC,CAAC;EAC9B,MAAMM,OAAO,GAAGL,UAAU,CAAC,CAAC;EAC5B,MAAMM,cAAc,GAAGF,QAAQ,CAACG,MAAM,CAACC,QAAQ,KAAKC,kCAAuB;EAC3E,MAAMC,gBAAgB,GAAGN,QAAQ,CAACG,MAAM,CAACC,QAAQ,KAAKG,+BAAoB;EAC1E,MAAMC,SAAS,GAAGR,QAAQ,CAACG,MAAM,CAACC,QAAQ,KAAKK,wBAAa,CAACC,IAAI;EAEjE,MAAMC,WAAW,GAChBX,QAAQ,CAACG,MAAM,CAACS,SAAS,IACzBV,cAAc,IACdI,gBAAgB,IAChBE,SAAS;EAEV,IAAK,CAAEG,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,OACC,IAAAE,MAAA,CAAAC,aAAA,EAAC1B,WAAA,CAAA2B,MAAM;IACNC,SAAS,EAAC,sCAAsC;IAChDC,IAAI,EAAGC,gBAAW;IAClBC,OAAO,EAAGA,CAAA,KAAM;MACflB,OAAO,CAACmB,IAAI,CAAC,CAAC;IACf;EAAG,GAED,IAAAC,QAAE,EAAE,MAAO,CACN,CAAC;AAEX;AAAC,IAAAC,QAAA,GAEcvB,UAAU;AAAAwB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -17,6 +17,7 @@ var _useSiteEditorSettings = _interopRequireDefault(require("./use-site-editor-s
17
17
  var _store = require("../../store");
18
18
  var _constants = require("../../utils/constants");
19
19
  var _lockUnlock = require("../../lock-unlock");
20
+ var _router = require("@wordpress/router");
20
21
  /**
21
22
  * External dependencies
22
23
  */
@@ -29,10 +30,14 @@ var _lockUnlock = require("../../lock-unlock");
29
30
  * Internal dependencies
30
31
  */
31
32
 
33
+ const {
34
+ useLocation
35
+ } = (0, _lockUnlock.unlock)(_router.privateApis);
32
36
  function SiteEditorCanvas() {
37
+ const location = useLocation();
33
38
  const {
34
39
  templateType,
35
- isFocusMode,
40
+ isFocusableEntity,
36
41
  isViewMode
37
42
  } = (0, _data.useSelect)(select => {
38
43
  const {
@@ -42,10 +47,11 @@ function SiteEditorCanvas() {
42
47
  const _templateType = getEditedPostType();
43
48
  return {
44
49
  templateType: _templateType,
45
- isFocusMode: _constants.FOCUSABLE_ENTITIES.includes(_templateType),
50
+ isFocusableEntity: _constants.FOCUSABLE_ENTITIES.includes(_templateType),
46
51
  isViewMode: getCanvasMode() === 'view'
47
52
  };
48
53
  }, []);
54
+ const isFocusMode = location.params.focusMode || isFocusableEntity;
49
55
  const [resizeObserver, sizes] = (0, _compose.useResizeObserver)();
50
56
  const settings = (0, _useSiteEditorSettings.default)();
51
57
  const isMobileViewport = (0, _compose.useViewportMatch)('small', '<');
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_compose","_backButton","_resizableEditor","_editorCanvas","_editorCanvasContainer","_useSiteEditorSettings","_store","_constants","_lockUnlock","SiteEditorCanvas","templateType","isFocusMode","isViewMode","useSelect","select","getEditedPostType","getCanvasMode","unlock","editSiteStore","_templateType","FOCUSABLE_ENTITIES","includes","resizeObserver","sizes","useResizeObserver","settings","useSiteEditorSettings","isMobileViewport","useViewportMatch","enableResizing","isTemplateTypeNavigation","NAVIGATION_POST_TYPE","isNavigationFocusMode","forceFullHeight","_react","createElement","default","Slot","editorCanvasView","className","classnames","height"],"sources":["@wordpress/edit-site/src/components/block-editor/site-editor-canvas.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useViewportMatch, useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BackButton from './back-button';\nimport ResizableEditor from './resizable-editor';\nimport EditorCanvas from './editor-canvas';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport useSiteEditorSettings from './use-site-editor-settings';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tFOCUSABLE_ENTITIES,\n\tNAVIGATION_POST_TYPE,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nexport default function SiteEditorCanvas() {\n\tconst { templateType, isFocusMode, isViewMode } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\n\t\tconst _templateType = getEditedPostType();\n\n\t\treturn {\n\t\t\ttemplateType: _templateType,\n\t\t\tisFocusMode: FOCUSABLE_ENTITIES.includes( _templateType ),\n\t\t\tisViewMode: getCanvasMode() === 'view',\n\t\t};\n\t}, [] );\n\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\n\tconst settings = useSiteEditorSettings();\n\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst enableResizing =\n\t\tisFocusMode &&\n\t\t! isViewMode &&\n\t\t// Disable resizing in mobile viewport.\n\t\t! isMobileViewport;\n\n\tconst isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;\n\tconst isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;\n\tconst forceFullHeight = isNavigationFocusMode;\n\n\treturn (\n\t\t<EditorCanvasContainer.Slot>\n\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t<div className=\"edit-site-visual-editor is-focus-mode\">\n\t\t\t\t\t\t{ editorCanvasView }\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'edit-site-visual-editor', {\n\t\t\t\t\t\t\t'is-focus-mode': isFocusMode || !! editorCanvasView,\n\t\t\t\t\t\t\t'is-view-mode': isViewMode,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BackButton />\n\t\t\t\t\t\t<ResizableEditor\n\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\theight={\n\t\t\t\t\t\t\t\tsizes.height && ! forceFullHeight\n\t\t\t\t\t\t\t\t\t? sizes.height\n\t\t\t\t\t\t\t\t\t: '100%'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<EditorCanvas\n\t\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ resizeObserver }\n\t\t\t\t\t\t\t</EditorCanvas>\n\t\t\t\t\t\t</ResizableEditor>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</EditorCanvasContainer.Slot>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,gBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,aAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,sBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,sBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AAIA,IAAAU,WAAA,GAAAV,OAAA;AAvBA;AACA;AACA;;AAEA;AACA;AACA;;AAIA;AACA;AACA;;AAae,SAASW,gBAAgBA,CAAA,EAAG;EAC1C,MAAM;IAAEC,YAAY;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC1E,MAAM;MAAEC,iBAAiB;MAAEC;IAAc,CAAC,GAAG,IAAAC,kBAAM,EAClDH,MAAM,CAAEI,YAAc,CACvB,CAAC;IAED,MAAMC,aAAa,GAAGJ,iBAAiB,CAAC,CAAC;IAEzC,OAAO;MACNL,YAAY,EAAES,aAAa;MAC3BR,WAAW,EAAES,6BAAkB,CAACC,QAAQ,CAAEF,aAAc,CAAC;MACzDP,UAAU,EAAEI,aAAa,CAAC,CAAC,KAAK;IACjC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM,CAAEM,cAAc,EAAEC,KAAK,CAAE,GAAG,IAAAC,0BAAiB,EAAC,CAAC;EAErD,MAAMC,QAAQ,GAAG,IAAAC,8BAAqB,EAAC,CAAC;EAExC,MAAMC,gBAAgB,GAAG,IAAAC,yBAAgB,EAAE,OAAO,EAAE,GAAI,CAAC;EACzD,MAAMC,cAAc,GACnBlB,WAAW,IACX,CAAEC,UAAU;EACZ;EACA,CAAEe,gBAAgB;EAEnB,MAAMG,wBAAwB,GAAGpB,YAAY,KAAKqB,+BAAoB;EACtE,MAAMC,qBAAqB,GAAGF,wBAAwB,IAAInB,WAAW;EACrE,MAAMsB,eAAe,GAAGD,qBAAqB;EAE7C,OACC,IAAAE,MAAA,CAAAC,aAAA,EAAC/B,sBAAA,CAAAgC,OAAqB,CAACC,IAAI,QACxB,CAAE,CAAEC,gBAAgB,CAAE,KACvBA,gBAAgB,GACf,IAAAJ,MAAA,CAAAC,aAAA;IAAKI,SAAS,EAAC;EAAuC,GACnDD,gBACE,CAAC,GAEN,IAAAJ,MAAA,CAAAC,aAAA;IACCI,SAAS,EAAG,IAAAC,mBAAU,EAAE,yBAAyB,EAAE;MAClD,eAAe,EAAE7B,WAAW,IAAI,CAAC,CAAE2B,gBAAgB;MACnD,cAAc,EAAE1B;IACjB,CAAE;EAAG,GAEL,IAAAsB,MAAA,CAAAC,aAAA,EAAClC,WAAA,CAAAmC,OAAU,MAAE,CAAC,EACd,IAAAF,MAAA,CAAAC,aAAA,EAACjC,gBAAA,CAAAkC,OAAe;IACfP,cAAc,EAAGA,cAAgB;IACjCY,MAAM,EACLlB,KAAK,CAACkB,MAAM,IAAI,CAAER,eAAe,GAC9BV,KAAK,CAACkB,MAAM,GACZ;EACH,GAED,IAAAP,MAAA,CAAAC,aAAA,EAAChC,aAAA,CAAAiC,OAAY;IACZP,cAAc,EAAGA,cAAgB;IACjCJ,QAAQ,EAAGA;EAAU,GAEnBH,cACW,CACE,CACb,CAGoB,CAAC;AAE/B"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_compose","_backButton","_resizableEditor","_editorCanvas","_editorCanvasContainer","_useSiteEditorSettings","_store","_constants","_lockUnlock","_router","useLocation","unlock","routerPrivateApis","SiteEditorCanvas","location","templateType","isFocusableEntity","isViewMode","useSelect","select","getEditedPostType","getCanvasMode","editSiteStore","_templateType","FOCUSABLE_ENTITIES","includes","isFocusMode","params","focusMode","resizeObserver","sizes","useResizeObserver","settings","useSiteEditorSettings","isMobileViewport","useViewportMatch","enableResizing","isTemplateTypeNavigation","NAVIGATION_POST_TYPE","isNavigationFocusMode","forceFullHeight","_react","createElement","default","Slot","editorCanvasView","className","classnames","height"],"sources":["@wordpress/edit-site/src/components/block-editor/site-editor-canvas.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useViewportMatch, useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BackButton from './back-button';\nimport ResizableEditor from './resizable-editor';\nimport EditorCanvas from './editor-canvas';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport useSiteEditorSettings from './use-site-editor-settings';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tFOCUSABLE_ENTITIES,\n\tNAVIGATION_POST_TYPE,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function SiteEditorCanvas() {\n\tconst location = useLocation();\n\tconst { templateType, isFocusableEntity, isViewMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostType, getCanvasMode } = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t);\n\n\t\t\tconst _templateType = getEditedPostType();\n\n\t\t\treturn {\n\t\t\t\ttemplateType: _templateType,\n\t\t\t\tisFocusableEntity: FOCUSABLE_ENTITIES.includes( _templateType ),\n\t\t\t\tisViewMode: getCanvasMode() === 'view',\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst isFocusMode = location.params.focusMode || isFocusableEntity;\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\n\tconst settings = useSiteEditorSettings();\n\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst enableResizing =\n\t\tisFocusMode &&\n\t\t! isViewMode &&\n\t\t// Disable resizing in mobile viewport.\n\t\t! isMobileViewport;\n\n\tconst isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;\n\tconst isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;\n\tconst forceFullHeight = isNavigationFocusMode;\n\n\treturn (\n\t\t<EditorCanvasContainer.Slot>\n\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t<div className=\"edit-site-visual-editor is-focus-mode\">\n\t\t\t\t\t\t{ editorCanvasView }\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'edit-site-visual-editor', {\n\t\t\t\t\t\t\t'is-focus-mode': isFocusMode || !! editorCanvasView,\n\t\t\t\t\t\t\t'is-view-mode': isViewMode,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BackButton />\n\t\t\t\t\t\t<ResizableEditor\n\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\theight={\n\t\t\t\t\t\t\t\tsizes.height && ! forceFullHeight\n\t\t\t\t\t\t\t\t\t? sizes.height\n\t\t\t\t\t\t\t\t\t: '100%'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<EditorCanvas\n\t\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ resizeObserver }\n\t\t\t\t\t\t\t</EditorCanvas>\n\t\t\t\t\t\t</ResizableEditor>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</EditorCanvasContainer.Slot>\n\t);\n}\n"],"mappings":"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"}
@@ -21,7 +21,11 @@ const {
21
21
  function usePostLinkProps() {
22
22
  const history = useHistory();
23
23
  return (params, state) => {
24
- return (0, _link.getPostLinkProps)(history, params, state);
24
+ return (0, _link.getPostLinkProps)(history, {
25
+ ...params,
26
+ focusMode: true,
27
+ canvas: 'edit'
28
+ }, state);
25
29
  };
26
30
  }
27
31
  //# sourceMappingURL=use-post-link-props.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_router","require","_lockUnlock","_link","useHistory","unlock","routerPrivateApis","usePostLinkProps","history","params","state","getPostLinkProps"],"sources":["@wordpress/edit-site/src/components/block-editor/use-post-link-props.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { getPostLinkProps } from '../routes/link';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport function usePostLinkProps() {\n\tconst history = useHistory();\n\n\treturn ( params, state ) => {\n\t\treturn getPostLinkProps( history, params, state );\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIA,MAAM;EAAEG;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAE3C,SAASC,gBAAgBA,CAAA,EAAG;EAClC,MAAMC,OAAO,GAAGJ,UAAU,CAAC,CAAC;EAE5B,OAAO,CAAEK,MAAM,EAAEC,KAAK,KAAM;IAC3B,OAAO,IAAAC,sBAAgB,EAAEH,OAAO,EAAEC,MAAM,EAAEC,KAAM,CAAC;EAClD,CAAC;AACF"}
1
+ {"version":3,"names":["_router","require","_lockUnlock","_link","useHistory","unlock","routerPrivateApis","usePostLinkProps","history","params","state","getPostLinkProps","focusMode","canvas"],"sources":["@wordpress/edit-site/src/components/block-editor/use-post-link-props.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { getPostLinkProps } from '../routes/link';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport function usePostLinkProps() {\n\tconst history = useHistory();\n\n\treturn ( params, state ) => {\n\t\treturn getPostLinkProps(\n\t\t\thistory,\n\t\t\t{ ...params, focusMode: true, canvas: 'edit' },\n\t\t\tstate\n\t\t);\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIA,MAAM;EAAEG;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAE3C,SAASC,gBAAgBA,CAAA,EAAG;EAClC,MAAMC,OAAO,GAAGJ,UAAU,CAAC,CAAC;EAE5B,OAAO,CAAEK,MAAM,EAAEC,KAAK,KAAM;IAC3B,OAAO,IAAAC,sBAAgB,EACtBH,OAAO,EACP;MAAE,GAAGC,MAAM;MAAEG,SAAS,EAAE,IAAI;MAAEC,MAAM,EAAE;IAAO,CAAC,EAC9CH,KACD,CAAC;EACF,CAAC;AACF"}
@@ -87,13 +87,13 @@ function Editor({
87
87
  contextPost,
88
88
  editorMode,
89
89
  canvasMode,
90
- renderingMode,
91
90
  blockEditorMode,
92
91
  isRightSidebarOpen,
93
92
  isInserterOpen,
94
93
  isListViewOpen,
95
94
  showIconLabels,
96
- showBlockBreadcrumbs
95
+ showBlockBreadcrumbs,
96
+ postTypeLabel
97
97
  } = (0, _data.useSelect)(select => {
98
98
  const {
99
99
  get
@@ -113,9 +113,9 @@ function Editor({
113
113
  getEntityRecord
114
114
  } = select(_coreData.store);
115
115
  const {
116
- getRenderingMode,
117
116
  isInserterOpened,
118
- isListViewOpened
117
+ isListViewOpened,
118
+ getPostTypeLabel
119
119
  } = select(_editor.store);
120
120
  const _context = getEditedPostContext();
121
121
 
@@ -126,13 +126,13 @@ function Editor({
126
126
  contextPost: _context?.postId ? getEntityRecord('postType', _context.postType, _context.postId) : undefined,
127
127
  editorMode: getEditorMode(),
128
128
  canvasMode: getCanvasMode(),
129
- renderingMode: getRenderingMode(),
130
129
  blockEditorMode: __unstableGetEditorMode(),
131
130
  isInserterOpen: isInserterOpened(),
132
131
  isListViewOpen: isListViewOpened(),
133
132
  isRightSidebarOpen: getActiveComplementaryArea(_store.store.name),
134
133
  showBlockBreadcrumbs: get('core', 'showBlockBreadcrumbs'),
135
- showIconLabels: get('core', 'showIconLabels')
134
+ showIconLabels: get('core', 'showIconLabels'),
135
+ postTypeLabel: getPostTypeLabel()
136
136
  };
137
137
  }, []);
138
138
  const isViewMode = canvasMode === 'view';
@@ -184,7 +184,7 @@ function Editor({
184
184
  scope: "core/edit-site"
185
185
  })),
186
186
  footer: shouldShowBlockBreadcrumbs && (0, _react.createElement)(_blockEditor.BlockBreadcrumb, {
187
- rootLabelText: postWithTemplate && renderingMode !== 'template-only' ? (0, _i18n.__)('Page') : (0, _i18n.__)('Template')
187
+ rootLabelText: postTypeLabel
188
188
  }),
189
189
  labels: {
190
190
  ...interfaceLabels,
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_components","_compose","_preferences","_blockEditor","_interface","_editor","_i18n","_coreData","_sidebarEditMode","_codeEditor","_editMode","_welcomeGuide","_startTemplateOptions","_store","_globalStylesRenderer","_useTitle","_canvasLoader","_lockUnlock","_useEditedEntityRecord","_patternModal","_constants","_siteEditorCanvas","_templatePartConverter","_useSiteEditorSettings","BlockRemovalWarningModal","unlock","blockEditorPrivateApis","ExperimentalEditorProvider","EditorProvider","InserterSidebar","ListViewSidebar","editorPrivateApis","interfaceLabels","body","__","sidebar","actions","footer","blockRemovalRules","Editor","isLoading","record","editedPost","getTitle","isLoaded","hasLoadedPost","useEditedEntityRecord","type","editedPostType","isLargeViewport","useViewportMatch","context","contextPost","editorMode","canvasMode","renderingMode","blockEditorMode","isRightSidebarOpen","isInserterOpen","isListViewOpen","showIconLabels","showBlockBreadcrumbs","useSelect","select","get","preferencesStore","getEditedPostContext","getEditorMode","getCanvasMode","editSiteStore","__unstableGetEditorMode","blockEditorStore","getActiveComplementaryArea","interfaceStore","getEntityRecord","coreDataStore","getRenderingMode","isInserterOpened","isListViewOpened","editorStore","_context","postId","postType","undefined","name","isViewMode","isEditMode","showVisualEditor","shouldShowBlockBreadcrumbs","shouldShowInserter","shouldShowListView","secondarySidebarLabel","postWithTemplate","title","_POST_TYPE_LABELS$edi","sprintf","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","useTitle","loadingProgressId","useInstanceId","CanvasLoader","settings","useSpecificEditorSettings","isReady","_react","createElement","Fragment","default","id","Notice","status","isDismissible","post","__unstableTemplate","useSubRegistry","SidebarComplementaryAreaFills","InterfaceSkeleton","isDistractionFree","enableRegionNavigation","className","classnames","notices","EditorSnackbars","content","GlobalStylesRenderer","EditorNotices","SidebarInspectorFill","BlockInspector","BlockToolbar","hideDragHandle","rules","EditorKeyboardShortcutsRegister","EditorKeyboardShortcuts","secondarySidebar","ComplementaryArea","Slot","scope","BlockBreadcrumb","rootLabelText","labels"],"sources":["@wordpress/edit-site/src/components/editor/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { Notice } from '@wordpress/components';\nimport { useInstanceId, useViewportMatch } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tBlockBreadcrumb,\n\tBlockToolbar,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockInspector,\n} from '@wordpress/block-editor';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tEditorKeyboardShortcutsRegister,\n\tEditorKeyboardShortcuts,\n\tEditorNotices,\n\tEditorSnackbars,\n\tprivateApis as editorPrivateApis,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreDataStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarComplementaryAreaFills,\n\tSidebarInspectorFill,\n} from '../sidebar-edit-mode';\nimport CodeEditor from '../code-editor';\nimport KeyboardShortcutsEditMode from '../keyboard-shortcuts/edit-mode';\nimport WelcomeGuide from '../welcome-guide';\nimport StartTemplateOptions from '../start-template-options';\nimport { store as editSiteStore } from '../../store';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport useTitle from '../routes/use-title';\nimport CanvasLoader from '../canvas-loader';\nimport { unlock } from '../../lock-unlock';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport PatternModal from '../pattern-modal';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport SiteEditorCanvas from '../block-editor/site-editor-canvas';\nimport TemplatePartConverter from '../template-part-converter';\nimport { useSpecificEditorSettings } from '../block-editor/use-site-editor-settings';\n\nconst { BlockRemovalWarningModal } = unlock( blockEditorPrivateApis );\nconst {\n\tExperimentalEditorProvider: EditorProvider,\n\tInserterSidebar,\n\tListViewSidebar,\n} = unlock( editorPrivateApis );\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\n// Prevent accidental removal of certain blocks, asking the user for\n// confirmation.\nconst blockRemovalRules = {\n\t'core/query': __( 'Query Loop displays a list of posts or pages.' ),\n\t'core/post-content': __(\n\t\t'Post Content displays the content of a post or page.'\n\t),\n\t'core/post-template': __(\n\t\t'Post Template displays each post or page in a Query Loop.'\n\t),\n};\n\nexport default function Editor( { isLoading } ) {\n\tconst {\n\t\trecord: editedPost,\n\t\tgetTitle,\n\t\tisLoaded: hasLoadedPost,\n\t} = useEditedEntityRecord();\n\n\tconst { type: editedPostType } = editedPost;\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tconst {\n\t\tcontext,\n\t\tcontextPost,\n\t\teditorMode,\n\t\tcanvasMode,\n\t\trenderingMode,\n\t\tblockEditorMode,\n\t\tisRightSidebarOpen,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tshowIconLabels,\n\t\tshowBlockBreadcrumbs,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditedPostContext, getEditorMode, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\t\tconst { getEntityRecord } = select( coreDataStore );\n\t\tconst { getRenderingMode, isInserterOpened, isListViewOpened } =\n\t\t\tselect( editorStore );\n\t\tconst _context = getEditedPostContext();\n\n\t\t// The currently selected entity to display.\n\t\t// Typically template or template part in the site editor.\n\t\treturn {\n\t\t\tcontext: _context,\n\t\t\tcontextPost: _context?.postId\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t_context.postType,\n\t\t\t\t\t\t_context.postId\n\t\t\t\t )\n\t\t\t\t: undefined,\n\t\t\teditorMode: getEditorMode(),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\trenderingMode: getRenderingMode(),\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisRightSidebarOpen: getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t};\n\t}, [] );\n\n\tconst isViewMode = canvasMode === 'view';\n\tconst isEditMode = canvasMode === 'edit';\n\tconst showVisualEditor = isViewMode || editorMode === 'visual';\n\tconst shouldShowBlockBreadcrumbs =\n\t\tshowBlockBreadcrumbs &&\n\t\tisEditMode &&\n\t\tshowVisualEditor &&\n\t\tblockEditorMode !== 'zoom-out';\n\tconst shouldShowInserter = isEditMode && showVisualEditor && isInserterOpen;\n\tconst shouldShowListView = isEditMode && showVisualEditor && isListViewOpen;\n\tconst secondarySidebarLabel = isListViewOpen\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\tconst postWithTemplate = !! context?.postId;\n\n\tlet title;\n\tif ( hasLoadedPost ) {\n\t\ttitle = sprintf(\n\t\t\t// translators: A breadcrumb trail for the Admin document title. %1$s: title of template being edited, %2$s: type of template (Template or Template Part).\n\t\t\t__( '%1$s ‹ %2$s' ),\n\t\t\tgetTitle(),\n\t\t\tPOST_TYPE_LABELS[ editedPostType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( hasLoadedPost && title );\n\n\tconst loadingProgressId = useInstanceId(\n\t\tCanvasLoader,\n\t\t'edit-site-editor__loading-progress'\n\t);\n\n\tconst settings = useSpecificEditorSettings();\n\tconst isReady =\n\t\t! isLoading &&\n\t\t( ( postWithTemplate && !! contextPost && !! editedPost ) ||\n\t\t\t( ! postWithTemplate && !! editedPost ) );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isReady ? <CanvasLoader id={ loadingProgressId } /> : null }\n\t\t\t{ isEditMode && <WelcomeGuide /> }\n\t\t\t{ hasLoadedPost && ! editedPost && (\n\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t\"You attempted to edit an item that doesn't exist. Perhaps it was deleted?\"\n\t\t\t\t\t) }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t\t{ isReady && (\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ postWithTemplate ? contextPost : editedPost }\n\t\t\t\t\t__unstableTemplate={\n\t\t\t\t\t\tpostWithTemplate ? editedPost : undefined\n\t\t\t\t\t}\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t>\n\t\t\t\t\t<SidebarComplementaryAreaFills />\n\t\t\t\t\t{ isEditMode && <StartTemplateOptions /> }\n\t\t\t\t\t<InterfaceSkeleton\n\t\t\t\t\t\tisDistractionFree={ true }\n\t\t\t\t\t\tenableRegionNavigation={ false }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-editor__interface-skeleton',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<GlobalStylesRenderer />\n\t\t\t\t\t\t\t\t{ isEditMode && <EditorNotices /> }\n\t\t\t\t\t\t\t\t{ showVisualEditor && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<TemplatePartConverter />\n\t\t\t\t\t\t\t\t\t\t<SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t\t\t\t\t\t</SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t{ ! isLargeViewport && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<SiteEditorCanvas />\n\t\t\t\t\t\t\t\t\t\t<BlockRemovalWarningModal\n\t\t\t\t\t\t\t\t\t\t\trules={ blockRemovalRules }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<PatternModal />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ editorMode === 'text' && isEditMode && (\n\t\t\t\t\t\t\t\t\t<CodeEditor />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ isEditMode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<KeyboardShortcutsEditMode />\n\t\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcutsRegister />\n\t\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcuts />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecondarySidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\t( ( shouldShowInserter && <InserterSidebar /> ) ||\n\t\t\t\t\t\t\t\t( shouldShowListView && <ListViewSidebar /> ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\tisRightSidebarOpen && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfooter={\n\t\t\t\t\t\t\tshouldShowBlockBreadcrumbs && (\n\t\t\t\t\t\t\t\t<BlockBreadcrumb\n\t\t\t\t\t\t\t\t\trootLabelText={\n\t\t\t\t\t\t\t\t\t\tpostWithTemplate &&\n\t\t\t\t\t\t\t\t\t\trenderingMode !== 'template-only'\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Page' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Template' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</EditorProvider>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_components","_compose","_preferences","_blockEditor","_interface","_editor","_i18n","_coreData","_sidebarEditMode","_codeEditor","_editMode","_welcomeGuide","_startTemplateOptions","_store","_globalStylesRenderer","_useTitle","_canvasLoader","_lockUnlock","_useEditedEntityRecord","_patternModal","_constants","_siteEditorCanvas","_templatePartConverter","_useSiteEditorSettings","BlockRemovalWarningModal","unlock","blockEditorPrivateApis","ExperimentalEditorProvider","EditorProvider","InserterSidebar","ListViewSidebar","editorPrivateApis","interfaceLabels","body","__","sidebar","actions","footer","blockRemovalRules","Editor","isLoading","record","editedPost","getTitle","isLoaded","hasLoadedPost","useEditedEntityRecord","type","editedPostType","isLargeViewport","useViewportMatch","context","contextPost","editorMode","canvasMode","blockEditorMode","isRightSidebarOpen","isInserterOpen","isListViewOpen","showIconLabels","showBlockBreadcrumbs","postTypeLabel","useSelect","select","get","preferencesStore","getEditedPostContext","getEditorMode","getCanvasMode","editSiteStore","__unstableGetEditorMode","blockEditorStore","getActiveComplementaryArea","interfaceStore","getEntityRecord","coreDataStore","isInserterOpened","isListViewOpened","getPostTypeLabel","editorStore","_context","postId","postType","undefined","name","isViewMode","isEditMode","showVisualEditor","shouldShowBlockBreadcrumbs","shouldShowInserter","shouldShowListView","secondarySidebarLabel","postWithTemplate","title","_POST_TYPE_LABELS$edi","sprintf","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","useTitle","loadingProgressId","useInstanceId","CanvasLoader","settings","useSpecificEditorSettings","isReady","_react","createElement","Fragment","default","id","Notice","status","isDismissible","post","__unstableTemplate","useSubRegistry","SidebarComplementaryAreaFills","InterfaceSkeleton","isDistractionFree","enableRegionNavigation","className","classnames","notices","EditorSnackbars","content","GlobalStylesRenderer","EditorNotices","SidebarInspectorFill","BlockInspector","BlockToolbar","hideDragHandle","rules","EditorKeyboardShortcutsRegister","EditorKeyboardShortcuts","secondarySidebar","ComplementaryArea","Slot","scope","BlockBreadcrumb","rootLabelText","labels"],"sources":["@wordpress/edit-site/src/components/editor/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { Notice } from '@wordpress/components';\nimport { useInstanceId, useViewportMatch } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tBlockBreadcrumb,\n\tBlockToolbar,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockInspector,\n} from '@wordpress/block-editor';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tEditorKeyboardShortcutsRegister,\n\tEditorKeyboardShortcuts,\n\tEditorNotices,\n\tEditorSnackbars,\n\tprivateApis as editorPrivateApis,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreDataStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarComplementaryAreaFills,\n\tSidebarInspectorFill,\n} from '../sidebar-edit-mode';\nimport CodeEditor from '../code-editor';\nimport KeyboardShortcutsEditMode from '../keyboard-shortcuts/edit-mode';\nimport WelcomeGuide from '../welcome-guide';\nimport StartTemplateOptions from '../start-template-options';\nimport { store as editSiteStore } from '../../store';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport useTitle from '../routes/use-title';\nimport CanvasLoader from '../canvas-loader';\nimport { unlock } from '../../lock-unlock';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport PatternModal from '../pattern-modal';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport SiteEditorCanvas from '../block-editor/site-editor-canvas';\nimport TemplatePartConverter from '../template-part-converter';\nimport { useSpecificEditorSettings } from '../block-editor/use-site-editor-settings';\n\nconst { BlockRemovalWarningModal } = unlock( blockEditorPrivateApis );\nconst {\n\tExperimentalEditorProvider: EditorProvider,\n\tInserterSidebar,\n\tListViewSidebar,\n} = unlock( editorPrivateApis );\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\n// Prevent accidental removal of certain blocks, asking the user for\n// confirmation.\nconst blockRemovalRules = {\n\t'core/query': __( 'Query Loop displays a list of posts or pages.' ),\n\t'core/post-content': __(\n\t\t'Post Content displays the content of a post or page.'\n\t),\n\t'core/post-template': __(\n\t\t'Post Template displays each post or page in a Query Loop.'\n\t),\n};\n\nexport default function Editor( { isLoading } ) {\n\tconst {\n\t\trecord: editedPost,\n\t\tgetTitle,\n\t\tisLoaded: hasLoadedPost,\n\t} = useEditedEntityRecord();\n\n\tconst { type: editedPostType } = editedPost;\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tconst {\n\t\tcontext,\n\t\tcontextPost,\n\t\teditorMode,\n\t\tcanvasMode,\n\t\tblockEditorMode,\n\t\tisRightSidebarOpen,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tshowIconLabels,\n\t\tshowBlockBreadcrumbs,\n\t\tpostTypeLabel,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditedPostContext, getEditorMode, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\t\tconst { getEntityRecord } = select( coreDataStore );\n\t\tconst { isInserterOpened, isListViewOpened, getPostTypeLabel } =\n\t\t\tselect( editorStore );\n\t\tconst _context = getEditedPostContext();\n\n\t\t// The currently selected entity to display.\n\t\t// Typically template or template part in the site editor.\n\t\treturn {\n\t\t\tcontext: _context,\n\t\t\tcontextPost: _context?.postId\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t_context.postType,\n\t\t\t\t\t\t_context.postId\n\t\t\t\t )\n\t\t\t\t: undefined,\n\t\t\teditorMode: getEditorMode(),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisRightSidebarOpen: getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\tpostTypeLabel: getPostTypeLabel(),\n\t\t};\n\t}, [] );\n\n\tconst isViewMode = canvasMode === 'view';\n\tconst isEditMode = canvasMode === 'edit';\n\tconst showVisualEditor = isViewMode || editorMode === 'visual';\n\tconst shouldShowBlockBreadcrumbs =\n\t\tshowBlockBreadcrumbs &&\n\t\tisEditMode &&\n\t\tshowVisualEditor &&\n\t\tblockEditorMode !== 'zoom-out';\n\tconst shouldShowInserter = isEditMode && showVisualEditor && isInserterOpen;\n\tconst shouldShowListView = isEditMode && showVisualEditor && isListViewOpen;\n\tconst secondarySidebarLabel = isListViewOpen\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\tconst postWithTemplate = !! context?.postId;\n\n\tlet title;\n\tif ( hasLoadedPost ) {\n\t\ttitle = sprintf(\n\t\t\t// translators: A breadcrumb trail for the Admin document title. %1$s: title of template being edited, %2$s: type of template (Template or Template Part).\n\t\t\t__( '%1$s ‹ %2$s' ),\n\t\t\tgetTitle(),\n\t\t\tPOST_TYPE_LABELS[ editedPostType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( hasLoadedPost && title );\n\n\tconst loadingProgressId = useInstanceId(\n\t\tCanvasLoader,\n\t\t'edit-site-editor__loading-progress'\n\t);\n\n\tconst settings = useSpecificEditorSettings();\n\tconst isReady =\n\t\t! isLoading &&\n\t\t( ( postWithTemplate && !! contextPost && !! editedPost ) ||\n\t\t\t( ! postWithTemplate && !! editedPost ) );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isReady ? <CanvasLoader id={ loadingProgressId } /> : null }\n\t\t\t{ isEditMode && <WelcomeGuide /> }\n\t\t\t{ hasLoadedPost && ! editedPost && (\n\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t\"You attempted to edit an item that doesn't exist. Perhaps it was deleted?\"\n\t\t\t\t\t) }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t\t{ isReady && (\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ postWithTemplate ? contextPost : editedPost }\n\t\t\t\t\t__unstableTemplate={\n\t\t\t\t\t\tpostWithTemplate ? editedPost : undefined\n\t\t\t\t\t}\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t>\n\t\t\t\t\t<SidebarComplementaryAreaFills />\n\t\t\t\t\t{ isEditMode && <StartTemplateOptions /> }\n\t\t\t\t\t<InterfaceSkeleton\n\t\t\t\t\t\tisDistractionFree={ true }\n\t\t\t\t\t\tenableRegionNavigation={ false }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-editor__interface-skeleton',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<GlobalStylesRenderer />\n\t\t\t\t\t\t\t\t{ isEditMode && <EditorNotices /> }\n\t\t\t\t\t\t\t\t{ showVisualEditor && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<TemplatePartConverter />\n\t\t\t\t\t\t\t\t\t\t<SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t\t\t\t\t\t</SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t{ ! isLargeViewport && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<SiteEditorCanvas />\n\t\t\t\t\t\t\t\t\t\t<BlockRemovalWarningModal\n\t\t\t\t\t\t\t\t\t\t\trules={ blockRemovalRules }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<PatternModal />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ editorMode === 'text' && isEditMode && (\n\t\t\t\t\t\t\t\t\t<CodeEditor />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ isEditMode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<KeyboardShortcutsEditMode />\n\t\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcutsRegister />\n\t\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcuts />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecondarySidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\t( ( shouldShowInserter && <InserterSidebar /> ) ||\n\t\t\t\t\t\t\t\t( shouldShowListView && <ListViewSidebar /> ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\tisRightSidebarOpen && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfooter={\n\t\t\t\t\t\t\tshouldShowBlockBreadcrumbs && (\n\t\t\t\t\t\t\t\t<BlockBreadcrumb\n\t\t\t\t\t\t\t\t\trootLabelText={ postTypeLabel }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</EditorProvider>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -47,9 +47,19 @@ function FontLibraryProvider({
47
47
  const fontFamiliesHasChanges = !!globalStyles?.edits?.settings?.typography?.fontFamilies;
48
48
  const [isInstalling, setIsInstalling] = (0, _element.useState)(false);
49
49
  const [refreshKey, setRefreshKey] = (0, _element.useState)(0);
50
+ const [notice, setNotice] = (0, _element.useState)(null);
50
51
  const refreshLibrary = () => {
51
52
  setRefreshKey(Date.now());
52
53
  };
54
+
55
+ // Reset notice on dismiss.
56
+ (0, _element.useEffect)(() => {
57
+ if (notice) {
58
+ notice.onRemove = () => {
59
+ setNotice(null);
60
+ };
61
+ }
62
+ }, [notice, setNotice]);
53
63
  const {
54
64
  records: libraryPosts = [],
55
65
  isResolving: isResolvingLibrary,
@@ -97,6 +107,8 @@ function FontLibraryProvider({
97
107
  }
98
108
  }, [modalTabOpen]);
99
109
  const handleSetLibraryFontSelected = font => {
110
+ setNotice(null);
111
+
100
112
  // If font is null, reset the selected font
101
113
  if (!font) {
102
114
  setLibraryFontSelected(null);
@@ -336,6 +348,8 @@ function FontLibraryProvider({
336
348
  modalTabOpen,
337
349
  toggleModal,
338
350
  refreshLibrary,
351
+ notice,
352
+ setNotice,
339
353
  saveFontFamilies,
340
354
  fontFamiliesHasChanges,
341
355
  isResolvingLibrary,
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_blockEditor","_data","_coreData","_i18n","_resolvers","_lockUnlock","_utils","_toggleFont","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","_embed","libraryFonts","map","fontFamilyPost","id","font_family_settings","fontFace","_embedded","font_faces","face","font_face_settings","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","length","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFont","fontFamilyToInstall","installedFontFamily","fetchGetFontFamilyBySlug","fetchInstallFontFamily","makeFontFamilyFormData","alreadyInstalledFontFaces","filter","fontFaceToInstall","checkFontFaceInstalled","sucessfullyInstalledFontFaces","unsucessfullyInstalledFontFaces","response","batchInstallFontFaces","makeFontFacesFormData","successes","errors","detailedErrorMessage","errorMessageCollection","error","message","Error","sprintf","__","activateCustomFontFamilies","uninstallFontFamily","fontFamilyToUninstall","uninstalledFontFamily","fetchUninstallFontFamily","deleted","deactivateFontFamily","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","fontsToAdd","mergeFontFamilies","forEach","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","toggleFont","loadFontFaceAsset","has","add","collections","setFontCollections","getFontCollections","fetchFontCollections","getFontCollection","hasData","collection","font_families","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';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchGetFontFamilyBySlug,\n\tfetchInstallFontFamily,\n\tfetchUninstallFontFamily,\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\tmakeFontFacesFormData,\n\tmakeFontFamilyFormData,\n\tbatchInstallFontFaces,\n\tcheckFontFaceInstalled,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\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', {\n\t\trefreshKey,\n\t\t_embed: true,\n\t} );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( fontFamilyPost ) => {\n\t\t\treturn {\n\t\t\t\tid: fontFamilyPost.id,\n\t\t\t\t...fontFamilyPost.font_family_settings,\n\t\t\t\tfontFace:\n\t\t\t\t\tfontFamilyPost?._embedded?.font_faces.map(\n\t\t\t\t\t\t( face ) => face.font_face_settings\n\t\t\t\t\t) || [],\n\t\t\t};\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 =\n\t\t\t\tfont?.fontFace && font.fontFace?.length > 0\n\t\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t\t )\n\t\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 installFont( fontFamilyToInstall ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Get the font family if it already exists.\n\t\t\tlet installedFontFamily = await fetchGetFontFamilyBySlug(\n\t\t\t\tfontFamilyToInstall.slug\n\t\t\t);\n\n\t\t\t// Otherwise create it.\n\t\t\tif ( ! installedFontFamily ) {\n\t\t\t\t// Prepare font family form data to install.\n\t\t\t\tinstalledFontFamily = await fetchInstallFontFamily(\n\t\t\t\t\tmakeFontFamilyFormData( fontFamilyToInstall )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Collect font faces that have already been installed (to be activated later)\n\t\t\tconst alreadyInstalledFontFaces =\n\t\t\t\tinstalledFontFamily.fontFace && fontFamilyToInstall.fontFace\n\t\t\t\t\t? installedFontFamily.fontFace.filter(\n\t\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t\tcheckFontFaceInstalled(\n\t\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t )\n\t\t\t\t\t: [];\n\n\t\t\t// Filter out Font Faces that have already been installed (so that they are not re-installed)\n\t\t\tif (\n\t\t\t\tinstalledFontFamily.fontFace &&\n\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t) {\n\t\t\t\tfontFamilyToInstall.fontFace =\n\t\t\t\t\tfontFamilyToInstall.fontFace.filter(\n\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t! checkFontFaceInstalled(\n\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\tinstalledFontFamily.fontFace\n\t\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tlet sucessfullyInstalledFontFaces = [];\n\t\t\tlet unsucessfullyInstalledFontFaces = [];\n\t\t\tif ( fontFamilyToInstall?.fontFace?.length > 0 ) {\n\t\t\t\tconst response = await batchInstallFontFaces(\n\t\t\t\t\tinstalledFontFamily.id,\n\t\t\t\t\tmakeFontFacesFormData( fontFamilyToInstall )\n\t\t\t\t);\n\t\t\t\tsucessfullyInstalledFontFaces = response?.successes;\n\t\t\t\tunsucessfullyInstalledFontFaces = response?.errors;\n\t\t\t}\n\n\t\t\tconst detailedErrorMessage = unsucessfullyInstalledFontFaces.reduce(\n\t\t\t\t( errorMessageCollection, error ) => {\n\t\t\t\t\treturn `${ errorMessageCollection } ${ error.message }`;\n\t\t\t\t},\n\t\t\t\t''\n\t\t\t);\n\n\t\t\t// If there were no successes and nothing already installed then we don't need to activate anything and can bounce now.\n\t\t\tif (\n\t\t\t\tfontFamilyToInstall?.fontFace?.length > 0 &&\n\t\t\t\tsucessfullyInstalledFontFaces.length === 0 &&\n\t\t\t\talreadyInstalledFontFaces.length === 0\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: Specific error message returned from server. */\n\t\t\t\t\t\t__( 'No font faces were installed. %s' ),\n\t\t\t\t\t\tdetailedErrorMessage\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Use the sucessfully installed font faces\n\t\t\t// As well as any font faces that were already installed (those will be activated)\n\t\t\tif (\n\t\t\t\tsucessfullyInstalledFontFaces?.length > 0 ||\n\t\t\t\talreadyInstalledFontFaces?.length > 0\n\t\t\t) {\n\t\t\t\tfontFamilyToInstall.fontFace = [\n\t\t\t\t\t...sucessfullyInstalledFontFaces,\n\t\t\t\t\t...alreadyInstalledFontFaces,\n\t\t\t\t];\n\t\t\t}\n\n\t\t\t// Activate the font family (add the font family to the global styles).\n\t\t\tactivateCustomFontFamilies( [ fontFamilyToInstall ] );\n\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\n\t\t\trefreshLibrary();\n\n\t\t\tif ( unsucessfullyInstalledFontFaces.length > 0 ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: Specific error message returned from server. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Some font faces were installed. There were some errors. %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tdetailedErrorMessage\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} finally {\n\t\t\tsetIsInstalling( false );\n\t\t}\n\t}\n\n\tasync function uninstallFontFamily( fontFamilyToUninstall ) {\n\t\ttry {\n\t\t\t// Uninstall the font family.\n\t\t\t// (Removes the font files from the server and the posts from the database).\n\t\t\tconst uninstalledFontFamily = await fetchUninstallFontFamily(\n\t\t\t\tfontFamilyToUninstall.id\n\t\t\t);\n\n\t\t\t// Deactivate the font family if delete request is successful\n\t\t\t// (Removes the font family from the global styles).\n\t\t\tif ( uninstalledFontFamily.deleted ) {\n\t\t\t\tdeactivateFontFamily( fontFamilyToUninstall );\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\n\t\t\t// Refresh the library (the library font families from database).\n\t\t\trefreshLibrary();\n\n\t\t\treturn uninstalledFontFamily;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t`There was an error uninstalling the font family:`,\n\t\t\t\terror\n\t\t\t);\n\t\t\tthrow error;\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 ( slug ) => {\n\t\ttry {\n\t\t\tconst hasData = !! collections.find(\n\t\t\t\t( collection ) => collection.slug === slug\n\t\t\t)?.font_families;\n\t\t\tif ( hasData ) return;\n\t\t\tconst response = await fetchFontCollection( slug );\n\t\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\t\tcollection.slug === slug\n\t\t\t\t\t? { ...collection, ...response }\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\tinstallFont,\n\t\t\t\tuninstallFontFamily,\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","_i18n","_resolvers","_lockUnlock","_utils","_toggleFont","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","notice","setNotice","refreshLibrary","Date","now","useEffect","onRemove","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","useEntityRecords","_embed","libraryFonts","map","fontFamilyPost","id","font_family_settings","fontFace","_embedded","font_faces","face","font_face_settings","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","baseThemeFonts","theme","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFonts","customFonts","custom","baseCustomFonts","handleSetLibraryFontSelected","font","fonts","fontSelected","find","slug","toggleModal","tabName","loadedFontUrls","Set","site","currentTheme","getSite","getCurrentTheme","themeUrl","url","stylesheet","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","length","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFont","fontFamilyToInstall","installedFontFamily","fetchGetFontFamilyBySlug","fetchInstallFontFamily","makeFontFamilyFormData","alreadyInstalledFontFaces","filter","fontFaceToInstall","checkFontFaceInstalled","sucessfullyInstalledFontFaces","unsucessfullyInstalledFontFaces","response","batchInstallFontFaces","makeFontFacesFormData","successes","errors","detailedErrorMessage","errorMessageCollection","error","message","Error","sprintf","__","activateCustomFontFamilies","uninstallFontFamily","fontFamilyToUninstall","uninstalledFontFamily","fetchUninstallFontFamily","deleted","deactivateFontFamily","console","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","fontsToAdd","mergeFontFamilies","forEach","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","toggleFont","loadFontFaceAsset","has","add","collections","setFontCollections","getFontCollections","fetchFontCollections","getFontCollection","hasData","collection","font_families","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';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchGetFontFamilyBySlug,\n\tfetchInstallFontFamily,\n\tfetchUninstallFontFamily,\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\tmakeFontFacesFormData,\n\tmakeFontFamilyFormData,\n\tbatchInstallFontFaces,\n\tcheckFontFaceInstalled,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\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\tconst [ notice, setNotice ] = useState( null );\n\n\tconst refreshLibrary = () => {\n\t\tsetRefreshKey( Date.now() );\n\t};\n\n\t// Reset notice on dismiss.\n\tuseEffect( () => {\n\t\tif ( notice ) {\n\t\t\tnotice.onRemove = () => {\n\t\t\t\tsetNotice( null );\n\t\t\t};\n\t\t}\n\t}, [ notice, setNotice ] );\n\n\tconst {\n\t\trecords: libraryPosts = [],\n\t\tisResolving: isResolvingLibrary,\n\t\thasResolved: hasResolvedLibrary,\n\t} = useEntityRecords( 'postType', 'wp_font_family', {\n\t\trefreshKey,\n\t\t_embed: true,\n\t} );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( fontFamilyPost ) => {\n\t\t\treturn {\n\t\t\t\tid: fontFamilyPost.id,\n\t\t\t\t...fontFamilyPost.font_family_settings,\n\t\t\t\tfontFace:\n\t\t\t\t\tfontFamilyPost?._embedded?.font_faces.map(\n\t\t\t\t\t\t( face ) => face.font_face_settings\n\t\t\t\t\t) || [],\n\t\t\t};\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\tsetNotice( null );\n\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 =\n\t\t\t\tfont?.fontFace && font.fontFace?.length > 0\n\t\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t\t )\n\t\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 installFont( fontFamilyToInstall ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Get the font family if it already exists.\n\t\t\tlet installedFontFamily = await fetchGetFontFamilyBySlug(\n\t\t\t\tfontFamilyToInstall.slug\n\t\t\t);\n\n\t\t\t// Otherwise create it.\n\t\t\tif ( ! installedFontFamily ) {\n\t\t\t\t// Prepare font family form data to install.\n\t\t\t\tinstalledFontFamily = await fetchInstallFontFamily(\n\t\t\t\t\tmakeFontFamilyFormData( fontFamilyToInstall )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Collect font faces that have already been installed (to be activated later)\n\t\t\tconst alreadyInstalledFontFaces =\n\t\t\t\tinstalledFontFamily.fontFace && fontFamilyToInstall.fontFace\n\t\t\t\t\t? installedFontFamily.fontFace.filter(\n\t\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t\tcheckFontFaceInstalled(\n\t\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t )\n\t\t\t\t\t: [];\n\n\t\t\t// Filter out Font Faces that have already been installed (so that they are not re-installed)\n\t\t\tif (\n\t\t\t\tinstalledFontFamily.fontFace &&\n\t\t\t\tfontFamilyToInstall.fontFace\n\t\t\t) {\n\t\t\t\tfontFamilyToInstall.fontFace =\n\t\t\t\t\tfontFamilyToInstall.fontFace.filter(\n\t\t\t\t\t\t( fontFaceToInstall ) =>\n\t\t\t\t\t\t\t! checkFontFaceInstalled(\n\t\t\t\t\t\t\t\tfontFaceToInstall,\n\t\t\t\t\t\t\t\tinstalledFontFamily.fontFace\n\t\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tlet sucessfullyInstalledFontFaces = [];\n\t\t\tlet unsucessfullyInstalledFontFaces = [];\n\t\t\tif ( fontFamilyToInstall?.fontFace?.length > 0 ) {\n\t\t\t\tconst response = await batchInstallFontFaces(\n\t\t\t\t\tinstalledFontFamily.id,\n\t\t\t\t\tmakeFontFacesFormData( fontFamilyToInstall )\n\t\t\t\t);\n\t\t\t\tsucessfullyInstalledFontFaces = response?.successes;\n\t\t\t\tunsucessfullyInstalledFontFaces = response?.errors;\n\t\t\t}\n\n\t\t\tconst detailedErrorMessage = unsucessfullyInstalledFontFaces.reduce(\n\t\t\t\t( errorMessageCollection, error ) => {\n\t\t\t\t\treturn `${ errorMessageCollection } ${ error.message }`;\n\t\t\t\t},\n\t\t\t\t''\n\t\t\t);\n\n\t\t\t// If there were no successes and nothing already installed then we don't need to activate anything and can bounce now.\n\t\t\tif (\n\t\t\t\tfontFamilyToInstall?.fontFace?.length > 0 &&\n\t\t\t\tsucessfullyInstalledFontFaces.length === 0 &&\n\t\t\t\talreadyInstalledFontFaces.length === 0\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: Specific error message returned from server. */\n\t\t\t\t\t\t__( 'No font faces were installed. %s' ),\n\t\t\t\t\t\tdetailedErrorMessage\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Use the sucessfully installed font faces\n\t\t\t// As well as any font faces that were already installed (those will be activated)\n\t\t\tif (\n\t\t\t\tsucessfullyInstalledFontFaces?.length > 0 ||\n\t\t\t\talreadyInstalledFontFaces?.length > 0\n\t\t\t) {\n\t\t\t\tfontFamilyToInstall.fontFace = [\n\t\t\t\t\t...sucessfullyInstalledFontFaces,\n\t\t\t\t\t...alreadyInstalledFontFaces,\n\t\t\t\t];\n\t\t\t}\n\n\t\t\t// Activate the font family (add the font family to the global styles).\n\t\t\tactivateCustomFontFamilies( [ fontFamilyToInstall ] );\n\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\n\t\t\trefreshLibrary();\n\n\t\t\tif ( unsucessfullyInstalledFontFaces.length > 0 ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: Specific error message returned from server. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Some font faces were installed. There were some errors. %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tdetailedErrorMessage\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} finally {\n\t\t\tsetIsInstalling( false );\n\t\t}\n\t}\n\n\tasync function uninstallFontFamily( fontFamilyToUninstall ) {\n\t\ttry {\n\t\t\t// Uninstall the font family.\n\t\t\t// (Removes the font files from the server and the posts from the database).\n\t\t\tconst uninstalledFontFamily = await fetchUninstallFontFamily(\n\t\t\t\tfontFamilyToUninstall.id\n\t\t\t);\n\n\t\t\t// Deactivate the font family if delete request is successful\n\t\t\t// (Removes the font family from the global styles).\n\t\t\tif ( uninstalledFontFamily.deleted ) {\n\t\t\t\tdeactivateFontFamily( fontFamilyToUninstall );\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\n\t\t\t// Refresh the library (the library font families from database).\n\t\t\trefreshLibrary();\n\n\t\t\treturn uninstalledFontFamily;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t`There was an error uninstalling the font family:`,\n\t\t\t\terror\n\t\t\t);\n\t\t\tthrow error;\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 ( slug ) => {\n\t\ttry {\n\t\t\tconst hasData = !! collections.find(\n\t\t\t\t( collection ) => collection.slug === slug\n\t\t\t)?.font_families;\n\t\t\tif ( hasData ) return;\n\t\t\tconst response = await fetchFontCollection( slug );\n\t\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\t\tcollection.slug === slug\n\t\t\t\t\t? { ...collection, ...response }\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\tinstallFont,\n\t\t\t\tuninstallFontFamily,\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\tnotice,\n\t\t\t\tsetNotice,\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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"}
@@ -37,11 +37,10 @@ function FontCollection({
37
37
  slug
38
38
  }) {
39
39
  var _selectedCollection$c;
40
- const requiresPermission = slug === 'default-font-collection';
40
+ const requiresPermission = slug === 'google-fonts';
41
41
  const getGoogleFontsPermissionFromStorage = () => {
42
- return window.localStorage.getItem('wp-font-library-default-font-collection-permission') === 'true';
42
+ return window.localStorage.getItem('wp-font-library-google-fonts-permission') === 'true';
43
43
  };
44
- const [notice, setNotice] = (0, _element.useState)(null);
45
44
  const [selectedFont, setSelectedFont] = (0, _element.useState)(null);
46
45
  const [fontsToInstall, setFontsToInstall] = (0, _element.useState)([]);
47
46
  const [filters, setFilters] = (0, _element.useState)({});
@@ -49,7 +48,9 @@ function FontCollection({
49
48
  const {
50
49
  collections,
51
50
  getFontCollection,
52
- installFont
51
+ installFont,
52
+ notice,
53
+ setNotice
53
54
  } = (0, _element.useContext)(_context.FontLibraryContext);
54
55
  const selectedCollection = collections.find(collection => collection.slug === slug);
55
56
  (0, _element.useEffect)(() => {
@@ -66,35 +67,24 @@ function FontCollection({
66
67
  await getFontCollection(slug);
67
68
  resetFilters();
68
69
  } catch (e) {
69
- setNotice({
70
- type: 'error',
71
- message: e?.message,
72
- duration: 0 // Don't auto-hide.
73
- });
70
+ if (!notice) {
71
+ setNotice({
72
+ type: 'error',
73
+ message: e?.message
74
+ });
75
+ }
74
76
  }
75
77
  };
76
-
77
78
  fetchFontCollection();
78
- }, [slug, getFontCollection]);
79
+ }, [slug, getFontCollection, setNotice, notice]);
79
80
  (0, _element.useEffect)(() => {
80
81
  setSelectedFont(null);
81
82
  setNotice(null);
82
- }, [slug]);
83
+ }, [slug, setNotice]);
83
84
  (0, _element.useEffect)(() => {
84
85
  // If the selected fonts change, reset the selected fonts to install
85
86
  setFontsToInstall([]);
86
87
  }, [selectedFont]);
87
-
88
- // Reset notice after 5 seconds
89
- (0, _element.useEffect)(() => {
90
- if (notice && notice?.duration !== 0) {
91
- var _notice$duration;
92
- const timeout = setTimeout(() => {
93
- setNotice(null);
94
- }, (_notice$duration = notice.duration) !== null && _notice$duration !== void 0 ? _notice$duration : 5000);
95
- return () => clearTimeout(timeout);
96
- }
97
- }, [notice]);
98
88
  const collectionFonts = (0, _element.useMemo)(() => {
99
89
  var _selectedCollection$f;
100
90
  return (_selectedCollection$f = selectedCollection?.font_families) !== null && _selectedCollection$f !== void 0 ? _selectedCollection$f : [];
@@ -136,12 +126,13 @@ function FontCollection({
136
126
  setFontsToInstall([]);
137
127
  };
138
128
  const handleInstall = async () => {
129
+ setNotice(null);
139
130
  const fontFamily = fontsToInstall[0];
140
131
  try {
141
132
  if (fontFamily?.fontFace) {
142
133
  await Promise.all(fontFamily.fontFace.map(async fontFace => {
143
134
  if (fontFace.src) {
144
- fontFace.file = await (0, _utils.downloadFontFaceAsset)(fontFace.src);
135
+ fontFace.file = await (0, _utils.downloadFontFaceAssets)(fontFace.src);
145
136
  }
146
137
  }));
147
138
  }
@@ -171,21 +162,14 @@ function FontCollection({
171
162
  return (0, _react.createElement)(_tabPanelLayout.default, {
172
163
  title: !selectedFont ? selectedCollection.name : selectedFont.name,
173
164
  description: !selectedFont ? selectedCollection.description : (0, _i18n.__)('Select font variants to install.'),
165
+ notice: notice,
174
166
  handleBack: !!selectedFont && handleUnselectFont,
175
167
  footer: fontsToInstall.length > 0 && (0, _react.createElement)(Footer, {
176
168
  handleInstall: handleInstall
177
169
  })
178
170
  }, renderConfirmDialog && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalSpacer, {
179
171
  margin: 8
180
- }), (0, _react.createElement)(_googleFontsConfirmDialog.default, null)), notice && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)(_components.__experimentalSpacer, {
181
- margin: 2
182
- }), (0, _react.createElement)(_components.Notice, {
183
- isDismissible: false,
184
- status: notice.type,
185
- className: "font-library-modal__font-collection__notice"
186
- }, notice.message)), (0, _react.createElement)(_components.__experimentalSpacer, {
187
- margin: 2
188
- })), !renderConfirmDialog && !selectedFont && (0, _react.createElement)(_components.Flex, null, (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)(_components.__experimentalInputControl, {
172
+ }), (0, _react.createElement)(_googleFontsConfirmDialog.default, null)), !renderConfirmDialog && !selectedFont && (0, _react.createElement)(_components.Flex, null, (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)(_components.__experimentalInputControl, {
189
173
  value: filters.search,
190
174
  placeholder: (0, _i18n.__)('Font name…'),
191
175
  label: (0, _i18n.__)('Search'),