@wordpress/edit-site 5.28.3 → 5.28.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/build/components/global-styles/font-library-modal/collection-font-variant.js +2 -2
  2. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  3. package/build/components/global-styles/font-library-modal/font-card.js +10 -15
  4. package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
  5. package/build/components/global-styles/font-library-modal/font-collection.js +113 -60
  6. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  7. package/build/components/global-styles/font-library-modal/font-demo.js +29 -8
  8. package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  9. package/build/components/global-styles/font-library-modal/installed-fonts.js +142 -79
  10. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  11. package/build/components/global-styles/font-library-modal/library-font-variant.js +2 -2
  12. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  13. package/build/components/global-styles/font-library-modal/upload-fonts.js +6 -4
  14. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  15. package/build/components/global-styles/screen-revisions/index.js +2 -2
  16. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  17. package/build/components/global-styles/ui.js +27 -2
  18. package/build/components/global-styles/ui.js.map +1 -1
  19. package/build/components/header-edit-mode/index.js +1 -1
  20. package/build/components/header-edit-mode/index.js.map +1 -1
  21. package/build/components/page-patterns/index.js +14 -14
  22. package/build/components/page-patterns/index.js.map +1 -1
  23. package/build/components/sidebar/index.js +3 -2
  24. package/build/components/sidebar/index.js.map +1 -1
  25. package/build/components/sidebar-dataviews/default-views.js +2 -0
  26. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  27. package/build/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  28. package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  29. package/build/components/sidebar-navigation-screen-templates-browse/index.js +7 -5
  30. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  31. package/build/components/style-book/index.js +2 -0
  32. package/build/components/style-book/index.js.map +1 -1
  33. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +4 -4
  34. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  35. package/build-module/components/global-styles/font-library-modal/font-card.js +11 -16
  36. package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
  37. package/build-module/components/global-styles/font-library-modal/font-collection.js +116 -63
  38. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  39. package/build-module/components/global-styles/font-library-modal/font-demo.js +30 -9
  40. package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
  41. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +142 -79
  42. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  43. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +4 -4
  44. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  45. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +7 -5
  46. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  47. package/build-module/components/global-styles/screen-revisions/index.js +2 -2
  48. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  49. package/build-module/components/global-styles/ui.js +27 -2
  50. package/build-module/components/global-styles/ui.js.map +1 -1
  51. package/build-module/components/header-edit-mode/index.js +1 -1
  52. package/build-module/components/header-edit-mode/index.js.map +1 -1
  53. package/build-module/components/page-patterns/index.js +14 -14
  54. package/build-module/components/page-patterns/index.js.map +1 -1
  55. package/build-module/components/sidebar/index.js +3 -2
  56. package/build-module/components/sidebar/index.js.map +1 -1
  57. package/build-module/components/sidebar-dataviews/default-views.js +3 -1
  58. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  59. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  60. package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
  61. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +7 -5
  62. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  63. package/build-module/components/style-book/index.js +2 -0
  64. package/build-module/components/style-book/index.js.map +1 -1
  65. package/build-style/style-rtl.css +28 -22
  66. package/build-style/style.css +28 -22
  67. package/package.json +18 -18
  68. package/src/components/global-styles/font-library-modal/collection-font-variant.js +4 -4
  69. package/src/components/global-styles/font-library-modal/font-card.js +11 -26
  70. package/src/components/global-styles/font-library-modal/font-collection.js +304 -210
  71. package/src/components/global-styles/font-library-modal/font-demo.js +38 -4
  72. package/src/components/global-styles/font-library-modal/installed-fonts.js +226 -114
  73. package/src/components/global-styles/font-library-modal/library-font-variant.js +4 -4
  74. package/src/components/global-styles/font-library-modal/style.scss +15 -8
  75. package/src/components/global-styles/font-library-modal/upload-fonts.js +13 -5
  76. package/src/components/global-styles/screen-revisions/index.js +5 -2
  77. package/src/components/global-styles/ui.js +26 -2
  78. package/src/components/header-edit-mode/index.js +3 -1
  79. package/src/components/page-patterns/index.js +20 -20
  80. package/src/components/sidebar/index.js +2 -1
  81. package/src/components/sidebar-dataviews/default-views.js +3 -1
  82. package/src/components/sidebar-navigation-screen-templates-browse/content.js +2 -2
  83. package/src/components/sidebar-navigation-screen-templates-browse/index.js +5 -3
  84. package/src/components/style-book/index.js +5 -1
  85. package/build/components/global-styles/font-library-modal/collection-font-details.js +0 -50
  86. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +0 -1
  87. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +0 -30
  88. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +0 -1
  89. package/build/components/global-styles/font-library-modal/library-font-card.js +0 -39
  90. package/build/components/global-styles/font-library-modal/library-font-card.js.map +0 -1
  91. package/build/components/global-styles/font-library-modal/tab-panel-layout.js +0 -67
  92. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +0 -1
  93. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +0 -42
  94. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +0 -1
  95. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +0 -23
  96. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +0 -1
  97. package/build-module/components/global-styles/font-library-modal/library-font-card.js +0 -31
  98. package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +0 -1
  99. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +0 -60
  100. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +0 -1
  101. package/src/components/global-styles/font-library-modal/collection-font-details.js +0 -56
  102. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +0 -33
  103. package/src/components/global-styles/font-library-modal/library-font-card.js +0 -34
  104. package/src/components/global-styles/font-library-modal/tab-panel-layout.js +0 -85
@@ -6,15 +6,15 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _react = require("react");
9
- var _i18n = require("@wordpress/i18n");
10
- var _element = require("@wordpress/element");
11
9
  var _components = require("@wordpress/components");
12
- var _tabPanelLayout = _interopRequireDefault(require("./tab-panel-layout"));
13
- var _context = require("./context");
14
- var _libraryFontDetails = _interopRequireDefault(require("./library-font-details"));
15
- var _libraryFontCard = _interopRequireDefault(require("./library-font-card"));
16
- var _confirmDeleteDialog = _interopRequireDefault(require("./confirm-delete-dialog"));
10
+ var _element = require("@wordpress/element");
11
+ var _i18n = require("@wordpress/i18n");
12
+ var _icons = require("@wordpress/icons");
17
13
  var _lockUnlock = require("../../../lock-unlock");
14
+ var _context = require("./context");
15
+ var _fontCard = _interopRequireDefault(require("./font-card"));
16
+ var _libraryFontVariant = _interopRequireDefault(require("./library-font-variant"));
17
+ var _sortFontFaces = require("./utils/sort-font-faces");
18
18
  /**
19
19
  * WordPress dependencies
20
20
  */
@@ -35,71 +35,67 @@ function InstalledFonts() {
35
35
  refreshLibrary,
36
36
  uninstallFontFamily,
37
37
  isResolvingLibrary,
38
+ isInstalling,
39
+ saveFontFamilies,
40
+ getFontFacesActivated,
41
+ fontFamiliesHasChanges,
38
42
  notice,
39
43
  setNotice
40
44
  } = (0, _element.useContext)(_context.FontLibraryContext);
41
45
  const [isConfirmDeleteOpen, setIsConfirmDeleteOpen] = (0, _element.useState)(false);
42
- const handleUnselectFont = () => {
43
- handleSetLibraryFontSelected(null);
44
- };
45
- const handleSelectFont = font => {
46
- handleSetLibraryFontSelected(font);
46
+ const shouldDisplayDeleteButton = !!libraryFontSelected && libraryFontSelected?.source !== 'theme';
47
+ const handleUninstallClick = () => {
48
+ setIsConfirmDeleteOpen(true);
47
49
  };
48
- const handleConfirmUninstall = async () => {
49
- setNotice(null);
50
- try {
51
- await uninstallFontFamily(libraryFontSelected);
52
- setNotice({
53
- type: 'success',
54
- message: (0, _i18n.__)('Font family uninstalled successfully.')
55
- });
56
-
57
- // If the font was succesfully uninstalled it is unselected.
58
- handleUnselectFont();
59
- setIsConfirmDeleteOpen(false);
60
- } catch (error) {
61
- setNotice({
62
- type: 'error',
63
- message: (0, _i18n.__)('There was an error uninstalling the font family. ') + error.message
64
- });
50
+ const getFontFacesToDisplay = font => {
51
+ if (!font) {
52
+ return [];
53
+ }
54
+ if (!font.fontFace || !font.fontFace.length) {
55
+ return [{
56
+ fontFamily: font.fontFamily,
57
+ fontStyle: 'normal',
58
+ fontWeight: '400'
59
+ }];
65
60
  }
61
+ return (0, _sortFontFaces.sortFontFaces)(font.fontFace);
66
62
  };
67
- const handleUninstallClick = async () => {
68
- setIsConfirmDeleteOpen(true);
63
+ const getFontCardVariantsText = font => {
64
+ const variantsInstalled = font?.fontFace?.length > 0 ? font.fontFace.length : 1;
65
+ const variantsActive = getFontFacesActivated(font.slug, font.source).length;
66
+ return (0, _i18n.sprintf)( /* translators: 1: Active font variants, 2: Total font variants. */
67
+ (0, _i18n.__)('%1$s/%2$s variants active'), variantsActive, variantsInstalled);
69
68
  };
70
- const handleCancelUninstall = () => {
71
- setIsConfirmDeleteOpen(false);
72
- };
73
- const tabDescription = !!libraryFontSelected ? (0, _i18n.__)('Choose font variants. Keep in mind that too many variants could make your site slower.') : null;
74
- const shouldDisplayDeleteButton = !!libraryFontSelected && libraryFontSelected?.source !== 'theme';
75
69
  (0, _element.useEffect)(() => {
76
- handleSelectFont(libraryFontSelected);
70
+ handleSetLibraryFontSelected(libraryFontSelected);
77
71
  refreshLibrary();
78
- // eslint-disable-next-line react-hooks/exhaustive-deps
79
72
  }, []);
80
- return (0, _react.createElement)(_tabPanelLayout.default, {
81
- title: libraryFontSelected?.name || '',
82
- description: tabDescription,
83
- notice: notice,
84
- handleBack: !!libraryFontSelected && handleUnselectFont,
85
- footer: (0, _react.createElement)(Footer, {
86
- shouldDisplayDeleteButton: shouldDisplayDeleteButton,
87
- handleUninstallClick: handleUninstallClick
88
- })
89
- }, (0, _react.createElement)(_confirmDeleteDialog.default, {
90
- font: libraryFontSelected,
91
- isConfirmDeleteOpen: isConfirmDeleteOpen,
92
- handleConfirmUninstall: handleConfirmUninstall,
93
- handleCancelUninstall: handleCancelUninstall
94
- }), !libraryFontSelected && (0, _react.createElement)(_react.Fragment, null, isResolvingLibrary && (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)(_components.__experimentalSpacer, {
95
- margin: 2
96
- }), (0, _react.createElement)(_components.Spinner, null), (0, _react.createElement)(_components.__experimentalSpacer, {
73
+ return (0, _react.createElement)("div", {
74
+ className: "font-library-modal__tabpanel-layout"
75
+ }, isResolvingLibrary && (0, _react.createElement)(_components.__experimentalHStack, {
76
+ align: "center"
77
+ }, (0, _react.createElement)(_components.__experimentalSpacer, null), (0, _react.createElement)(_components.Spinner, null), (0, _react.createElement)(_components.__experimentalSpacer, null)), (0, _react.createElement)(_components.__experimentalNavigatorProvider, {
78
+ initialPath: libraryFontSelected ? '/fontFamily' : '/'
79
+ }, (0, _react.createElement)(_components.__experimentalNavigatorScreen, {
80
+ path: "/"
81
+ }, notice && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalSpacer, {
82
+ margin: 1
83
+ }), (0, _react.createElement)(_components.Notice, {
84
+ status: notice.type,
85
+ onRemove: () => setNotice(null)
86
+ }, notice.message), (0, _react.createElement)(_components.__experimentalSpacer, {
87
+ margin: 1
88
+ })), baseCustomFonts.length > 0 && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalText, {
89
+ className: "font-library-modal__subtitle"
90
+ }, (0, _i18n.__)('Installed Fonts')), (0, _react.createElement)(_components.__experimentalSpacer, {
97
91
  margin: 2
98
- })), baseCustomFonts.length > 0 && (0, _react.createElement)(_react.Fragment, null, baseCustomFonts.map(font => (0, _react.createElement)(_libraryFontCard.default, {
92
+ }), baseCustomFonts.map(font => (0, _react.createElement)(_fontCard.default, {
99
93
  font: font,
100
94
  key: font.slug,
95
+ navigatorPath: '/fontFamily',
96
+ variantsText: getFontCardVariantsText(font),
101
97
  onClick: () => {
102
- handleSelectFont(font);
98
+ handleSetLibraryFontSelected(font);
103
99
  }
104
100
  })), (0, _react.createElement)(_components.__experimentalSpacer, {
105
101
  margin: 8
@@ -107,42 +103,109 @@ function InstalledFonts() {
107
103
  className: "font-library-modal__subtitle"
108
104
  }, (0, _i18n.__)('Theme Fonts')), (0, _react.createElement)(_components.__experimentalSpacer, {
109
105
  margin: 2
110
- }), baseThemeFonts.map(font => (0, _react.createElement)(_libraryFontCard.default, {
106
+ }), baseThemeFonts.map(font => (0, _react.createElement)(_fontCard.default, {
111
107
  font: font,
112
108
  key: font.slug,
109
+ navigatorPath: '/fontFamily',
110
+ variantsText: getFontCardVariantsText(font),
113
111
  onClick: () => {
114
- handleSelectFont(font);
112
+ handleSetLibraryFontSelected(font);
115
113
  }
116
114
  }))), (0, _react.createElement)(_components.__experimentalSpacer, {
117
115
  margin: 16
118
- })), libraryFontSelected && (0, _react.createElement)(_libraryFontDetails.default, {
116
+ })), (0, _react.createElement)(_components.__experimentalNavigatorScreen, {
117
+ path: "/fontFamily"
118
+ }, (0, _react.createElement)(ConfirmDeleteDialog, {
119
119
  font: libraryFontSelected,
120
- isConfirmDeleteOpen: isConfirmDeleteOpen,
121
- handleConfirmUninstall: handleConfirmUninstall,
122
- handleCancelUninstall: handleCancelUninstall
123
- }));
124
- }
125
- function Footer({
126
- shouldDisplayDeleteButton,
127
- handleUninstallClick
128
- }) {
129
- const {
130
- saveFontFamilies,
131
- fontFamiliesHasChanges,
132
- isInstalling
133
- } = (0, _element.useContext)(_context.FontLibraryContext);
134
- return (0, _react.createElement)(_components.__experimentalHStack, {
135
- justify: "flex-end"
136
- }, isInstalling && (0, _react.createElement)(ProgressBar, null), (0, _react.createElement)("div", null, shouldDisplayDeleteButton && (0, _react.createElement)(_components.Button, {
120
+ isOpen: isConfirmDeleteOpen,
121
+ setIsOpen: setIsConfirmDeleteOpen,
122
+ setNotice: setNotice,
123
+ uninstallFontFamily: uninstallFontFamily,
124
+ handleSetLibraryFontSelected: handleSetLibraryFontSelected
125
+ }), (0, _react.createElement)(_components.Flex, {
126
+ justify: "flex-start"
127
+ }, (0, _react.createElement)(_components.__experimentalNavigatorToParentButton, {
128
+ icon: _icons.chevronLeft,
129
+ isSmall: true,
130
+ onClick: () => {
131
+ handleSetLibraryFontSelected(null);
132
+ },
133
+ "aria-label": (0, _i18n.__)('Navigate to the previous view')
134
+ }), (0, _react.createElement)(_components.__experimentalHeading, {
135
+ level: 2,
136
+ size: 13,
137
+ className: "edit-site-global-styles-header"
138
+ }, libraryFontSelected?.name)), notice && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalSpacer, {
139
+ margin: 1
140
+ }), (0, _react.createElement)(_components.Notice, {
141
+ status: notice.type,
142
+ onRemove: () => setNotice(null)
143
+ }, notice.message), (0, _react.createElement)(_components.__experimentalSpacer, {
144
+ margin: 1
145
+ })), (0, _react.createElement)(_components.__experimentalSpacer, {
146
+ margin: 4
147
+ }), (0, _react.createElement)(_components.__experimentalText, null, (0, _i18n.__)('Choose font variants. Keep in mind that too many variants could make your site slower.')), (0, _react.createElement)(_components.__experimentalSpacer, {
148
+ margin: 4
149
+ }), (0, _react.createElement)(_components.__experimentalVStack, {
150
+ spacing: 0
151
+ }, (0, _react.createElement)(_components.__experimentalSpacer, {
152
+ margin: 8
153
+ }), getFontFacesToDisplay(libraryFontSelected).map((face, i) => (0, _react.createElement)(_libraryFontVariant.default, {
154
+ font: libraryFontSelected,
155
+ face: face,
156
+ key: `face${i}`
157
+ }))))), (0, _react.createElement)(_components.__experimentalHStack, {
158
+ justify: "flex-end",
159
+ className: "font-library-modal__tabpanel-layout__footer"
160
+ }, isInstalling && (0, _react.createElement)(ProgressBar, null), shouldDisplayDeleteButton && (0, _react.createElement)(_components.Button, {
137
161
  isDestructive: true,
138
162
  variant: "tertiary",
139
163
  onClick: handleUninstallClick
140
- }, (0, _i18n.__)('Delete'))), (0, _react.createElement)(_components.Button, {
164
+ }, (0, _i18n.__)('Delete')), (0, _react.createElement)(_components.Button, {
141
165
  variant: "primary",
142
166
  onClick: saveFontFamilies,
143
167
  disabled: !fontFamiliesHasChanges,
144
168
  __experimentalIsFocusable: true
145
- }, (0, _i18n.__)('Update')));
169
+ }, (0, _i18n.__)('Update'))));
170
+ }
171
+ function ConfirmDeleteDialog({
172
+ font,
173
+ isOpen,
174
+ setIsOpen,
175
+ setNotice,
176
+ uninstallFontFamily,
177
+ handleSetLibraryFontSelected
178
+ }) {
179
+ const navigator = (0, _components.__experimentalUseNavigator)();
180
+ const handleConfirmUninstall = async () => {
181
+ setNotice(null);
182
+ setIsOpen(false);
183
+ try {
184
+ await uninstallFontFamily(font);
185
+ navigator.goBack();
186
+ handleSetLibraryFontSelected(null);
187
+ setNotice({
188
+ type: 'success',
189
+ message: (0, _i18n.__)('Font family uninstalled successfully.')
190
+ });
191
+ } catch (error) {
192
+ setNotice({
193
+ type: 'error',
194
+ message: (0, _i18n.__)('There was an error uninstalling the font family. ') + error.message
195
+ });
196
+ }
197
+ };
198
+ const handleCancelUninstall = () => {
199
+ setIsOpen(false);
200
+ };
201
+ return (0, _react.createElement)(_components.__experimentalConfirmDialog, {
202
+ isOpen: isOpen,
203
+ cancelButtonText: (0, _i18n.__)('Cancel'),
204
+ confirmButtonText: (0, _i18n.__)('Delete'),
205
+ onCancel: handleCancelUninstall,
206
+ onConfirm: handleConfirmUninstall
207
+ }, font && (0, _i18n.sprintf)( /* translators: %s: Name of the font. */
208
+ (0, _i18n.__)('Are you sure you want to delete "%s" font and all its variants and assets?'), font.name));
146
209
  }
147
210
  var _default = exports.default = InstalledFonts;
148
211
  //# sourceMappingURL=installed-fonts.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_components","_tabPanelLayout","_interopRequireDefault","_context","_libraryFontDetails","_libraryFontCard","_confirmDeleteDialog","_lockUnlock","ProgressBar","unlock","componentsPrivateApis","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","notice","setNotice","useContext","FontLibraryContext","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","handleUnselectFont","handleSelectFont","font","handleConfirmUninstall","type","message","__","error","handleUninstallClick","handleCancelUninstall","tabDescription","shouldDisplayDeleteButton","source","useEffect","_react","createElement","default","title","name","description","handleBack","footer","Footer","Fragment","FlexItem","__experimentalSpacer","margin","Spinner","length","map","key","slug","onClick","__experimentalText","className","saveFontFamilies","fontFamiliesHasChanges","isInstalling","__experimentalHStack","justify","Button","isDestructive","variant","disabled","__experimentalIsFocusable","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport {\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\tButton,\n\tSpinner,\n\tFlexItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TabPanelLayout from './tab-panel-layout';\nimport { FontLibraryContext } from './context';\nimport LibraryFontDetails from './library-font-details';\nimport LibraryFontCard from './library-font-card';\nimport ConfirmDeleteDialog from './confirm-delete-dialog';\nimport { unlock } from '../../../lock-unlock';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\n\tconst handleUnselectFont = () => {\n\t\thandleSetLibraryFontSelected( null );\n\t};\n\n\tconst handleSelectFont = ( font ) => {\n\t\thandleSetLibraryFontSelected( font );\n\t};\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\n\t\ttry {\n\t\t\tawait uninstallFontFamily( libraryFontSelected );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\n\t\t\t// If the font was succesfully uninstalled it is unselected.\n\t\t\thandleUnselectFont();\n\t\t\tsetIsConfirmDeleteOpen( false );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleUninstallClick = async () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsConfirmDeleteOpen( false );\n\t};\n\n\tconst tabDescription = !! libraryFontSelected\n\t\t? __(\n\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t )\n\t\t: null;\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected && libraryFontSelected?.source !== 'theme';\n\n\tuseEffect( () => {\n\t\thandleSelectFont( libraryFontSelected );\n\t\trefreshLibrary();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\treturn (\n\t\t<TabPanelLayout\n\t\t\ttitle={ libraryFontSelected?.name || '' }\n\t\t\tdescription={ tabDescription }\n\t\t\tnotice={ notice }\n\t\t\thandleBack={ !! libraryFontSelected && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\t<Footer\n\t\t\t\t\tshouldDisplayDeleteButton={ shouldDisplayDeleteButton }\n\t\t\t\t\thandleUninstallClick={ handleUninstallClick }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<ConfirmDeleteDialog\n\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t/>\n\n\t\t\t{ ! libraryFontSelected && (\n\t\t\t\t<>\n\t\t\t\t\t{ isResolvingLibrary && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ libraryFontSelected && (\n\t\t\t\t<LibraryFontDetails\n\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</TabPanelLayout>\n\t);\n}\n\nfunction Footer( { shouldDisplayDeleteButton, handleUninstallClick } ) {\n\tconst { saveFontFamilies, fontFamiliesHasChanges, isInstalling } =\n\t\tuseContext( FontLibraryContext );\n\treturn (\n\t\t<HStack justify=\"flex-end\">\n\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t<div>\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ saveFontFamilies }\n\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t__experimentalIsFocusable\n\t\t\t>\n\t\t\t\t{ __( 'Update' ) }\n\t\t\t</Button>\n\t\t</HStack>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAaA,IAAAG,eAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAF,sBAAA,CAAAJ,OAAA;AACA,IAAAO,gBAAA,GAAAH,sBAAA,CAAAJ,OAAA;AACA,IAAAQ,oBAAA,GAAAJ,sBAAA,CAAAJ,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAvBA;AACA;AACA;;AAaA;AACA;AACA;;AAOA,MAAM;EAAEU;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEvD,SAASC,cAAcA,CAAA,EAAG;EACzB,MAAM;IACLC,eAAe;IACfC,mBAAmB;IACnBC,cAAc;IACdC,4BAA4B;IAC5BC,cAAc;IACdC,mBAAmB;IACnBC,kBAAkB;IAClBC,MAAM;IACNC;EACD,CAAC,GAAG,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EACpC,MAAM,CAAEC,mBAAmB,EAAEC,sBAAsB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAEzE,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;IAChCX,4BAA4B,CAAE,IAAK,CAAC;EACrC,CAAC;EAED,MAAMY,gBAAgB,GAAKC,IAAI,IAAM;IACpCb,4BAA4B,CAAEa,IAAK,CAAC;EACrC,CAAC;EAED,MAAMC,sBAAsB,GAAG,MAAAA,CAAA,KAAY;IAC1CT,SAAS,CAAE,IAAK,CAAC;IAEjB,IAAI;MACH,MAAMH,mBAAmB,CAAEJ,mBAAoB,CAAC;MAChDO,SAAS,CAAE;QACVU,IAAI,EAAE,SAAS;QACfC,OAAO,EAAE,IAAAC,QAAE,EAAE,uCAAwC;MACtD,CAAE,CAAC;;MAEH;MACAN,kBAAkB,CAAC,CAAC;MACpBF,sBAAsB,CAAE,KAAM,CAAC;IAChC,CAAC,CAAC,OAAQS,KAAK,EAAG;MACjBb,SAAS,CAAE;QACVU,IAAI,EAAE,OAAO;QACbC,OAAO,EACN,IAAAC,QAAE,EAAE,mDAAoD,CAAC,GACzDC,KAAK,CAACF;MACR,CAAE,CAAC;IACJ;EACD,CAAC;EAED,MAAMG,oBAAoB,GAAG,MAAAA,CAAA,KAAY;IACxCV,sBAAsB,CAAE,IAAK,CAAC;EAC/B,CAAC;EAED,MAAMW,qBAAqB,GAAGA,CAAA,KAAM;IACnCX,sBAAsB,CAAE,KAAM,CAAC;EAChC,CAAC;EAED,MAAMY,cAAc,GAAG,CAAC,CAAEvB,mBAAmB,GAC1C,IAAAmB,QAAE,EACF,wFACA,CAAC,GACD,IAAI;EAEP,MAAMK,yBAAyB,GAC9B,CAAC,CAAExB,mBAAmB,IAAIA,mBAAmB,EAAEyB,MAAM,KAAK,OAAO;EAElE,IAAAC,kBAAS,EAAE,MAAM;IAChBZ,gBAAgB,CAAEd,mBAAoB,CAAC;IACvCG,cAAc,CAAC,CAAC;IAChB;EACD,CAAC,EAAE,EAAG,CAAC;EAEP,OACC,IAAAwB,MAAA,CAAAC,aAAA,EAACxC,eAAA,CAAAyC,OAAc;IACdC,KAAK,EAAG9B,mBAAmB,EAAE+B,IAAI,IAAI,EAAI;IACzCC,WAAW,EAAGT,cAAgB;IAC9BjB,MAAM,EAAGA,MAAQ;IACjB2B,UAAU,EAAG,CAAC,CAAEjC,mBAAmB,IAAIa,kBAAoB;IAC3DqB,MAAM,EACL,IAAAP,MAAA,CAAAC,aAAA,EAACO,MAAM;MACNX,yBAAyB,EAAGA,yBAA2B;MACvDH,oBAAoB,EAAGA;IAAsB,CAC7C;EACD,GAED,IAAAM,MAAA,CAAAC,aAAA,EAACnC,oBAAA,CAAAoC,OAAmB;IACnBd,IAAI,EAAGf,mBAAqB;IAC5BU,mBAAmB,EAAGA,mBAAqB;IAC3CM,sBAAsB,EAAGA,sBAAwB;IACjDM,qBAAqB,EAAGA;EAAuB,CAC/C,CAAC,EAEA,CAAEtB,mBAAmB,IACtB,IAAA2B,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAS,QAAA,QACG/B,kBAAkB,IACnB,IAAAsB,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAkD,QAAQ,QACR,IAAAV,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAmD,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACvB,IAAAZ,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAqD,OAAO,MAAE,CAAC,EACX,IAAAb,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAmD,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CACb,CACV,EACCxC,eAAe,CAAC0C,MAAM,GAAG,CAAC,IAC3B,IAAAd,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAS,QAAA,QACGrC,eAAe,CAAC2C,GAAG,CAAI3B,IAAI,IAC5B,IAAAY,MAAA,CAAAC,aAAA,EAACpC,gBAAA,CAAAqC,OAAe;IACfd,IAAI,EAAGA,IAAM;IACb4B,GAAG,EAAG5B,IAAI,CAAC6B,IAAM;IACjBC,OAAO,EAAGA,CAAA,KAAM;MACf/B,gBAAgB,CAAEC,IAAK,CAAC;IACzB;EAAG,CACH,CACA,CAAC,EACH,IAAAY,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAmD,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CACrB,CACF,EAECtC,cAAc,CAACwC,MAAM,GAAG,CAAC,IAC1B,IAAAd,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAS,QAAA,QACC,IAAAT,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAA2D,kBAAI;IAACC,SAAS,EAAC;EAA8B,GAC3C,IAAA5B,QAAE,EAAE,aAAc,CACf,CAAC,EAEP,IAAAQ,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAmD,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CAAC,EACrBtC,cAAc,CAACyC,GAAG,CAAI3B,IAAI,IAC3B,IAAAY,MAAA,CAAAC,aAAA,EAACpC,gBAAA,CAAAqC,OAAe;IACfd,IAAI,EAAGA,IAAM;IACb4B,GAAG,EAAG5B,IAAI,CAAC6B,IAAM;IACjBC,OAAO,EAAGA,CAAA,KAAM;MACf/B,gBAAgB,CAAEC,IAAK,CAAC;IACzB;EAAG,CACH,CACA,CACD,CACF,EACD,IAAAY,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAmD,oBAAM;IAACC,MAAM,EAAG;EAAI,CAAE,CACtB,CACF,EAECvC,mBAAmB,IACpB,IAAA2B,MAAA,CAAAC,aAAA,EAACrC,mBAAA,CAAAsC,OAAkB;IAClBd,IAAI,EAAGf,mBAAqB;IAC5BU,mBAAmB,EAAGA,mBAAqB;IAC3CM,sBAAsB,EAAGA,sBAAwB;IACjDM,qBAAqB,EAAGA;EAAuB,CAC/C,CAEa,CAAC;AAEnB;AAEA,SAASa,MAAMA,CAAE;EAAEX,yBAAyB;EAAEH;AAAqB,CAAC,EAAG;EACtE,MAAM;IAAE2B,gBAAgB;IAAEC,sBAAsB;IAAEC;EAAa,CAAC,GAC/D,IAAA1C,mBAAU,EAAEC,2BAAmB,CAAC;EACjC,OACC,IAAAkB,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAgE,oBAAM;IAACC,OAAO,EAAC;EAAU,GACvBF,YAAY,IAAI,IAAAvB,MAAA,CAAAC,aAAA,EAACjC,WAAW,MAAE,CAAC,EACjC,IAAAgC,MAAA,CAAAC,aAAA,eACGJ,yBAAyB,IAC1B,IAAAG,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAkE,MAAM;IACNC,aAAa;IACbC,OAAO,EAAC,UAAU;IAClBV,OAAO,EAAGxB;EAAsB,GAE9B,IAAAF,QAAE,EAAE,QAAS,CACR,CAEL,CAAC,EACN,IAAAQ,MAAA,CAAAC,aAAA,EAACzC,WAAA,CAAAkE,MAAM;IACNE,OAAO,EAAC,SAAS;IACjBV,OAAO,EAAGG,gBAAkB;IAC5BQ,QAAQ,EAAG,CAAEP,sBAAwB;IACrCQ,yBAAyB;EAAA,GAEvB,IAAAtC,QAAE,EAAE,QAAS,CACR,CACD,CAAC;AAEX;AAAC,IAAAuC,QAAA,GAAAC,OAAA,CAAA9B,OAAA,GAEc/B,cAAc"}
1
+ {"version":3,"names":["_components","require","_element","_i18n","_icons","_lockUnlock","_context","_fontCard","_interopRequireDefault","_libraryFontVariant","_sortFontFaces","ProgressBar","unlock","componentsPrivateApis","InstalledFonts","baseCustomFonts","libraryFontSelected","baseThemeFonts","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamiliesHasChanges","notice","setNotice","useContext","FontLibraryContext","isConfirmDeleteOpen","setIsConfirmDeleteOpen","useState","shouldDisplayDeleteButton","source","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","sortFontFaces","getFontCardVariantsText","variantsInstalled","variantsActive","slug","sprintf","__","useEffect","_react","createElement","className","__experimentalHStack","align","__experimentalSpacer","Spinner","__experimentalNavigatorProvider","initialPath","__experimentalNavigatorScreen","path","Fragment","margin","Notice","status","type","onRemove","message","__experimentalText","map","default","key","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","Flex","justify","__experimentalNavigatorToParentButton","icon","chevronLeft","isSmall","__experimentalHeading","level","size","name","__experimentalVStack","spacing","face","i","Button","isDestructive","variant","disabled","__experimentalIsFocusable","navigator","useNavigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","__experimentalConfirmDialog","cancelButtonText","confirmButtonText","onCancel","onConfirm","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tSpinner,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tfontFamiliesHasChanges,\n\t\tnotice,\n\t\tsetNotice,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected && libraryFontSelected?.source !== 'theme';\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<HStack align=\"center\">\n\t\t\t\t\t<Spacer />\n\t\t\t\t\t<Spinner />\n\t\t\t\t\t<Spacer />\n\t\t\t\t</HStack>\n\t\t\t) }\n\n\t\t\t<NavigatorProvider\n\t\t\t\tinitialPath={ libraryFontSelected ? '/fontFamily' : '/' }\n\t\t\t>\n\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\tnavigatorPath={ '/fontFamily' }\n\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( font );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 16 } />\n\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t{ getFontFacesToDisplay( libraryFontSelected ).map(\n\t\t\t\t\t\t\t( face, i ) => (\n\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</NavigatorScreen>\n\t\t\t</NavigatorProvider>\n\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\tclassName=\"font-library-modal__tabpanel-layout__footer\"\n\t\t\t>\n\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ saveFontFamilies }\n\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default InstalledFonts;\n"],"mappings":"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"}
@@ -42,7 +42,7 @@ function LibraryFontVariant({
42
42
  } = (0, _lockUnlock.unlock)(_components.privateApis);
43
43
  const checkboxId = kebabCase(`${font.slug}-${(0, _utils.getFontFaceVariantName)(face)}`);
44
44
  return (0, _react.createElement)("div", {
45
- className: "font-library-modal__library-font-variant"
45
+ className: "font-library-modal__font-card"
46
46
  }, (0, _react.createElement)(_components.Flex, {
47
47
  justify: "flex-start",
48
48
  align: "center",
@@ -55,7 +55,7 @@ function LibraryFontVariant({
55
55
  }), (0, _react.createElement)("label", {
56
56
  htmlFor: checkboxId
57
57
  }, (0, _react.createElement)(_fontDemo.default, {
58
- fontFace: face,
58
+ font: face,
59
59
  text: displayName,
60
60
  onClick: handleToggleActivation
61
61
  }))));
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_components","_utils","_context","_fontDemo","_interopRequireDefault","_lockUnlock","LibraryFontVariant","face","font","isFontActivated","toggleActivateFont","useContext","FontLibraryContext","isInstalled","fontFace","length","slug","fontStyle","fontWeight","source","handleToggleActivation","displayName","name","getFontFaceVariantName","kebabCase","unlock","componentsPrivateApis","checkboxId","_react","createElement","className","Flex","justify","align","gap","CheckboxControl","checked","onChange","__nextHasNoMarginBottom","id","htmlFor","default","text","onClick","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport { FontLibraryContext } from './context';\nimport FontFaceDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nfunction LibraryFontVariant( { face, font } ) {\n\tconst { isFontActivated, toggleActivateFont } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst isInstalled =\n\t\tfont?.fontFace?.length > 0\n\t\t\t? isFontActivated(\n\t\t\t\t\tfont.slug,\n\t\t\t\t\tface.fontStyle,\n\t\t\t\t\tface.fontWeight,\n\t\t\t\t\tfont.source\n\t\t\t )\n\t\t\t: isFontActivated( font.slug, null, null, font.source );\n\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace?.length > 0 ) {\n\t\t\ttoggleActivateFont( font, face );\n\t\t\treturn;\n\t\t}\n\t\ttoggleActivateFont( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<div className=\"font-library-modal__library-font-variant\">\n\t\t\t<Flex justify=\"flex-start\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ isInstalled }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t/>\n\t\t\t\t<label htmlFor={ checkboxId }>\n\t\t\t\t\t<FontFaceDemo\n\t\t\t\t\t\tfontFace={ face }\n\t\t\t\t\t\ttext={ displayName }\n\t\t\t\t\t\tonClick={ handleToggleActivation }\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default LibraryFontVariant;\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AASA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAhBA;AACA;AACA;;AAQA;AACA;AACA;;AAMA,SAASO,kBAAkBA,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAmB,CAAC,GAC5C,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EAEjC,MAAMC,WAAW,GAChBL,IAAI,EAAEM,QAAQ,EAAEC,MAAM,GAAG,CAAC,GACvBN,eAAe,CACfD,IAAI,CAACQ,IAAI,EACTT,IAAI,CAACU,SAAS,EACdV,IAAI,CAACW,UAAU,EACfV,IAAI,CAACW,MACL,CAAC,GACDV,eAAe,CAAED,IAAI,CAACQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAER,IAAI,CAACW,MAAO,CAAC;EAEzD,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACpC,IAAKZ,IAAI,EAAEM,QAAQ,EAAEC,MAAM,GAAG,CAAC,EAAG;MACjCL,kBAAkB,CAAEF,IAAI,EAAED,IAAK,CAAC;MAChC;IACD;IACAG,kBAAkB,CAAEF,IAAK,CAAC;EAC3B,CAAC;EAED,MAAMa,WAAW,GAAGb,IAAI,CAACc,IAAI,GAAG,GAAG,GAAG,IAAAC,6BAAsB,EAAEhB,IAAK,CAAC;EACpE,MAAM;IAAEiB;EAAU,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;EACrD,MAAMC,UAAU,GAAGH,SAAS,CAC1B,GAAGhB,IAAI,CAACQ,IAAM,IAAI,IAAAO,6BAAsB,EAAEhB,IAAK,CAAG,EACpD,CAAC;EAED,OACC,IAAAqB,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA0C,GACxD,IAAAF,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAA+B,IAAI;IAACC,OAAO,EAAC,YAAY;IAACC,KAAK,EAAC,QAAQ;IAACC,GAAG,EAAC;EAAM,GACnD,IAAAN,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAAmC,eAAe;IACfC,OAAO,EAAGvB,WAAa;IACvBwB,QAAQ,EAAGjB,sBAAwB;IACnCkB,uBAAuB,EAAG,IAAM;IAChCC,EAAE,EAAGZ;EAAY,CACjB,CAAC,EACF,IAAAC,MAAA,CAAAC,aAAA;IAAOW,OAAO,EAAGb;EAAY,GAC5B,IAAAC,MAAA,CAAAC,aAAA,EAAC1B,SAAA,CAAAsC,OAAY;IACZ3B,QAAQ,EAAGP,IAAM;IACjBmC,IAAI,EAAGrB,WAAa;IACpBsB,OAAO,EAAGvB;EAAwB,CAClC,CACK,CACF,CACF,CAAC;AAER;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAJ,OAAA,GAEcnC,kBAAkB"}
1
+ {"version":3,"names":["_element","require","_components","_utils","_context","_fontDemo","_interopRequireDefault","_lockUnlock","LibraryFontVariant","face","font","isFontActivated","toggleActivateFont","useContext","FontLibraryContext","isInstalled","fontFace","length","slug","fontStyle","fontWeight","source","handleToggleActivation","displayName","name","getFontFaceVariantName","kebabCase","unlock","componentsPrivateApis","checkboxId","_react","createElement","className","Flex","justify","align","gap","CheckboxControl","checked","onChange","__nextHasNoMarginBottom","id","htmlFor","default","text","onClick","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport { FontLibraryContext } from './context';\nimport FontDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nfunction LibraryFontVariant( { face, font } ) {\n\tconst { isFontActivated, toggleActivateFont } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst isInstalled =\n\t\tfont?.fontFace?.length > 0\n\t\t\t? isFontActivated(\n\t\t\t\t\tfont.slug,\n\t\t\t\t\tface.fontStyle,\n\t\t\t\t\tface.fontWeight,\n\t\t\t\t\tfont.source\n\t\t\t )\n\t\t\t: isFontActivated( font.slug, null, null, font.source );\n\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace?.length > 0 ) {\n\t\t\ttoggleActivateFont( font, face );\n\t\t\treturn;\n\t\t}\n\t\ttoggleActivateFont( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<div className=\"font-library-modal__font-card\">\n\t\t\t<Flex justify=\"flex-start\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ isInstalled }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t/>\n\t\t\t\t<label htmlFor={ checkboxId }>\n\t\t\t\t\t<FontDemo\n\t\t\t\t\t\tfont={ face }\n\t\t\t\t\t\ttext={ displayName }\n\t\t\t\t\t\tonClick={ handleToggleActivation }\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default LibraryFontVariant;\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AASA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAhBA;AACA;AACA;;AAQA;AACA;AACA;;AAMA,SAASO,kBAAkBA,CAAE;EAAEC,IAAI;EAAEC;AAAK,CAAC,EAAG;EAC7C,MAAM;IAAEC,eAAe;IAAEC;EAAmB,CAAC,GAC5C,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EAEjC,MAAMC,WAAW,GAChBL,IAAI,EAAEM,QAAQ,EAAEC,MAAM,GAAG,CAAC,GACvBN,eAAe,CACfD,IAAI,CAACQ,IAAI,EACTT,IAAI,CAACU,SAAS,EACdV,IAAI,CAACW,UAAU,EACfV,IAAI,CAACW,MACL,CAAC,GACDV,eAAe,CAAED,IAAI,CAACQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAER,IAAI,CAACW,MAAO,CAAC;EAEzD,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACpC,IAAKZ,IAAI,EAAEM,QAAQ,EAAEC,MAAM,GAAG,CAAC,EAAG;MACjCL,kBAAkB,CAAEF,IAAI,EAAED,IAAK,CAAC;MAChC;IACD;IACAG,kBAAkB,CAAEF,IAAK,CAAC;EAC3B,CAAC;EAED,MAAMa,WAAW,GAAGb,IAAI,CAACc,IAAI,GAAG,GAAG,GAAG,IAAAC,6BAAsB,EAAEhB,IAAK,CAAC;EACpE,MAAM;IAAEiB;EAAU,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;EACrD,MAAMC,UAAU,GAAGH,SAAS,CAC1B,GAAGhB,IAAI,CAACQ,IAAM,IAAI,IAAAO,6BAAsB,EAAEhB,IAAK,CAAG,EACpD,CAAC;EAED,OACC,IAAAqB,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA+B,GAC7C,IAAAF,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAA+B,IAAI;IAACC,OAAO,EAAC,YAAY;IAACC,KAAK,EAAC,QAAQ;IAACC,GAAG,EAAC;EAAM,GACnD,IAAAN,MAAA,CAAAC,aAAA,EAAC7B,WAAA,CAAAmC,eAAe;IACfC,OAAO,EAAGvB,WAAa;IACvBwB,QAAQ,EAAGjB,sBAAwB;IACnCkB,uBAAuB,EAAG,IAAM;IAChCC,EAAE,EAAGZ;EAAY,CACjB,CAAC,EACF,IAAAC,MAAA,CAAAC,aAAA;IAAOW,OAAO,EAAGb;EAAY,GAC5B,IAAAC,MAAA,CAAAC,aAAA,EAAC1B,SAAA,CAAAsC,OAAQ;IACRjC,IAAI,EAAGD,IAAM;IACbmC,IAAI,EAAGrB,WAAa;IACpBsB,OAAO,EAAGvB;EAAwB,CAClC,CACK,CACF,CACF,CAAC;AAER;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAJ,OAAA,GAEcnC,kBAAkB"}
@@ -14,7 +14,6 @@ var _context = require("./context");
14
14
  var _libFont = require("../../../../lib/lib-font.browser");
15
15
  var _makeFamiliesFromFaces = _interopRequireDefault(require("./utils/make-families-from-faces"));
16
16
  var _utils = require("./utils");
17
- var _tabPanelLayout = _interopRequireDefault(require("./tab-panel-layout"));
18
17
  var _lockUnlock = require("../../../lock-unlock");
19
18
  /**
20
19
  * WordPress dependencies
@@ -155,13 +154,16 @@ function UploadFonts() {
155
154
  }
156
155
  setIsUploading(false);
157
156
  };
158
- return (0, _react.createElement)(_tabPanelLayout.default, {
159
- notice: notice
157
+ return (0, _react.createElement)("div", {
158
+ className: "font-library-modal__tabpanel-layout"
160
159
  }, (0, _react.createElement)(_components.DropZone, {
161
160
  onFilesDrop: handleDropZone
162
161
  }), (0, _react.createElement)(_components.__experimentalVStack, {
163
162
  className: "font-library-modal__local-fonts"
164
- }, isUploading && (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)("div", {
163
+ }, notice && (0, _react.createElement)(_components.Notice, {
164
+ status: notice.type,
165
+ onRemove: () => setNotice(null)
166
+ }, notice.message), isUploading && (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)("div", {
165
167
  className: "font-library-modal__upload-area"
166
168
  }, (0, _react.createElement)(ProgressBar, null))), !isUploading && (0, _react.createElement)(_components.FormFileUpload, {
167
169
  accept: _constants.ALLOWED_FILE_EXTENSIONS.map(ext => `.${ext}`).join(','),
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_element","_constants","_context","_libFont","_makeFamiliesFromFaces","_interopRequireDefault","_utils","_tabPanelLayout","_lockUnlock","ProgressBar","unlock","componentsPrivateApis","UploadFonts","installFont","notice","setNotice","useContext","FontLibraryContext","isUploading","setIsUploading","useState","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","allowedFiles","filter","file","has","name","fileExtension","split","pop","toLowerCase","ALLOWED_FILE_EXTENSIONS","includes","add","length","loadFiles","type","message","__","fontFacesLoaded","Promise","all","map","fontFile","fontFaceData","getFontFaceMetadata","loadFontFaceInBrowser","handleInstall","readFileAsArrayBuffer","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","buffer","fontObj","Font","fromDataBuffer","onloadEvent","font","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","makeFamiliesFromFaces","error","_react","createElement","default","DropZone","onFilesDrop","__experimentalVStack","className","FlexItem","FormFileUpload","accept","ext","join","multiple","onChange","render","openFileDialog","Button","onClick","__experimentalSpacer","margin","__experimentalText","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropZone,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFormFileUpload,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useContext, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\nimport TabPanelLayout from './tab-panel-layout';\nimport { unlock } from '../../../lock-unlock';\n\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction UploadFonts() {\n\tconst { installFont, notice, setNotice } = useContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tconst allowedFiles = selectedFiles.filter( ( file ) => {\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn false; // Discard duplicates\n\t\t\t}\n\t\t\t// Eliminates files that are not allowed\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn true; // Keep file if the extension is allowed\n\t\t\t}\n\t\t\treturn false; // Discard file extension not allowed\n\t\t} );\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __( 'No fonts found to install.' ),\n\t\t\t} );\n\t\t\tsetIsUploading( false );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\thandleInstall( fontFacesLoaded );\n\t};\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\n\t\tif ( fontFamilies.length > 1 ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Variants from only one font family can be uploaded at a time.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFont( fontFamilies[ 0 ] );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<TabPanelLayout notice={ notice }>\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload font' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .tff, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</TabPanelLayout>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_components","_element","_constants","_context","_libFont","_makeFamiliesFromFaces","_interopRequireDefault","_utils","_lockUnlock","ProgressBar","unlock","componentsPrivateApis","UploadFonts","installFont","notice","setNotice","useContext","FontLibraryContext","isUploading","setIsUploading","useState","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","allowedFiles","filter","file","has","name","fileExtension","split","pop","toLowerCase","ALLOWED_FILE_EXTENSIONS","includes","add","length","loadFiles","type","message","__","fontFacesLoaded","Promise","all","map","fontFile","fontFaceData","getFontFaceMetadata","loadFontFaceInBrowser","handleInstall","readFileAsArrayBuffer","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","buffer","fontObj","Font","fromDataBuffer","onloadEvent","font","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","makeFamiliesFromFaces","error","_react","createElement","className","DropZone","onFilesDrop","__experimentalVStack","Notice","status","onRemove","FlexItem","FormFileUpload","accept","ext","join","multiple","onChange","render","openFileDialog","Button","onClick","__experimentalSpacer","margin","__experimentalText","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useContext, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\nimport { unlock } from '../../../lock-unlock';\n\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction UploadFonts() {\n\tconst { installFont, notice, setNotice } = useContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tconst allowedFiles = selectedFiles.filter( ( file ) => {\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn false; // Discard duplicates\n\t\t\t}\n\t\t\t// Eliminates files that are not allowed\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn true; // Keep file if the extension is allowed\n\t\t\t}\n\t\t\treturn false; // Discard file extension not allowed\n\t\t} );\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __( 'No fonts found to install.' ),\n\t\t\t} );\n\t\t\tsetIsUploading( false );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\thandleInstall( fontFacesLoaded );\n\t};\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\n\t\tif ( fontFamilies.length > 1 ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Variants from only one font family can be uploaded at a time.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait installFont( fontFamilies[ 0 ] );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ notice && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload font' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .tff, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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"}
@@ -69,7 +69,8 @@ function ScreenRevisions() {
69
69
  const selectedRevisionMatchesEditorStyles = areGlobalStyleConfigsEqual(currentlySelectedRevision, currentEditorGlobalStyles);
70
70
  const onCloseRevisions = () => {
71
71
  goTo('/'); // Return to global styles main panel.
72
- setEditorCanvasContainerView(undefined);
72
+ const canvasContainerView = editorCanvasContainerView === 'global-styles-revisions:style-book' ? 'style-book' : undefined;
73
+ setEditorCanvasContainerView(canvasContainerView);
73
74
  };
74
75
  const restoreRevision = revision => {
75
76
  setUserConfig(() => ({
@@ -89,7 +90,6 @@ function ScreenRevisions() {
89
90
  (0, _element.useEffect)(() => {
90
91
  if (!editorCanvasContainerView || !editorCanvasContainerView.startsWith('global-styles-revisions')) {
91
92
  goTo('/'); // Return to global styles main panel.
92
- setEditorCanvasContainerView(editorCanvasContainerView);
93
93
  }
94
94
  }, [editorCanvasContainerView]);
95
95
  (0, _element.useEffect)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_data","_element","_blockEditor","_header","_interopRequireDefault","_lockUnlock","_revisions","_store","_useGlobalStylesRevisions","_revisionsButtons","_styleBook","_pagination","GlobalStylesContext","areGlobalStyleConfigsEqual","unlock","blockEditorPrivateApis","PAGE_SIZE","ScreenRevisions","goTo","useNavigator","user","currentEditorGlobalStyles","setUserConfig","useContext","blocks","editorCanvasContainerView","useSelect","select","editSiteStore","getEditorCanvasContainerView","blockEditorStore","getBlocks","currentPage","setCurrentPage","useState","currentRevisions","setCurrentRevisions","revisions","isLoading","hasUnsavedChanges","revisionsCount","useGlobalStylesRevisions","query","per_page","page","numPages","Math","ceil","currentlySelectedRevision","setCurrentlySelectedRevision","isLoadingRevisionWithUnsavedChanges","setIsLoadingRevisionWithUnsavedChanges","setEditorCanvasContainerView","useDispatch","selectedRevisionMatchesEditorStyles","onCloseRevisions","undefined","restoreRevision","revision","styles","settings","selectRevision","id","useEffect","startsWith","length","firstRevision","currentlySelectedRevisionId","shouldSelectFirstItem","isLoadButtonEnabled","hasRevisions","_react","createElement","Fragment","default","title","sprintf","__","description","onBack","Spinner","className","userConfig","isSelected","onClose","closeButtonLabel","onChange","selectedRevisionId","userRevisions","canApplyRevision","onApplyRevision","changePage","totalItems","disabled","label","__experimentalConfirmDialog","isOpen","confirmButtonText","onConfirm","onCancel","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext, useState, useEffect } from '@wordpress/element';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from '../header';\nimport { unlock } from '../../../lock-unlock';\nimport Revisions from '../../revisions';\nimport { store as editSiteStore } from '../../../store';\nimport useGlobalStylesRevisions from './use-global-styles-revisions';\nimport RevisionsButtons from './revisions-buttons';\nimport StyleBook from '../../style-book';\nimport Pagination from '../../pagination';\n\nconst { GlobalStylesContext, areGlobalStyleConfigsEqual } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst PAGE_SIZE = 10;\n\nfunction ScreenRevisions() {\n\tconst { goTo } = useNavigator();\n\tconst { user: currentEditorGlobalStyles, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\tconst { blocks, editorCanvasContainerView } = useSelect(\n\t\t( select ) => ( {\n\t\t\teditorCanvasContainerView: unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t).getEditorCanvasContainerView(),\n\t\t\tblocks: select( blockEditorStore ).getBlocks(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\tconst [ currentRevisions, setCurrentRevisions ] = useState( [] );\n\tconst { revisions, isLoading, hasUnsavedChanges, revisionsCount } =\n\t\tuseGlobalStylesRevisions( {\n\t\t\tquery: {\n\t\t\t\tper_page: PAGE_SIZE,\n\t\t\t\tpage: currentPage,\n\t\t\t},\n\t\t} );\n\n\tconst numPages = Math.ceil( revisionsCount / PAGE_SIZE );\n\n\tconst [ currentlySelectedRevision, setCurrentlySelectedRevision ] =\n\t\tuseState( currentEditorGlobalStyles );\n\tconst [\n\t\tisLoadingRevisionWithUnsavedChanges,\n\t\tsetIsLoadingRevisionWithUnsavedChanges,\n\t] = useState( false );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst selectedRevisionMatchesEditorStyles = areGlobalStyleConfigsEqual(\n\t\tcurrentlySelectedRevision,\n\t\tcurrentEditorGlobalStyles\n\t);\n\n\tconst onCloseRevisions = () => {\n\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\tsetEditorCanvasContainerView( undefined );\n\t};\n\n\tconst restoreRevision = ( revision ) => {\n\t\tsetUserConfig( () => ( {\n\t\t\tstyles: revision?.styles,\n\t\t\tsettings: revision?.settings,\n\t\t} ) );\n\t\tsetIsLoadingRevisionWithUnsavedChanges( false );\n\t\tonCloseRevisions();\n\t};\n\n\tconst selectRevision = ( revision ) => {\n\t\tsetCurrentlySelectedRevision( {\n\t\t\tstyles: revision?.styles || {},\n\t\t\tsettings: revision?.settings || {},\n\t\t\tid: revision?.id,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! editorCanvasContainerView ||\n\t\t\t! editorCanvasContainerView.startsWith( 'global-styles-revisions' )\n\t\t) {\n\t\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\t\tsetEditorCanvasContainerView( editorCanvasContainerView );\n\t\t}\n\t}, [ editorCanvasContainerView ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isLoading && revisions.length ) {\n\t\t\tsetCurrentRevisions( revisions );\n\t\t}\n\t}, [ revisions, isLoading ] );\n\n\tconst firstRevision = revisions[ 0 ];\n\tconst currentlySelectedRevisionId = currentlySelectedRevision?.id;\n\tconst shouldSelectFirstItem =\n\t\t!! firstRevision?.id &&\n\t\t! selectedRevisionMatchesEditorStyles &&\n\t\t! currentlySelectedRevisionId;\n\n\tuseEffect( () => {\n\t\t/*\n\t\t * Ensure that the first item is selected and loaded into the preview pane\n\t\t * when no revision is selected and the selected styles don't match the current editor styles.\n\t\t * This is required in case editor styles are changed outside the revisions panel,\n\t\t * e.g., via the reset styles function of useGlobalStylesReset().\n\t\t * See: https://github.com/WordPress/gutenberg/issues/55866\n\t\t */\n\t\tif ( shouldSelectFirstItem ) {\n\t\t\tsetCurrentlySelectedRevision( {\n\t\t\t\tstyles: firstRevision?.styles || {},\n\t\t\t\tsettings: firstRevision?.settings || {},\n\t\t\t\tid: firstRevision?.id,\n\t\t\t} );\n\t\t}\n\t}, [ shouldSelectFirstItem, firstRevision ] );\n\n\t// Only display load button if there is a revision to load,\n\t// and it is different from the current editor styles.\n\tconst isLoadButtonEnabled =\n\t\t!! currentlySelectedRevisionId &&\n\t\tcurrentlySelectedRevisionId !== 'unsaved' &&\n\t\t! selectedRevisionMatchesEditorStyles;\n\tconst hasRevisions = !! currentRevisions.length;\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={\n\t\t\t\t\trevisionsCount &&\n\t\t\t\t\t// translators: %s: number of revisions.\n\t\t\t\t\tsprintf( __( 'Revisions (%s)' ), revisionsCount )\n\t\t\t\t}\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Click on previously saved styles to preview them. To restore a selected version to the editor, hit \"Apply.\" When you\\'re ready, use the Save button to save your changes.'\n\t\t\t\t) }\n\t\t\t\tonBack={ onCloseRevisions }\n\t\t\t/>\n\t\t\t{ ! hasRevisions && (\n\t\t\t\t<Spinner className=\"edit-site-global-styles-screen-revisions__loading\" />\n\t\t\t) }\n\t\t\t{ hasRevisions &&\n\t\t\t\t( editorCanvasContainerView ===\n\t\t\t\t'global-styles-revisions:style-book' ? (\n\t\t\t\t\t<StyleBook\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tisSelected={ () => {} }\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetEditorCanvasContainerView(\n\t\t\t\t\t\t\t\t'global-styles-revisions'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<Revisions\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tcloseButtonLabel={ __( 'Close revisions' ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t<RevisionsButtons\n\t\t\t\tonChange={ selectRevision }\n\t\t\t\tselectedRevisionId={ currentlySelectedRevisionId }\n\t\t\t\tuserRevisions={ currentRevisions }\n\t\t\t\tcanApplyRevision={ isLoadButtonEnabled }\n\t\t\t\tonApplyRevision={ () =>\n\t\t\t\t\thasUnsavedChanges\n\t\t\t\t\t\t? setIsLoadingRevisionWithUnsavedChanges( true )\n\t\t\t\t\t\t: restoreRevision( currentlySelectedRevision )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<div className=\"edit-site-global-styles-screen-revisions__footer\">\n\t\t\t\t\t<Pagination\n\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__pagination\"\n\t\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\t\tnumPages={ numPages }\n\t\t\t\t\t\tchangePage={ setCurrentPage }\n\t\t\t\t\t\ttotalItems={ revisionsCount }\n\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\tlabel={ __( 'Global Styles pagination navigation' ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isLoadingRevisionWithUnsavedChanges && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen={ isLoadingRevisionWithUnsavedChanges }\n\t\t\t\t\tconfirmButtonText={ __( 'Apply' ) }\n\t\t\t\t\tonConfirm={ () =>\n\t\t\t\t\t\trestoreRevision( currentlySelectedRevision )\n\t\t\t\t\t}\n\t\t\t\t\tonCancel={ () =>\n\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges( false )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Any unsaved changes will be lost when you apply this revision.'\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenRevisions;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_components","_data","_element","_blockEditor","_header","_interopRequireDefault","_lockUnlock","_revisions","_store","_useGlobalStylesRevisions","_revisionsButtons","_styleBook","_pagination","GlobalStylesContext","areGlobalStyleConfigsEqual","unlock","blockEditorPrivateApis","PAGE_SIZE","ScreenRevisions","goTo","useNavigator","user","currentEditorGlobalStyles","setUserConfig","useContext","blocks","editorCanvasContainerView","useSelect","select","editSiteStore","getEditorCanvasContainerView","blockEditorStore","getBlocks","currentPage","setCurrentPage","useState","currentRevisions","setCurrentRevisions","revisions","isLoading","hasUnsavedChanges","revisionsCount","useGlobalStylesRevisions","query","per_page","page","numPages","Math","ceil","currentlySelectedRevision","setCurrentlySelectedRevision","isLoadingRevisionWithUnsavedChanges","setIsLoadingRevisionWithUnsavedChanges","setEditorCanvasContainerView","useDispatch","selectedRevisionMatchesEditorStyles","onCloseRevisions","canvasContainerView","undefined","restoreRevision","revision","styles","settings","selectRevision","id","useEffect","startsWith","length","firstRevision","currentlySelectedRevisionId","shouldSelectFirstItem","isLoadButtonEnabled","hasRevisions","_react","createElement","Fragment","default","title","sprintf","__","description","onBack","Spinner","className","userConfig","isSelected","onClose","closeButtonLabel","onChange","selectedRevisionId","userRevisions","canApplyRevision","onApplyRevision","changePage","totalItems","disabled","label","__experimentalConfirmDialog","isOpen","confirmButtonText","onConfirm","onCancel","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext, useState, useEffect } from '@wordpress/element';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from '../header';\nimport { unlock } from '../../../lock-unlock';\nimport Revisions from '../../revisions';\nimport { store as editSiteStore } from '../../../store';\nimport useGlobalStylesRevisions from './use-global-styles-revisions';\nimport RevisionsButtons from './revisions-buttons';\nimport StyleBook from '../../style-book';\nimport Pagination from '../../pagination';\n\nconst { GlobalStylesContext, areGlobalStyleConfigsEqual } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst PAGE_SIZE = 10;\n\nfunction ScreenRevisions() {\n\tconst { goTo } = useNavigator();\n\tconst { user: currentEditorGlobalStyles, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\tconst { blocks, editorCanvasContainerView } = useSelect(\n\t\t( select ) => ( {\n\t\t\teditorCanvasContainerView: unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t).getEditorCanvasContainerView(),\n\t\t\tblocks: select( blockEditorStore ).getBlocks(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\tconst [ currentRevisions, setCurrentRevisions ] = useState( [] );\n\tconst { revisions, isLoading, hasUnsavedChanges, revisionsCount } =\n\t\tuseGlobalStylesRevisions( {\n\t\t\tquery: {\n\t\t\t\tper_page: PAGE_SIZE,\n\t\t\t\tpage: currentPage,\n\t\t\t},\n\t\t} );\n\n\tconst numPages = Math.ceil( revisionsCount / PAGE_SIZE );\n\n\tconst [ currentlySelectedRevision, setCurrentlySelectedRevision ] =\n\t\tuseState( currentEditorGlobalStyles );\n\tconst [\n\t\tisLoadingRevisionWithUnsavedChanges,\n\t\tsetIsLoadingRevisionWithUnsavedChanges,\n\t] = useState( false );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst selectedRevisionMatchesEditorStyles = areGlobalStyleConfigsEqual(\n\t\tcurrentlySelectedRevision,\n\t\tcurrentEditorGlobalStyles\n\t);\n\n\tconst onCloseRevisions = () => {\n\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\tconst canvasContainerView =\n\t\t\teditorCanvasContainerView === 'global-styles-revisions:style-book'\n\t\t\t\t? 'style-book'\n\t\t\t\t: undefined;\n\t\tsetEditorCanvasContainerView( canvasContainerView );\n\t};\n\n\tconst restoreRevision = ( revision ) => {\n\t\tsetUserConfig( () => ( {\n\t\t\tstyles: revision?.styles,\n\t\t\tsettings: revision?.settings,\n\t\t} ) );\n\t\tsetIsLoadingRevisionWithUnsavedChanges( false );\n\t\tonCloseRevisions();\n\t};\n\n\tconst selectRevision = ( revision ) => {\n\t\tsetCurrentlySelectedRevision( {\n\t\t\tstyles: revision?.styles || {},\n\t\t\tsettings: revision?.settings || {},\n\t\t\tid: revision?.id,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! editorCanvasContainerView ||\n\t\t\t! editorCanvasContainerView.startsWith( 'global-styles-revisions' )\n\t\t) {\n\t\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\t}\n\t}, [ editorCanvasContainerView ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isLoading && revisions.length ) {\n\t\t\tsetCurrentRevisions( revisions );\n\t\t}\n\t}, [ revisions, isLoading ] );\n\n\tconst firstRevision = revisions[ 0 ];\n\tconst currentlySelectedRevisionId = currentlySelectedRevision?.id;\n\tconst shouldSelectFirstItem =\n\t\t!! firstRevision?.id &&\n\t\t! selectedRevisionMatchesEditorStyles &&\n\t\t! currentlySelectedRevisionId;\n\n\tuseEffect( () => {\n\t\t/*\n\t\t * Ensure that the first item is selected and loaded into the preview pane\n\t\t * when no revision is selected and the selected styles don't match the current editor styles.\n\t\t * This is required in case editor styles are changed outside the revisions panel,\n\t\t * e.g., via the reset styles function of useGlobalStylesReset().\n\t\t * See: https://github.com/WordPress/gutenberg/issues/55866\n\t\t */\n\t\tif ( shouldSelectFirstItem ) {\n\t\t\tsetCurrentlySelectedRevision( {\n\t\t\t\tstyles: firstRevision?.styles || {},\n\t\t\t\tsettings: firstRevision?.settings || {},\n\t\t\t\tid: firstRevision?.id,\n\t\t\t} );\n\t\t}\n\t}, [ shouldSelectFirstItem, firstRevision ] );\n\n\t// Only display load button if there is a revision to load,\n\t// and it is different from the current editor styles.\n\tconst isLoadButtonEnabled =\n\t\t!! currentlySelectedRevisionId &&\n\t\tcurrentlySelectedRevisionId !== 'unsaved' &&\n\t\t! selectedRevisionMatchesEditorStyles;\n\tconst hasRevisions = !! currentRevisions.length;\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={\n\t\t\t\t\trevisionsCount &&\n\t\t\t\t\t// translators: %s: number of revisions.\n\t\t\t\t\tsprintf( __( 'Revisions (%s)' ), revisionsCount )\n\t\t\t\t}\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Click on previously saved styles to preview them. To restore a selected version to the editor, hit \"Apply.\" When you\\'re ready, use the Save button to save your changes.'\n\t\t\t\t) }\n\t\t\t\tonBack={ onCloseRevisions }\n\t\t\t/>\n\t\t\t{ ! hasRevisions && (\n\t\t\t\t<Spinner className=\"edit-site-global-styles-screen-revisions__loading\" />\n\t\t\t) }\n\t\t\t{ hasRevisions &&\n\t\t\t\t( editorCanvasContainerView ===\n\t\t\t\t'global-styles-revisions:style-book' ? (\n\t\t\t\t\t<StyleBook\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tisSelected={ () => {} }\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetEditorCanvasContainerView(\n\t\t\t\t\t\t\t\t'global-styles-revisions'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<Revisions\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tcloseButtonLabel={ __( 'Close revisions' ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t<RevisionsButtons\n\t\t\t\tonChange={ selectRevision }\n\t\t\t\tselectedRevisionId={ currentlySelectedRevisionId }\n\t\t\t\tuserRevisions={ currentRevisions }\n\t\t\t\tcanApplyRevision={ isLoadButtonEnabled }\n\t\t\t\tonApplyRevision={ () =>\n\t\t\t\t\thasUnsavedChanges\n\t\t\t\t\t\t? setIsLoadingRevisionWithUnsavedChanges( true )\n\t\t\t\t\t\t: restoreRevision( currentlySelectedRevision )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<div className=\"edit-site-global-styles-screen-revisions__footer\">\n\t\t\t\t\t<Pagination\n\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__pagination\"\n\t\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\t\tnumPages={ numPages }\n\t\t\t\t\t\tchangePage={ setCurrentPage }\n\t\t\t\t\t\ttotalItems={ revisionsCount }\n\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\tlabel={ __( 'Global Styles pagination navigation' ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isLoadingRevisionWithUnsavedChanges && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen={ isLoadingRevisionWithUnsavedChanges }\n\t\t\t\t\tconfirmButtonText={ __( 'Apply' ) }\n\t\t\t\t\tonConfirm={ () =>\n\t\t\t\t\t\trestoreRevision( currentlySelectedRevision )\n\t\t\t\t\t}\n\t\t\t\t\tonCancel={ () =>\n\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges( false )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Any unsaved changes will be lost when you apply this revision.'\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenRevisions;\n"],"mappings":"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"}