@wordpress/edit-site 7.3.2-next.v.202608281122.0 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/build/components/add-new-template/add-custom-template-modal-content.cjs +3 -1
  3. package/build/components/add-new-template/add-custom-template-modal-content.cjs.map +2 -2
  4. package/build/components/add-new-template/index.cjs +6 -4
  5. package/build/components/add-new-template/index.cjs.map +2 -2
  6. package/build/components/add-new-template/utils.cjs +84 -9
  7. package/build/components/add-new-template/utils.cjs.map +2 -2
  8. package/build/components/dataviews-actions/index.cjs +2 -55
  9. package/build/components/dataviews-actions/index.cjs.map +3 -3
  10. package/build/components/layout/index.cjs +2 -2
  11. package/build/components/layout/index.cjs.map +2 -2
  12. package/build/components/more-menu/welcome-guide-menu-item.cjs +10 -2
  13. package/build/components/more-menu/welcome-guide-menu-item.cjs.map +3 -3
  14. package/build/components/page-templates/fields.cjs +2 -126
  15. package/build/components/page-templates/fields.cjs.map +3 -3
  16. package/build/components/page-templates/index.cjs +46 -230
  17. package/build/components/page-templates/index.cjs.map +3 -3
  18. package/build/components/post-list/index.cjs +7 -17
  19. package/build/components/post-list/index.cjs.map +2 -2
  20. package/build/components/sidebar-global-styles/index.cjs +2 -2
  21. package/build/components/sidebar-global-styles/index.cjs.map +2 -2
  22. package/build/components/sidebar-identity/index.cjs +17 -22
  23. package/build/components/sidebar-identity/index.cjs.map +2 -2
  24. package/build/components/sidebar-navigation-item/index.cjs +1 -8
  25. package/build/components/sidebar-navigation-item/index.cjs.map +2 -2
  26. package/build/components/sidebar-navigation-screen-templates-browse/content.cjs +34 -72
  27. package/build/components/sidebar-navigation-screen-templates-browse/content.cjs.map +3 -3
  28. package/build/components/sidebar-navigation-screen-templates-browse/index.cjs +1 -2
  29. package/build/components/sidebar-navigation-screen-templates-browse/index.cjs.map +3 -3
  30. package/build/components/site-editor-routes/templates.cjs +2 -4
  31. package/build/components/site-editor-routes/templates.cjs.map +3 -3
  32. package/build/index.cjs +0 -1
  33. package/build/index.cjs.map +2 -2
  34. package/build-module/components/add-new-template/add-custom-template-modal-content.mjs +3 -1
  35. package/build-module/components/add-new-template/add-custom-template-modal-content.mjs.map +2 -2
  36. package/build-module/components/add-new-template/index.mjs +7 -4
  37. package/build-module/components/add-new-template/index.mjs.map +2 -2
  38. package/build-module/components/add-new-template/utils.mjs +84 -9
  39. package/build-module/components/add-new-template/utils.mjs.map +2 -2
  40. package/build-module/components/dataviews-actions/index.mjs +1 -53
  41. package/build-module/components/dataviews-actions/index.mjs.map +2 -2
  42. package/build-module/components/layout/index.mjs +2 -2
  43. package/build-module/components/layout/index.mjs.map +2 -2
  44. package/build-module/components/more-menu/welcome-guide-menu-item.mjs +10 -2
  45. package/build-module/components/more-menu/welcome-guide-menu-item.mjs.map +2 -2
  46. package/build-module/components/page-templates/fields.mjs +3 -129
  47. package/build-module/components/page-templates/fields.mjs.map +3 -3
  48. package/build-module/components/page-templates/index.mjs +52 -253
  49. package/build-module/components/page-templates/index.mjs.map +2 -2
  50. package/build-module/components/post-list/index.mjs +8 -18
  51. package/build-module/components/post-list/index.mjs.map +2 -2
  52. package/build-module/components/sidebar-global-styles/index.mjs +2 -2
  53. package/build-module/components/sidebar-global-styles/index.mjs.map +2 -2
  54. package/build-module/components/sidebar-identity/index.mjs +17 -22
  55. package/build-module/components/sidebar-identity/index.mjs.map +2 -2
  56. package/build-module/components/sidebar-navigation-item/index.mjs +1 -8
  57. package/build-module/components/sidebar-navigation-item/index.mjs.map +2 -2
  58. package/build-module/components/sidebar-navigation-screen-templates-browse/content.mjs +42 -75
  59. package/build-module/components/sidebar-navigation-screen-templates-browse/content.mjs.map +2 -2
  60. package/build-module/components/sidebar-navigation-screen-templates-browse/index.mjs +1 -2
  61. package/build-module/components/sidebar-navigation-screen-templates-browse/index.mjs.map +2 -2
  62. package/build-module/components/site-editor-routes/templates.mjs +2 -4
  63. package/build-module/components/site-editor-routes/templates.mjs.map +2 -2
  64. package/build-module/index.mjs +0 -1
  65. package/build-module/index.mjs.map +2 -2
  66. package/build-style/style-rtl.css +38 -81
  67. package/build-style/style.css +38 -81
  68. package/package.json +41 -38
  69. package/src/components/add-new-template/add-custom-template-modal-content.jsx +3 -1
  70. package/src/components/add-new-template/index.jsx +9 -4
  71. package/src/components/add-new-template/style.scss +8 -21
  72. package/src/components/add-new-template/utils.js +118 -9
  73. package/src/components/dataviews-actions/index.js +0 -61
  74. package/src/components/layout/index.jsx +5 -2
  75. package/src/components/more-menu/welcome-guide-menu-item.jsx +8 -3
  76. package/src/components/page-templates/fields.jsx +2 -146
  77. package/src/components/page-templates/index.jsx +30 -256
  78. package/src/components/post-list/index.jsx +7 -20
  79. package/src/components/sidebar-global-styles/index.jsx +7 -5
  80. package/src/components/sidebar-global-styles/style.scss +6 -0
  81. package/src/components/sidebar-identity/index.jsx +23 -19
  82. package/src/components/sidebar-identity/style.scss +7 -0
  83. package/src/components/sidebar-navigation-item/index.jsx +1 -7
  84. package/src/components/sidebar-navigation-screen-templates-browse/content.jsx +45 -80
  85. package/src/components/sidebar-navigation-screen-templates-browse/index.jsx +1 -8
  86. package/src/components/site-editor-routes/templates.jsx +2 -19
  87. package/src/components/welcome-guide/style.scss +1 -1
  88. package/src/index.jsx +0 -1
  89. package/src/style.scss +1 -1
  90. package/src/utils/test/get-filtered-template-parts.js +1 -0
  91. package/build/components/add-new-template-legacy/add-custom-generic-template-modal-content.cjs +0 -107
  92. package/build/components/add-new-template-legacy/add-custom-generic-template-modal-content.cjs.map +0 -7
  93. package/build/components/add-new-template-legacy/add-custom-template-modal-content.cjs +0 -327
  94. package/build/components/add-new-template-legacy/add-custom-template-modal-content.cjs.map +0 -7
  95. package/build/components/add-new-template-legacy/index.cjs +0 -390
  96. package/build/components/add-new-template-legacy/index.cjs.map +0 -7
  97. package/build/components/add-new-template-legacy/utils.cjs +0 -623
  98. package/build/components/add-new-template-legacy/utils.cjs.map +0 -7
  99. package/build/components/page-templates/hooks.cjs +0 -94
  100. package/build/components/page-templates/hooks.cjs.map +0 -7
  101. package/build/components/page-templates/index-legacy.cjs +0 -167
  102. package/build/components/page-templates/index-legacy.cjs.map +0 -7
  103. package/build/components/page-templates/view-utils.cjs +0 -79
  104. package/build/components/page-templates/view-utils.cjs.map +0 -7
  105. package/build/components/sidebar-navigation-screen-templates-browse/content-legacy.cjs +0 -78
  106. package/build/components/sidebar-navigation-screen-templates-browse/content-legacy.cjs.map +0 -7
  107. package/build-module/components/add-new-template-legacy/add-custom-generic-template-modal-content.mjs +0 -91
  108. package/build-module/components/add-new-template-legacy/add-custom-generic-template-modal-content.mjs.map +0 -7
  109. package/build-module/components/add-new-template-legacy/add-custom-template-modal-content.mjs +0 -315
  110. package/build-module/components/add-new-template-legacy/add-custom-template-modal-content.mjs.map +0 -7
  111. package/build-module/components/add-new-template-legacy/index.mjs +0 -391
  112. package/build-module/components/add-new-template-legacy/index.mjs.map +0 -7
  113. package/build-module/components/add-new-template-legacy/utils.mjs +0 -592
  114. package/build-module/components/add-new-template-legacy/utils.mjs.map +0 -7
  115. package/build-module/components/page-templates/hooks.mjs +0 -74
  116. package/build-module/components/page-templates/hooks.mjs.map +0 -7
  117. package/build-module/components/page-templates/index-legacy.mjs +0 -136
  118. package/build-module/components/page-templates/index-legacy.mjs.map +0 -7
  119. package/build-module/components/page-templates/view-utils.mjs +0 -52
  120. package/build-module/components/page-templates/view-utils.mjs.map +0 -7
  121. package/build-module/components/sidebar-navigation-screen-templates-browse/content-legacy.mjs +0 -52
  122. package/build-module/components/sidebar-navigation-screen-templates-browse/content-legacy.mjs.map +0 -7
  123. package/src/components/add-new-template-legacy/add-custom-generic-template-modal-content.jsx +0 -85
  124. package/src/components/add-new-template-legacy/add-custom-template-modal-content.jsx +0 -306
  125. package/src/components/add-new-template-legacy/index.jsx +0 -440
  126. package/src/components/add-new-template-legacy/utils.js +0 -757
  127. package/src/components/page-templates/hooks.js +0 -93
  128. package/src/components/page-templates/index-legacy.jsx +0 -143
  129. package/src/components/page-templates/view-utils.js +0 -50
  130. package/src/components/sidebar-navigation-screen-templates-browse/content-legacy.jsx +0 -52
  131. package/src/components/sidebar-navigation-screen-templates-browse/style.scss +0 -6
@@ -1,93 +0,0 @@
1
- import { store as coreStore } from '@wordpress/core-data';
2
- import { useSelect } from '@wordpress/data';
3
- import {
4
- commentAuthorAvatar as authorIcon,
5
- layout as themeIcon,
6
- plugins as pluginIcon,
7
- globe as globeIcon,
8
- } from '@wordpress/icons';
9
- import { TEMPLATE_ORIGINS } from '../../utils/constants';
10
-
11
- /** @typedef {'wp_template'|'wp_template_part'} TemplateType */
12
-
13
- /**
14
- * @typedef {'theme'|'plugin'|'site'|'user'} AddedByType
15
- *
16
- * @typedef AddedByData
17
- * @type {Object}
18
- * @property {AddedByType} type The type of the data.
19
- * @property {React.JSX.Element} icon The icon to display.
20
- * @property {string} [imageUrl] The optional image URL to display.
21
- * @property {string} [text] The text to display.
22
- * @property {boolean} isCustomized Whether the template has been customized.
23
- *
24
- * @param {TemplateType} postType The template post type.
25
- * @param {number} postId The template post id.
26
- * @return {AddedByData} The added by object or null.
27
- */
28
- export function useAddedBy( postType, postId ) {
29
- return useSelect(
30
- ( select ) => {
31
- const { getEntityRecord, getUser, getEditedEntityRecord } =
32
- select( coreStore );
33
- const template = getEditedEntityRecord(
34
- 'postType',
35
- postType,
36
- postId
37
- );
38
- const originalSource = template?.original_source;
39
- const authorText = template?.author_text;
40
-
41
- switch ( originalSource ) {
42
- case 'theme': {
43
- return {
44
- type: originalSource,
45
- icon: themeIcon,
46
- text: authorText,
47
- isCustomized:
48
- template.source === TEMPLATE_ORIGINS.custom,
49
- };
50
- }
51
- case 'plugin': {
52
- return {
53
- type: originalSource,
54
- icon: pluginIcon,
55
- text: authorText,
56
- isCustomized:
57
- template.source === TEMPLATE_ORIGINS.custom,
58
- };
59
- }
60
- case 'site': {
61
- const siteData = getEntityRecord(
62
- 'root',
63
- '__unstableBase'
64
- );
65
- return {
66
- type: originalSource,
67
- icon: globeIcon,
68
- imageUrl: siteData?.site_logo
69
- ? getEntityRecord(
70
- 'postType',
71
- 'attachment',
72
- siteData.site_logo
73
- )?.source_url
74
- : undefined,
75
- text: authorText,
76
- isCustomized: false,
77
- };
78
- }
79
- default: {
80
- const user = getUser( template.author );
81
- return {
82
- type: 'user',
83
- icon: authorIcon,
84
- imageUrl: user?.avatar_urls?.[ 48 ],
85
- text: authorText ?? user?.name,
86
- isCustomized: false,
87
- };
88
- }
89
- }
90
- },
91
- [ postType, postId ]
92
- );
93
- }
@@ -1,143 +0,0 @@
1
- import { Page } from '@wordpress/admin-ui';
2
- import { __ } from '@wordpress/i18n';
3
- import { useState, useMemo, useCallback } from '@wordpress/element';
4
- import { privateApis as corePrivateApis } from '@wordpress/core-data';
5
- import { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';
6
- import { privateApis as routerPrivateApis } from '@wordpress/router';
7
- import { privateApis as editorPrivateApis } from '@wordpress/editor';
8
- import { addQueryArgs } from '@wordpress/url';
9
- import { useEvent } from '@wordpress/compose';
10
- import { useView, useViewConfig } from '@wordpress/views';
11
- import AddNewTemplate from '../add-new-template-legacy';
12
- import { TEMPLATE_POST_TYPE } from '../../utils/constants';
13
- import { unlock } from '../../lock-unlock';
14
- import { useEditPostAction } from '../dataviews-actions';
15
- import { previewField } from './fields';
16
-
17
- const { usePostActions, usePostFields } = unlock( editorPrivateApis );
18
- const { useHistory, useLocation } = unlock( routerPrivateApis );
19
- const { useEntityRecordsWithPermissions } = unlock( corePrivateApis );
20
-
21
- const VIEW_CONFIG_FIELDS = [ 'default_view', 'default_layouts', 'view_list' ];
22
-
23
- export default function PageTemplates() {
24
- const { path, query } = useLocation();
25
- const { activeView = 'all', postId } = query;
26
- const [ selection, setSelection ] = useState( [ postId ] );
27
-
28
- const {
29
- default_view: defaultView,
30
- default_layouts: defaultLayouts,
31
- view_list: viewList,
32
- } = useViewConfig( {
33
- kind: 'postType',
34
- name: TEMPLATE_POST_TYPE,
35
- fields: VIEW_CONFIG_FIELDS,
36
- } );
37
- const activeViewOverrides = useMemo(
38
- () => viewList?.find( ( v ) => v.slug === activeView )?.view ?? {},
39
- [ viewList, activeView ]
40
- );
41
- const { view, updateView, isModified, resetToDefault } = useView( {
42
- kind: 'postType',
43
- name: TEMPLATE_POST_TYPE,
44
- slug: 'default',
45
- defaultView,
46
- activeViewOverrides,
47
- defaultLayouts,
48
- queryParams: {
49
- page: query.pageNumber,
50
- search: query.search,
51
- },
52
- onChangeQueryParams: ( newQueryParams ) => {
53
- history.navigate(
54
- addQueryArgs( path, {
55
- ...query,
56
- pageNumber: newQueryParams.page,
57
- search: newQueryParams.search || undefined,
58
- } )
59
- );
60
- },
61
- } );
62
-
63
- const { records, isResolving: isLoadingData } =
64
- useEntityRecordsWithPermissions( 'postType', TEMPLATE_POST_TYPE, {
65
- per_page: -1,
66
- } );
67
- const history = useHistory();
68
- const onChangeSelection = useCallback(
69
- ( items ) => {
70
- setSelection( items );
71
- if ( view?.type === 'list' ) {
72
- history.navigate(
73
- addQueryArgs( path, {
74
- postId: items.length === 1 ? items[ 0 ] : undefined,
75
- } )
76
- );
77
- }
78
- },
79
- [ history, path, view?.type ]
80
- );
81
-
82
- const postFields = usePostFields( { postType: TEMPLATE_POST_TYPE } );
83
- const fields = useMemo( () => {
84
- return [ previewField, ...( postFields || [] ) ];
85
- }, [ postFields ] );
86
-
87
- const { data, paginationInfo } = useMemo( () => {
88
- return filterSortAndPaginate( records, view, fields );
89
- }, [ records, view, fields ] );
90
-
91
- const postTypeActions = usePostActions( {
92
- postType: TEMPLATE_POST_TYPE,
93
- context: 'list',
94
- } );
95
- const editAction = useEditPostAction();
96
- const actions = useMemo(
97
- () => [ editAction, ...postTypeActions ],
98
- [ postTypeActions, editAction ]
99
- );
100
-
101
- const onChangeView = useEvent( ( newView ) => {
102
- updateView( newView );
103
- if ( newView.type !== view.type ) {
104
- // Retrigger the routing areas resolution.
105
- history.invalidate();
106
- }
107
- } );
108
-
109
- return (
110
- <Page
111
- className="edit-site-page-templates"
112
- title={ __( 'Templates' ) }
113
- headingLevel={ 2 }
114
- actions={ <AddNewTemplate /> }
115
- >
116
- <DataViews
117
- key={ activeView }
118
- paginationInfo={ paginationInfo }
119
- fields={ fields }
120
- actions={ actions }
121
- data={ data }
122
- isLoading={ isLoadingData }
123
- view={ view }
124
- onChangeView={ onChangeView }
125
- onChangeSelection={ onChangeSelection }
126
- isItemClickable={ () => true }
127
- onClickItem={ ( { id } ) => {
128
- history.navigate( `/wp_template/${ id }?canvas=edit` );
129
- } }
130
- selection={ selection }
131
- defaultLayouts={ defaultLayouts }
132
- onReset={
133
- isModified
134
- ? () => {
135
- resetToDefault();
136
- history.invalidate();
137
- }
138
- : false
139
- }
140
- />
141
- </Page>
142
- );
143
- }
@@ -1,50 +0,0 @@
1
- export const defaultLayouts = {
2
- table: {
3
- showMedia: false,
4
- },
5
- grid: {
6
- showMedia: true,
7
- },
8
- list: {
9
- showMedia: false,
10
- },
11
- };
12
-
13
- export const DEFAULT_VIEW = {
14
- type: 'grid',
15
- perPage: 20,
16
- sort: {
17
- field: 'title',
18
- direction: 'asc',
19
- },
20
- titleField: 'title',
21
- descriptionField: 'description',
22
- mediaField: 'preview',
23
- fields: [ 'author', 'active', 'slug', 'theme' ],
24
- filters: [],
25
- ...defaultLayouts.grid,
26
- };
27
-
28
- export function getActiveViewOverridesForTab( activeView ) {
29
- // User view: sort by date, newest first
30
- if ( activeView === 'user' ) {
31
- return {
32
- sort: { field: 'date', direction: 'desc' },
33
- };
34
- }
35
- // Active view: no overrides
36
- if ( activeView === 'active' ) {
37
- return {};
38
- }
39
- // Author-based view: filter by author
40
- return {
41
- filters: [
42
- {
43
- field: 'author',
44
- operator: 'is',
45
- value: activeView,
46
- isLocked: true,
47
- },
48
- ],
49
- };
50
- }
@@ -1,52 +0,0 @@
1
- import { store as coreStore } from '@wordpress/core-data';
2
- import { useSelect } from '@wordpress/data';
3
- import {
4
- commentAuthorAvatar,
5
- layout,
6
- plugins as pluginIcon,
7
- globe,
8
- } from '@wordpress/icons';
9
- import { TEMPLATE_POST_TYPE } from '../../utils/constants';
10
- import DataViewsSidebarContent from '../sidebar-dataviews';
11
-
12
- const SOURCE_TO_ICON = {
13
- user: commentAuthorAvatar,
14
- theme: layout,
15
- plugin: pluginIcon,
16
- site: globe,
17
- };
18
- export default function DataviewsTemplatesSidebarContent() {
19
- const authorSourceMap = useSelect( ( select ) => {
20
- const templates = select( coreStore ).getEntityRecords(
21
- 'postType',
22
- TEMPLATE_POST_TYPE,
23
- { per_page: -1 }
24
- );
25
- if ( ! templates ) {
26
- return {};
27
- }
28
- const map = {};
29
- for ( const template of templates ) {
30
- if (
31
- template.author_text &&
32
- template.original_source &&
33
- ! map[ template.author_text ]
34
- ) {
35
- map[ template.author_text ] = template.original_source;
36
- }
37
- }
38
- return map;
39
- }, [] );
40
-
41
- const resolveIcon = ( view ) => {
42
- const source = authorSourceMap[ view.slug ];
43
- return SOURCE_TO_ICON[ source ] ?? layout;
44
- };
45
-
46
- return (
47
- <DataViewsSidebarContent
48
- postType={ TEMPLATE_POST_TYPE }
49
- resolveIcon={ resolveIcon }
50
- />
51
- );
52
- }
@@ -1,6 +0,0 @@
1
- @use "@wordpress/base-styles/variables" as *;
2
-
3
- .edit-site-sidebar-navigation-screen-templates-browse {
4
- margin-left: -$grid-unit-20;
5
- margin-right: -$grid-unit-20;
6
- }