@wordpress/edit-site 5.19.2 → 5.19.3

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 (110) hide show
  1. package/build/components/add-new-pattern/index.js +5 -9
  2. package/build/components/add-new-pattern/index.js.map +1 -1
  3. package/build/components/global-styles/font-library-modal/collection-font-details.js +3 -1
  4. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  5. package/build/components/global-styles/font-library-modal/context.js +26 -30
  6. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  7. package/build/components/global-styles/font-library-modal/font-collection.js +31 -11
  8. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  9. package/build/components/global-styles/font-library-modal/index.js +10 -3
  10. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  11. package/build/components/global-styles/font-library-modal/installed-fonts.js +27 -7
  12. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  13. package/build/components/global-styles/font-library-modal/local-fonts.js +35 -8
  14. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  15. package/build/components/global-styles/font-library-modal/upload-fonts.js +26 -0
  16. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -0
  17. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -1
  18. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  19. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +71 -0
  20. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +1 -0
  21. package/build/components/global-styles/font-library-modal/utils/index.js +3 -0
  22. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  23. package/build/components/page-patterns/grid.js +0 -1
  24. package/build/components/page-patterns/grid.js.map +1 -1
  25. package/build/components/page-patterns/patterns-list.js +1 -1
  26. package/build/components/page-patterns/patterns-list.js.map +1 -1
  27. package/build/components/page-patterns/use-patterns.js +5 -1
  28. package/build/components/page-patterns/use-patterns.js.map +1 -1
  29. package/build/components/page-template-parts/index.js +12 -1
  30. package/build/components/page-template-parts/index.js.map +1 -1
  31. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
  32. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  33. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +2 -2
  34. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  35. package/build/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
  36. package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -1
  37. package/build/components/sidebar-navigation-screen-patterns/index.js +14 -2
  38. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  39. package/build/components/sidebar-navigation-screen-template/home-template-details.js +13 -18
  40. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  41. package/build/components/sidebar-navigation-screen-templates-browse/index.js +16 -4
  42. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  43. package/build-module/components/add-new-pattern/index.js +5 -9
  44. package/build-module/components/add-new-pattern/index.js.map +1 -1
  45. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +3 -1
  46. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  47. package/build-module/components/global-styles/font-library-modal/context.js +26 -30
  48. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  49. package/build-module/components/global-styles/font-library-modal/font-collection.js +32 -12
  50. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  51. package/build-module/components/global-styles/font-library-modal/index.js +10 -3
  52. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  53. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +28 -8
  54. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  55. package/build-module/components/global-styles/font-library-modal/local-fonts.js +38 -11
  56. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  57. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +17 -0
  58. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -0
  59. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -1
  60. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  61. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +63 -0
  62. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +1 -0
  63. package/build-module/components/global-styles/font-library-modal/utils/index.js +3 -0
  64. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  65. package/build-module/components/page-patterns/grid.js +0 -1
  66. package/build-module/components/page-patterns/grid.js.map +1 -1
  67. package/build-module/components/page-patterns/patterns-list.js +1 -1
  68. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  69. package/build-module/components/page-patterns/use-patterns.js +5 -1
  70. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  71. package/build-module/components/page-template-parts/index.js +12 -1
  72. package/build-module/components/page-template-parts/index.js.map +1 -1
  73. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
  74. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  75. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +3 -3
  76. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  77. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
  78. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -1
  79. package/build-module/components/sidebar-navigation-screen-patterns/index.js +14 -2
  80. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  81. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +14 -19
  82. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  83. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +16 -4
  84. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  85. package/build-style/style-rtl.css +16 -2
  86. package/build-style/style.css +16 -2
  87. package/package.json +40 -40
  88. package/src/components/add-new-pattern/index.js +5 -8
  89. package/src/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  90. package/src/components/global-styles/font-library-modal/context.js +36 -38
  91. package/src/components/global-styles/font-library-modal/font-collection.js +41 -12
  92. package/src/components/global-styles/font-library-modal/index.js +16 -6
  93. package/src/components/global-styles/font-library-modal/installed-fonts.js +36 -6
  94. package/src/components/global-styles/font-library-modal/local-fonts.js +65 -23
  95. package/src/components/global-styles/font-library-modal/style.scss +18 -1
  96. package/src/components/global-styles/font-library-modal/upload-fonts.js +20 -0
  97. package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -3
  98. package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +62 -0
  99. package/src/components/global-styles/font-library-modal/utils/index.js +4 -0
  100. package/src/components/page-patterns/grid.js +1 -1
  101. package/src/components/page-patterns/patterns-list.js +1 -1
  102. package/src/components/page-patterns/use-patterns.js +7 -3
  103. package/src/components/page-template-parts/index.js +14 -1
  104. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
  105. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +18 -16
  106. package/src/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
  107. package/src/components/sidebar-navigation-screen/style.scss +0 -1
  108. package/src/components/sidebar-navigation-screen-patterns/index.js +25 -4
  109. package/src/components/sidebar-navigation-screen-template/home-template-details.js +27 -35
  110. package/src/components/sidebar-navigation-screen-templates-browse/index.js +12 -4
@@ -9,6 +9,7 @@ import {
9
9
  import { __ } from '@wordpress/i18n';
10
10
  import { useEntityRecords } from '@wordpress/core-data';
11
11
  import { decodeEntities } from '@wordpress/html-entities';
12
+ import { privateApis as routerPrivateApis } from '@wordpress/router';
12
13
 
13
14
  /**
14
15
  * Internal dependencies
@@ -20,8 +21,15 @@ import AddedBy from '../list/added-by';
20
21
  import TemplateActions from '../template-actions';
21
22
  import AddNewTemplatePart from './add-new-template-part';
22
23
  import { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';
24
+ import { unlock } from '../../lock-unlock';
25
+
26
+ const { useLocation } = unlock( routerPrivateApis );
23
27
 
24
28
  export default function PageTemplateParts() {
29
+ const {
30
+ params: { didAccessPatternsPage },
31
+ } = useLocation();
32
+
25
33
  const { records: templateParts } = useEntityRecords(
26
34
  'postType',
27
35
  TEMPLATE_PART_POST_TYPE,
@@ -40,8 +48,13 @@ export default function PageTemplateParts() {
40
48
  params={ {
41
49
  postId: templatePart.id,
42
50
  postType: templatePart.type,
51
+ didAccessPatternsPage: !! didAccessPatternsPage
52
+ ? 1
53
+ : undefined,
54
+ } }
55
+ state={ {
56
+ backPath: '/wp_template_part/all',
43
57
  } }
44
- state={ { backPath: '/wp_template_part/all' } }
45
58
  >
46
59
  { decodeEntities(
47
60
  templatePart.title?.rendered ||
@@ -37,7 +37,7 @@ export default function ResetDefaultTemplate( { onClick } ) {
37
37
  } );
38
38
  } }
39
39
  >
40
- { __( 'Reset' ) }
40
+ { __( 'Use default template' ) }
41
41
  </MenuItem>
42
42
  </MenuGroup>
43
43
  );
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { __, _x, sprintf } from '@wordpress/i18n';
5
5
  import { useEffect, useMemo, useState } from '@wordpress/element';
6
- import { FormTokenField, PanelRow } from '@wordpress/components';
6
+ import { FormTokenField, FlexBlock, PanelRow } from '@wordpress/components';
7
7
  import { useSelect, useDispatch } from '@wordpress/data';
8
8
  import { store as coreStore } from '@wordpress/core-data';
9
9
  import { useDebounce } from '@wordpress/compose';
@@ -257,21 +257,23 @@ export default function PatternCategories( { post } ) {
257
257
 
258
258
  return (
259
259
  <PanelRow initialOpen={ true } title={ __( 'Categories' ) }>
260
- <FormTokenField
261
- __next40pxDefaultSize
262
- value={ values }
263
- suggestions={ suggestions }
264
- onChange={ onChange }
265
- onInputChange={ debouncedSearch }
266
- maxSuggestions={ MAX_TERMS_SUGGESTIONS }
267
- label={ __( 'Pattern categories' ) }
268
- messages={ {
269
- added: termAddedLabel,
270
- removed: termRemovedLabel,
271
- remove: removeTermLabel,
272
- } }
273
- tokenizeOnBlur
274
- />
260
+ <FlexBlock>
261
+ <FormTokenField
262
+ __next40pxDefaultSize
263
+ value={ values }
264
+ suggestions={ suggestions }
265
+ onChange={ onChange }
266
+ onInputChange={ debouncedSearch }
267
+ maxSuggestions={ MAX_TERMS_SUGGESTIONS }
268
+ label={ __( 'Pattern categories' ) }
269
+ messages={ {
270
+ added: termAddedLabel,
271
+ removed: termRemovedLabel,
272
+ remove: removeTermLabel,
273
+ } }
274
+ tokenizeOnBlur
275
+ />
276
+ </FlexBlock>
275
277
  </PanelRow>
276
278
  );
277
279
  }
@@ -73,7 +73,7 @@ export default function TemplateAreas() {
73
73
 
74
74
  <ul className="edit-site-template-card__template-areas-list">
75
75
  { templateParts.map( ( { templatePart, block } ) => (
76
- <li key={ templatePart.slug }>
76
+ <li key={ block.clientId }>
77
77
  <TemplateAreaItem
78
78
  area={ templatePart.area }
79
79
  clientId={ block.clientId }
@@ -68,7 +68,6 @@
68
68
  .edit-site-sidebar-navigation-screen__title {
69
69
  flex-grow: 1;
70
70
  padding: $grid-unit-15 * 0.5 0 0 0;
71
- overflow: hidden;
72
71
  overflow-wrap: break-word;
73
72
  }
74
73
 
@@ -10,6 +10,8 @@ import { useViewportMatch } from '@wordpress/compose';
10
10
  import { getTemplatePartIcon } from '@wordpress/editor';
11
11
  import { __ } from '@wordpress/i18n';
12
12
  import { getQueryArgs } from '@wordpress/url';
13
+ import { store as coreStore } from '@wordpress/core-data';
14
+ import { useSelect } from '@wordpress/data';
13
15
  import { file } from '@wordpress/icons';
14
16
 
15
17
  /**
@@ -27,6 +29,7 @@ import {
27
29
  import { useLink } from '../routes/link';
28
30
  import usePatternCategories from './use-pattern-categories';
29
31
  import useTemplatePartAreas from './use-template-part-areas';
32
+ import { store as editSiteStore } from '../../store';
30
33
 
31
34
  function TemplatePartGroup( { areas, currentArea, currentType } ) {
32
35
  return (
@@ -93,8 +96,23 @@ export default function SidebarNavigationScreenPatterns() {
93
96
  const { templatePartAreas, hasTemplateParts, isLoading } =
94
97
  useTemplatePartAreas();
95
98
  const { patternCategories, hasPatterns } = usePatternCategories();
99
+ const isBlockBasedTheme = useSelect(
100
+ ( select ) => select( coreStore ).getCurrentTheme()?.is_block_theme,
101
+ []
102
+ );
103
+ const isTemplatePartsMode = useSelect( ( select ) => {
104
+ const settings = select( editSiteStore ).getSettings();
105
+ return !! settings.supportsTemplatePartsMode;
106
+ }, [] );
107
+
108
+ const templatePartsLink = useLink( {
109
+ path: '/wp_template_part/all',
110
+ // If a classic theme that supports template parts accessed
111
+ // the Patterns page directly, preserve that state in the URL.
112
+ didAccessPatternsPage:
113
+ ! isBlockBasedTheme && isTemplatePartsMode ? 1 : undefined,
114
+ } );
96
115
 
97
- const templatePartsLink = useLink( { path: '/wp_template_part/all' } );
98
116
  const footer = ! isMobileViewport ? (
99
117
  <ItemGroup>
100
118
  <SidebarNavigationItem
@@ -104,14 +122,17 @@ export default function SidebarNavigationScreenPatterns() {
104
122
  >
105
123
  { __( 'Manage all of my patterns' ) }
106
124
  </SidebarNavigationItem>
107
- <SidebarNavigationItem withChevron { ...templatePartsLink }>
108
- { __( 'Manage all template parts' ) }
109
- </SidebarNavigationItem>
125
+ { ( isBlockBasedTheme || isTemplatePartsMode ) && (
126
+ <SidebarNavigationItem withChevron { ...templatePartsLink }>
127
+ { __( 'Manage all template parts' ) }
128
+ </SidebarNavigationItem>
129
+ ) }
110
130
  </ItemGroup>
111
131
  ) : undefined;
112
132
 
113
133
  return (
114
134
  <SidebarNavigationScreen
135
+ isRoot={ ! isBlockBasedTheme }
115
136
  title={ __( 'Patterns' ) }
116
137
  description={ __(
117
138
  'Manage what patterns are available when editing the site.'
@@ -7,7 +7,6 @@ import { useSelect, useDispatch } from '@wordpress/data';
7
7
  import { store as coreStore } from '@wordpress/core-data';
8
8
  import {
9
9
  CheckboxControl,
10
- __experimentalUseNavigator as useNavigator,
11
10
  __experimentalInputControl as InputControl,
12
11
  __experimentalNumberControl as NumberControl,
13
12
  __experimentalTruncate as Truncate,
@@ -62,10 +61,6 @@ function TemplateAreaButton( { postId, icon, title } ) {
62
61
  }
63
62
 
64
63
  export default function HomeTemplateDetails() {
65
- const navigator = useNavigator();
66
- const {
67
- params: { postType, postId },
68
- } = navigator;
69
64
  const { editEntityRecord } = useDispatch( coreStore );
70
65
 
71
66
  const {
@@ -75,34 +70,30 @@ export default function HomeTemplateDetails() {
75
70
  postsPageTitle,
76
71
  postsPageId,
77
72
  currentTemplateParts,
78
- } = useSelect(
79
- ( select ) => {
80
- const { getEntityRecord } = select( coreStore );
81
- const siteSettings = getEntityRecord( 'root', 'site' );
82
- const { getSettings } = unlock( select( editSiteStore ) );
83
- const _currentTemplateParts =
84
- select( editSiteStore ).getCurrentTemplateTemplateParts();
85
- const siteEditorSettings = getSettings();
86
- const _postsPageRecord = siteSettings?.page_for_posts
87
- ? select( coreStore ).getEntityRecord(
88
- 'postType',
89
- 'page',
90
- siteSettings?.page_for_posts
91
- )
92
- : EMPTY_OBJECT;
73
+ } = useSelect( ( select ) => {
74
+ const { getEntityRecord } = select( coreStore );
75
+ const { getSettings, getCurrentTemplateTemplateParts } = unlock(
76
+ select( editSiteStore )
77
+ );
78
+ const siteSettings = getEntityRecord( 'root', 'site' );
79
+ const _postsPageRecord = siteSettings?.page_for_posts
80
+ ? getEntityRecord(
81
+ 'postType',
82
+ 'page',
83
+ siteSettings?.page_for_posts
84
+ )
85
+ : EMPTY_OBJECT;
93
86
 
94
- return {
95
- allowCommentsOnNewPosts:
96
- siteSettings?.default_comment_status === 'open',
97
- postsPageTitle: _postsPageRecord?.title?.rendered,
98
- postsPageId: _postsPageRecord?.id,
99
- postsPerPage: siteSettings?.posts_per_page,
100
- templatePartAreas: siteEditorSettings?.defaultTemplatePartAreas,
101
- currentTemplateParts: _currentTemplateParts,
102
- };
103
- },
104
- [ postType, postId ]
105
- );
87
+ return {
88
+ allowCommentsOnNewPosts:
89
+ siteSettings?.default_comment_status === 'open',
90
+ postsPageTitle: _postsPageRecord?.title?.rendered,
91
+ postsPageId: _postsPageRecord?.id,
92
+ postsPerPage: siteSettings?.posts_per_page,
93
+ templatePartAreas: getSettings()?.defaultTemplatePartAreas,
94
+ currentTemplateParts: getCurrentTemplateTemplateParts(),
95
+ };
96
+ }, [] );
106
97
 
107
98
  const [ commentsOnNewPostsValue, setCommentsOnNewPostsValue ] =
108
99
  useState( '' );
@@ -126,11 +117,12 @@ export default function HomeTemplateDetails() {
126
117
  */
127
118
  const templateAreas = useMemo( () => {
128
119
  return currentTemplateParts.length && templatePartAreas
129
- ? currentTemplateParts.map( ( { templatePart } ) => ( {
120
+ ? currentTemplateParts.map( ( { templatePart, block } ) => ( {
130
121
  ...templatePartAreas?.find(
131
122
  ( { area } ) => area === templatePart?.area
132
123
  ),
133
124
  ...templatePart,
125
+ clientId: block.clientId,
134
126
  } ) )
135
127
  : [];
136
128
  }, [ currentTemplateParts, templatePartAreas ] );
@@ -214,9 +206,9 @@ export default function HomeTemplateDetails() {
214
206
  >
215
207
  <ItemGroup>
216
208
  { templateAreas.map(
217
- ( { label, icon, theme, slug, title } ) => (
209
+ ( { clientId, label, icon, theme, slug, title } ) => (
218
210
  <SidebarNavigationScreenDetailsPanelRow
219
- key={ slug }
211
+ key={ clientId }
220
212
  >
221
213
  <TemplateAreaButton
222
214
  postId={ `${ theme }//${ slug }` }
@@ -4,6 +4,7 @@
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import { useSelect } from '@wordpress/data';
6
6
  import { __experimentalUseNavigator as useNavigator } from '@wordpress/components';
7
+ import { privateApis as routerPrivateApis } from '@wordpress/router';
7
8
 
8
9
  /**
9
10
  * Internal dependencies
@@ -14,6 +15,7 @@ import {
14
15
  TEMPLATE_POST_TYPE,
15
16
  TEMPLATE_PART_POST_TYPE,
16
17
  } from '../../utils/constants';
18
+ import { unlock } from '../../lock-unlock';
17
19
 
18
20
  const config = {
19
21
  [ TEMPLATE_POST_TYPE ]: {
@@ -31,20 +33,26 @@ const config = {
31
33
  },
32
34
  };
33
35
 
36
+ const { useLocation } = unlock( routerPrivateApis );
37
+
34
38
  export default function SidebarNavigationScreenTemplatesBrowse() {
35
39
  const {
36
40
  params: { postType },
37
41
  } = useNavigator();
42
+ const {
43
+ params: { didAccessPatternsPage },
44
+ } = useLocation();
38
45
 
39
46
  const isTemplatePartsMode = useSelect( ( select ) => {
40
- const settings = select( editSiteStore ).getSettings();
41
-
42
- return !! settings.supportsTemplatePartsMode;
47
+ return !! select( editSiteStore ).getSettings()
48
+ .supportsTemplatePartsMode;
43
49
  }, [] );
44
50
 
45
51
  return (
46
52
  <SidebarNavigationScreen
47
- isRoot={ isTemplatePartsMode }
53
+ // If a classic theme that supports template parts has never
54
+ // accessed the Patterns page, return to the dashboard.
55
+ isRoot={ isTemplatePartsMode && ! didAccessPatternsPage }
48
56
  title={ config[ postType ].title }
49
57
  description={ config[ postType ].description }
50
58
  backPath={ config[ postType ].backPath }