@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,306 +0,0 @@
1
- import { useState, useMemo, useEffect } from '@wordpress/element';
2
- import { __ } from '@wordpress/i18n';
3
- import {
4
- Button,
5
- Flex,
6
- FlexItem,
7
- SearchControl,
8
- TextHighlight,
9
- Composite,
10
- __experimentalText as WCText,
11
- __experimentalVStack as VStack,
12
- } from '@wordpress/components';
13
- import { useEntityRecords } from '@wordpress/core-data';
14
- import { decodeEntities } from '@wordpress/html-entities';
15
- import { useDebouncedInput } from '@wordpress/compose';
16
- import { focus } from '@wordpress/dom';
17
- import { safeDecodeURI } from '@wordpress/url';
18
- import { mapToIHasNameAndId } from './utils';
19
-
20
- const EMPTY_ARRAY = [];
21
-
22
- function SuggestionListItem( {
23
- suggestion,
24
- search,
25
- onSelect,
26
- entityForSuggestions,
27
- } ) {
28
- const baseCssClass =
29
- 'edit-site-custom-template-modal__suggestions_list__list-item';
30
- return (
31
- <Composite.Item
32
- render={
33
- <Button
34
- __next40pxDefaultSize
35
- role="option"
36
- className={ baseCssClass }
37
- onClick={ () =>
38
- onSelect(
39
- entityForSuggestions.config.getSpecificTemplate(
40
- suggestion
41
- )
42
- )
43
- }
44
- />
45
- }
46
- >
47
- <WCText
48
- size="body"
49
- lineHeight={ 1.53846153846 } // 20px
50
- weight="var(--wpds-typography-font-weight-emphasis)"
51
- className={ `${ baseCssClass }__title` }
52
- >
53
- <TextHighlight
54
- text={ decodeEntities( suggestion.name ) }
55
- highlight={ search }
56
- />
57
- </WCText>
58
- { suggestion.link && (
59
- <WCText
60
- size="body"
61
- lineHeight={ 1.53846153846 } // 20px
62
- className={ `${ baseCssClass }__info` }
63
- >
64
- { safeDecodeURI( suggestion.link ) }
65
- </WCText>
66
- ) }
67
- </Composite.Item>
68
- );
69
- }
70
-
71
- function useSearchSuggestions( entityForSuggestions, search ) {
72
- const { config } = entityForSuggestions;
73
- const query = useMemo(
74
- () => ( {
75
- order: 'asc',
76
- context: 'view',
77
- search,
78
- per_page: search ? 20 : 10,
79
- ...config.queryArgs( search ),
80
- } ),
81
- [ search, config ]
82
- );
83
- const { records: searchResults, hasResolved: searchHasResolved } =
84
- useEntityRecords(
85
- entityForSuggestions.type,
86
- entityForSuggestions.slug,
87
- query
88
- );
89
- const [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );
90
- useEffect( () => {
91
- if ( ! searchHasResolved ) {
92
- return;
93
- }
94
- let newSuggestions = EMPTY_ARRAY;
95
- if ( searchResults?.length ) {
96
- newSuggestions = searchResults;
97
- if ( config.recordNamePath ) {
98
- newSuggestions = mapToIHasNameAndId(
99
- newSuggestions,
100
- config.recordNamePath
101
- );
102
- }
103
- }
104
- // Update suggestions only when the query has resolved, so as to keep
105
- // the previous results in the UI.
106
- setSuggestions( newSuggestions );
107
- }, [ searchResults, searchHasResolved ] );
108
- return suggestions;
109
- }
110
-
111
- function SuggestionList( { entityForSuggestions, onSelect } ) {
112
- const [ search, setSearch, debouncedSearch ] = useDebouncedInput();
113
- const suggestions = useSearchSuggestions(
114
- entityForSuggestions,
115
- debouncedSearch
116
- );
117
- const { labels } = entityForSuggestions;
118
- const [ showSearchControl, setShowSearchControl ] = useState( false );
119
- if ( ! showSearchControl && suggestions?.length > 9 ) {
120
- setShowSearchControl( true );
121
- }
122
- return (
123
- <>
124
- { showSearchControl && (
125
- <SearchControl
126
- onChange={ setSearch }
127
- value={ search }
128
- label={ labels.search_items }
129
- placeholder={ labels.search_items }
130
- />
131
- ) }
132
- { !! suggestions?.length && (
133
- <Composite
134
- orientation="vertical"
135
- role="listbox"
136
- className="edit-site-custom-template-modal__suggestions_list"
137
- aria-label={ __( 'Suggestions list' ) }
138
- >
139
- { suggestions.map( ( suggestion ) => (
140
- <SuggestionListItem
141
- key={ suggestion.slug }
142
- suggestion={ suggestion }
143
- search={ debouncedSearch }
144
- onSelect={ onSelect }
145
- entityForSuggestions={ entityForSuggestions }
146
- />
147
- ) ) }
148
- </Composite>
149
- ) }
150
- { debouncedSearch && ! suggestions?.length && (
151
- <WCText
152
- as="p"
153
- className="edit-site-custom-template-modal__no-results"
154
- >
155
- { labels.not_found }
156
- </WCText>
157
- ) }
158
- </>
159
- );
160
- }
161
-
162
- function AddCustomTemplateModalContent( {
163
- onSelect,
164
- entityForSuggestions,
165
- onBack,
166
- containerRef,
167
- } ) {
168
- const [ showSearchEntities, setShowSearchEntities ] = useState(
169
- entityForSuggestions.hasGeneralTemplate
170
- );
171
-
172
- // Focus on the first focusable element when the modal opens.
173
- // We handle focus management in the parent modal, just need to focus on the first focusable element.
174
- useEffect( () => {
175
- if ( containerRef.current ) {
176
- const [ firstFocusable ] = focus.focusable.find(
177
- containerRef.current
178
- );
179
- firstFocusable?.focus();
180
- }
181
- }, [ showSearchEntities ] );
182
-
183
- return (
184
- <VStack
185
- spacing={ 4 }
186
- className="edit-site-custom-template-modal__contents-wrapper"
187
- alignment="left"
188
- >
189
- { ! showSearchEntities && (
190
- <>
191
- <WCText as="p">
192
- { __(
193
- 'Select whether to create a single template for all items or a specific one.'
194
- ) }
195
- </WCText>
196
- <Flex
197
- className="edit-site-custom-template-modal__contents"
198
- gap="4"
199
- align="initial"
200
- >
201
- <FlexItem
202
- isBlock
203
- as={ Button }
204
- onClick={ () => {
205
- const {
206
- slug,
207
- title,
208
- description,
209
- templatePrefix,
210
- } = entityForSuggestions.template;
211
- onSelect( {
212
- slug,
213
- title,
214
- description,
215
- templatePrefix,
216
- } );
217
- } }
218
- >
219
- <WCText
220
- as="span"
221
- weight="var(--wpds-typography-font-weight-emphasis)"
222
- lineHeight={ 1.53846153846 } // 20px
223
- >
224
- { entityForSuggestions.labels.all_items }
225
- </WCText>
226
- <WCText
227
- as="span"
228
- lineHeight={ 1.53846153846 } // 20px
229
- >
230
- {
231
- // translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.
232
- __( 'For all items' )
233
- }
234
- </WCText>
235
- </FlexItem>
236
- <FlexItem
237
- isBlock
238
- as={ Button }
239
- onClick={ () => {
240
- setShowSearchEntities( true );
241
- } }
242
- >
243
- <WCText
244
- as="span"
245
- weight="var(--wpds-typography-font-weight-emphasis)"
246
- lineHeight={ 1.53846153846 } // 20px
247
- >
248
- { entityForSuggestions.labels.singular_name }
249
- </WCText>
250
- <WCText
251
- as="span"
252
- lineHeight={ 1.53846153846 } // 20px
253
- >
254
- {
255
- // translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.
256
- __( 'For a specific item' )
257
- }
258
- </WCText>
259
- </FlexItem>
260
- </Flex>
261
- <Flex justify="right">
262
- <Button
263
- __next40pxDefaultSize
264
- variant="tertiary"
265
- onClick={ onBack }
266
- >
267
- { __( 'Back' ) }
268
- </Button>
269
- </Flex>
270
- </>
271
- ) }
272
- { showSearchEntities && (
273
- <>
274
- <WCText as="p">
275
- { __(
276
- 'This template will be used only for the specific item chosen.'
277
- ) }
278
- </WCText>
279
- <SuggestionList
280
- entityForSuggestions={ entityForSuggestions }
281
- onSelect={ onSelect }
282
- />
283
- <Flex justify="right">
284
- <Button
285
- __next40pxDefaultSize
286
- variant="tertiary"
287
- onClick={ () => {
288
- // If general template exists, go directly back to main screen
289
- // instead of showing the choice screen
290
- if ( entityForSuggestions.hasGeneralTemplate ) {
291
- onBack();
292
- } else {
293
- setShowSearchEntities( false );
294
- }
295
- } }
296
- >
297
- { __( 'Back' ) }
298
- </Button>
299
- </Flex>
300
- </>
301
- ) }
302
- </VStack>
303
- );
304
- }
305
-
306
- export default AddCustomTemplateModalContent;