@wordpress/edit-site 3.0.18-next.33ec3857e2.0 → 3.0.21

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 (174) hide show
  1. package/build/components/block-editor/index.js +1 -1
  2. package/build/components/block-editor/index.js.map +1 -1
  3. package/build/components/block-editor/resizable-editor.js +37 -8
  4. package/build/components/block-editor/resizable-editor.js.map +1 -1
  5. package/build/components/global-styles/border-panel.js +22 -81
  6. package/build/components/global-styles/border-panel.js.map +1 -1
  7. package/build/components/global-styles/gradients-palette-panel.js +7 -3
  8. package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
  9. package/build/components/global-styles/screen-background-color.js +10 -9
  10. package/build/components/global-styles/screen-background-color.js.map +1 -1
  11. package/build/components/global-styles/screen-colors.js +1 -1
  12. package/build/components/global-styles/screen-colors.js.map +1 -1
  13. package/build/components/global-styles/screen-link-color.js +10 -6
  14. package/build/components/global-styles/screen-link-color.js.map +1 -1
  15. package/build/components/global-styles/screen-text-color.js +10 -6
  16. package/build/components/global-styles/screen-text-color.js.map +1 -1
  17. package/build/components/global-styles/ui.js +14 -27
  18. package/build/components/global-styles/ui.js.map +1 -1
  19. package/build/components/list/actions/index.js +0 -1
  20. package/build/components/list/actions/index.js.map +1 -1
  21. package/build/components/list/added-by.js +9 -3
  22. package/build/components/list/added-by.js.map +1 -1
  23. package/build/components/navigation-sidebar/navigation-panel/constants.js +1 -11
  24. package/build/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
  25. package/build/components/navigation-sidebar/navigation-toggle/index.js +10 -1
  26. package/build/components/navigation-sidebar/navigation-toggle/index.js.map +1 -1
  27. package/build/components/sidebar/default-sidebar.js +2 -4
  28. package/build/components/sidebar/default-sidebar.js.map +1 -1
  29. package/build/components/sidebar/global-styles-sidebar.js +0 -1
  30. package/build/components/sidebar/global-styles-sidebar.js.map +1 -1
  31. package/build/plugins/site-export.js +1 -1
  32. package/build/plugins/site-export.js.map +1 -1
  33. package/build-module/components/block-editor/index.js +2 -2
  34. package/build-module/components/block-editor/index.js.map +1 -1
  35. package/build-module/components/block-editor/resizable-editor.js +37 -8
  36. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  37. package/build-module/components/global-styles/border-panel.js +23 -82
  38. package/build-module/components/global-styles/border-panel.js.map +1 -1
  39. package/build-module/components/global-styles/gradients-palette-panel.js +5 -4
  40. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
  41. package/build-module/components/global-styles/screen-background-color.js +11 -9
  42. package/build-module/components/global-styles/screen-background-color.js.map +1 -1
  43. package/build-module/components/global-styles/screen-colors.js +1 -1
  44. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  45. package/build-module/components/global-styles/screen-link-color.js +11 -7
  46. package/build-module/components/global-styles/screen-link-color.js.map +1 -1
  47. package/build-module/components/global-styles/screen-text-color.js +11 -7
  48. package/build-module/components/global-styles/screen-text-color.js.map +1 -1
  49. package/build-module/components/global-styles/ui.js +14 -26
  50. package/build-module/components/global-styles/ui.js.map +1 -1
  51. package/build-module/components/list/actions/index.js +0 -1
  52. package/build-module/components/list/actions/index.js.map +1 -1
  53. package/build-module/components/list/added-by.js +10 -4
  54. package/build-module/components/list/added-by.js.map +1 -1
  55. package/build-module/components/navigation-sidebar/navigation-panel/constants.js +0 -5
  56. package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
  57. package/build-module/components/navigation-sidebar/navigation-toggle/index.js +11 -1
  58. package/build-module/components/navigation-sidebar/navigation-toggle/index.js.map +1 -1
  59. package/build-module/components/sidebar/default-sidebar.js +2 -4
  60. package/build-module/components/sidebar/default-sidebar.js.map +1 -1
  61. package/build-module/components/sidebar/global-styles-sidebar.js +0 -1
  62. package/build-module/components/sidebar/global-styles-sidebar.js.map +1 -1
  63. package/build-module/plugins/site-export.js +2 -2
  64. package/build-module/plugins/site-export.js.map +1 -1
  65. package/build-style/style-rtl.css +62 -32
  66. package/build-style/style.css +62 -32
  67. package/package.json +28 -28
  68. package/src/components/block-editor/index.js +2 -2
  69. package/src/components/block-editor/resizable-editor.js +52 -13
  70. package/src/components/block-editor/style.scss +18 -10
  71. package/src/components/global-styles/border-panel.js +42 -106
  72. package/src/components/global-styles/gradients-palette-panel.js +4 -4
  73. package/src/components/global-styles/screen-background-color.js +10 -7
  74. package/src/components/global-styles/screen-colors.js +1 -1
  75. package/src/components/global-styles/screen-link-color.js +14 -6
  76. package/src/components/global-styles/screen-text-color.js +14 -6
  77. package/src/components/global-styles/style.scss +19 -1
  78. package/src/components/global-styles/ui.js +25 -50
  79. package/src/components/header/document-actions/style.scss +9 -1
  80. package/src/components/header/style.scss +1 -2
  81. package/src/components/list/actions/index.js +0 -1
  82. package/src/components/list/added-by.js +25 -9
  83. package/src/components/navigation-sidebar/navigation-panel/constants.js +0 -15
  84. package/src/components/navigation-sidebar/navigation-toggle/index.js +12 -0
  85. package/src/components/navigation-sidebar/navigation-toggle/style.scss +8 -4
  86. package/src/components/sidebar/default-sidebar.js +0 -2
  87. package/src/components/sidebar/global-styles-sidebar.js +0 -1
  88. package/src/components/sidebar/style.scss +14 -21
  89. package/src/plugins/site-export.js +2 -2
  90. package/build/components/navigation-sidebar/navigation-panel/content-navigation-item.js +0 -101
  91. package/build/components/navigation-sidebar/navigation-panel/content-navigation-item.js.map +0 -1
  92. package/build/components/navigation-sidebar/navigation-panel/menus/content-categories.js +0 -82
  93. package/build/components/navigation-sidebar/navigation-panel/menus/content-categories.js.map +0 -1
  94. package/build/components/navigation-sidebar/navigation-panel/menus/content-pages.js +0 -82
  95. package/build/components/navigation-sidebar/navigation-panel/menus/content-pages.js.map +0 -1
  96. package/build/components/navigation-sidebar/navigation-panel/menus/content-posts.js +0 -107
  97. package/build/components/navigation-sidebar/navigation-panel/menus/content-posts.js.map +0 -1
  98. package/build/components/navigation-sidebar/navigation-panel/menus/index.js +0 -57
  99. package/build/components/navigation-sidebar/navigation-panel/menus/index.js.map +0 -1
  100. package/build/components/navigation-sidebar/navigation-panel/menus/template-parts-sub.js +0 -48
  101. package/build/components/navigation-sidebar/navigation-panel/menus/template-parts-sub.js.map +0 -1
  102. package/build/components/navigation-sidebar/navigation-panel/menus/template-parts.js +0 -100
  103. package/build/components/navigation-sidebar/navigation-panel/menus/template-parts.js.map +0 -1
  104. package/build/components/navigation-sidebar/navigation-panel/menus/templates-sub.js +0 -62
  105. package/build/components/navigation-sidebar/navigation-panel/menus/templates-sub.js.map +0 -1
  106. package/build/components/navigation-sidebar/navigation-panel/menus/templates.js +0 -143
  107. package/build/components/navigation-sidebar/navigation-panel/menus/templates.js.map +0 -1
  108. package/build/components/navigation-sidebar/navigation-panel/navigation-entity-items.js +0 -76
  109. package/build/components/navigation-sidebar/navigation-panel/navigation-entity-items.js.map +0 -1
  110. package/build/components/navigation-sidebar/navigation-panel/new-template-dropdown.js +0 -125
  111. package/build/components/navigation-sidebar/navigation-panel/new-template-dropdown.js.map +0 -1
  112. package/build/components/navigation-sidebar/navigation-panel/search-results.js +0 -132
  113. package/build/components/navigation-sidebar/navigation-panel/search-results.js.map +0 -1
  114. package/build/components/navigation-sidebar/navigation-panel/template-navigation-item.js +0 -86
  115. package/build/components/navigation-sidebar/navigation-panel/template-navigation-item.js.map +0 -1
  116. package/build/components/navigation-sidebar/navigation-panel/template-preview.js +0 -46
  117. package/build/components/navigation-sidebar/navigation-panel/template-preview.js.map +0 -1
  118. package/build/components/navigation-sidebar/navigation-panel/use-debounced-search.js +0 -47
  119. package/build/components/navigation-sidebar/navigation-panel/use-debounced-search.js.map +0 -1
  120. package/build/components/navigation-sidebar/navigation-panel/utils.js +0 -21
  121. package/build/components/navigation-sidebar/navigation-panel/utils.js.map +0 -1
  122. package/build/utils/get-closest-available-template.js +0 -48
  123. package/build/utils/get-closest-available-template.js.map +0 -1
  124. package/build-module/components/navigation-sidebar/navigation-panel/content-navigation-item.js +0 -86
  125. package/build-module/components/navigation-sidebar/navigation-panel/content-navigation-item.js.map +0 -1
  126. package/build-module/components/navigation-sidebar/navigation-panel/menus/content-categories.js +0 -65
  127. package/build-module/components/navigation-sidebar/navigation-panel/menus/content-categories.js.map +0 -1
  128. package/build-module/components/navigation-sidebar/navigation-panel/menus/content-pages.js +0 -65
  129. package/build-module/components/navigation-sidebar/navigation-panel/menus/content-pages.js.map +0 -1
  130. package/build-module/components/navigation-sidebar/navigation-panel/menus/content-posts.js +0 -90
  131. package/build-module/components/navigation-sidebar/navigation-panel/menus/content-posts.js.map +0 -1
  132. package/build-module/components/navigation-sidebar/navigation-panel/menus/index.js +0 -40
  133. package/build-module/components/navigation-sidebar/navigation-panel/menus/index.js.map +0 -1
  134. package/build-module/components/navigation-sidebar/navigation-panel/menus/template-parts-sub.js +0 -35
  135. package/build-module/components/navigation-sidebar/navigation-panel/menus/template-parts-sub.js.map +0 -1
  136. package/build-module/components/navigation-sidebar/navigation-panel/menus/template-parts.js +0 -84
  137. package/build-module/components/navigation-sidebar/navigation-panel/menus/template-parts.js.map +0 -1
  138. package/build-module/components/navigation-sidebar/navigation-panel/menus/templates-sub.js +0 -50
  139. package/build-module/components/navigation-sidebar/navigation-panel/menus/templates-sub.js.map +0 -1
  140. package/build-module/components/navigation-sidebar/navigation-panel/menus/templates.js +0 -124
  141. package/build-module/components/navigation-sidebar/navigation-panel/menus/templates.js.map +0 -1
  142. package/build-module/components/navigation-sidebar/navigation-panel/navigation-entity-items.js +0 -65
  143. package/build-module/components/navigation-sidebar/navigation-panel/navigation-entity-items.js.map +0 -1
  144. package/build-module/components/navigation-sidebar/navigation-panel/new-template-dropdown.js +0 -106
  145. package/build-module/components/navigation-sidebar/navigation-panel/new-template-dropdown.js.map +0 -1
  146. package/build-module/components/navigation-sidebar/navigation-panel/search-results.js +0 -116
  147. package/build-module/components/navigation-sidebar/navigation-panel/search-results.js.map +0 -1
  148. package/build-module/components/navigation-sidebar/navigation-panel/template-navigation-item.js +0 -71
  149. package/build-module/components/navigation-sidebar/navigation-panel/template-navigation-item.js.map +0 -1
  150. package/build-module/components/navigation-sidebar/navigation-panel/template-preview.js +0 -38
  151. package/build-module/components/navigation-sidebar/navigation-panel/template-preview.js.map +0 -1
  152. package/build-module/components/navigation-sidebar/navigation-panel/use-debounced-search.js +0 -37
  153. package/build-module/components/navigation-sidebar/navigation-panel/use-debounced-search.js.map +0 -1
  154. package/build-module/components/navigation-sidebar/navigation-panel/utils.js +0 -8
  155. package/build-module/components/navigation-sidebar/navigation-panel/utils.js.map +0 -1
  156. package/build-module/utils/get-closest-available-template.js +0 -40
  157. package/build-module/utils/get-closest-available-template.js.map +0 -1
  158. package/src/components/navigation-sidebar/navigation-panel/content-navigation-item.js +0 -89
  159. package/src/components/navigation-sidebar/navigation-panel/menus/content-categories.js +0 -85
  160. package/src/components/navigation-sidebar/navigation-panel/menus/content-pages.js +0 -85
  161. package/src/components/navigation-sidebar/navigation-panel/menus/content-posts.js +0 -117
  162. package/src/components/navigation-sidebar/navigation-panel/menus/index.js +0 -61
  163. package/src/components/navigation-sidebar/navigation-panel/menus/template-parts-sub.js +0 -34
  164. package/src/components/navigation-sidebar/navigation-panel/menus/template-parts.js +0 -94
  165. package/src/components/navigation-sidebar/navigation-panel/menus/templates-sub.js +0 -42
  166. package/src/components/navigation-sidebar/navigation-panel/menus/templates.js +0 -147
  167. package/src/components/navigation-sidebar/navigation-panel/navigation-entity-items.js +0 -53
  168. package/src/components/navigation-sidebar/navigation-panel/new-template-dropdown.js +0 -110
  169. package/src/components/navigation-sidebar/navigation-panel/search-results.js +0 -117
  170. package/src/components/navigation-sidebar/navigation-panel/template-navigation-item.js +0 -83
  171. package/src/components/navigation-sidebar/navigation-panel/template-preview.js +0 -32
  172. package/src/components/navigation-sidebar/navigation-panel/use-debounced-search.js +0 -47
  173. package/src/components/navigation-sidebar/navigation-panel/utils.js +0 -11
  174. package/src/utils/get-closest-available-template.js +0 -31
@@ -1,53 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useDispatch, useSelect } from '@wordpress/data';
5
- import { __experimentalNavigationItem as NavigationItem } from '@wordpress/components';
6
- import { getPathAndQueryString } from '@wordpress/url';
7
- import { store as coreStore } from '@wordpress/core-data';
8
-
9
- /**
10
- * Internal dependencies
11
- */
12
- import { store as editSiteStore } from '../../../store';
13
-
14
- const getEntityTitle = ( kind, entity ) =>
15
- 'taxonomy' === kind ? entity.name : entity?.title?.rendered;
16
-
17
- export default function NavigationEntityItems( { kind, name, query = {} } ) {
18
- const entities = useSelect(
19
- ( select ) => select( coreStore ).getEntityRecords( kind, name, query ),
20
- [ kind, name, query ]
21
- );
22
-
23
- const { setPage } = useDispatch( editSiteStore );
24
-
25
- if ( ! entities ) {
26
- return null;
27
- }
28
-
29
- const onActivateItem = ( { type, slug, link, id } ) => {
30
- setPage( {
31
- type,
32
- slug,
33
- path: getPathAndQueryString( link ),
34
- context: {
35
- postType: type,
36
- postId: id,
37
- },
38
- } );
39
- };
40
-
41
- return entities.map( ( entity ) => {
42
- const key = `content-${ getPathAndQueryString( entity.link ) }`;
43
-
44
- return (
45
- <NavigationItem
46
- key={ key }
47
- item={ key }
48
- title={ getEntityTitle( kind, entity ) }
49
- onClick={ () => onActivateItem( entity ) }
50
- />
51
- );
52
- } );
53
- }
@@ -1,110 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { filter, find, includes, map } from 'lodash';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import {
10
- DropdownMenu,
11
- MenuGroup,
12
- MenuItem,
13
- NavigableMenu,
14
- } from '@wordpress/components';
15
- import { useDispatch, useSelect } from '@wordpress/data';
16
- import { __ } from '@wordpress/i18n';
17
- import { Icon, plus } from '@wordpress/icons';
18
- import { store as editorStore } from '@wordpress/editor';
19
- import { store as coreStore } from '@wordpress/core-data';
20
-
21
- /**
22
- * Internal dependencies
23
- */
24
- import getClosestAvailableTemplate from '../../../utils/get-closest-available-template';
25
- import { TEMPLATES_NEW_OPTIONS } from './constants';
26
- import { store as editSiteStore } from '../../../store';
27
-
28
- export default function NewTemplateDropdown() {
29
- const { defaultTemplateTypes, templates } = useSelect( ( select ) => {
30
- const {
31
- __experimentalGetDefaultTemplateTypes: getDefaultTemplateTypes,
32
- } = select( editorStore );
33
- const templateEntities = select( coreStore ).getEntityRecords(
34
- 'postType',
35
- 'wp_template'
36
- );
37
- return {
38
- defaultTemplateTypes: getDefaultTemplateTypes(),
39
- templates: templateEntities,
40
- };
41
- }, [] );
42
- const { addTemplate } = useDispatch( editSiteStore );
43
-
44
- const createTemplate = ( slug ) => {
45
- const closestAvailableTemplate = getClosestAvailableTemplate(
46
- slug,
47
- templates
48
- );
49
- const { title, description } = find( defaultTemplateTypes, { slug } );
50
- addTemplate( {
51
- content: closestAvailableTemplate.content.raw,
52
- excerpt: description,
53
- // Slugs need to be strings, so this is for template `404`
54
- slug: slug.toString(),
55
- status: 'publish',
56
- title,
57
- } );
58
- };
59
-
60
- const existingTemplateSlugs = map( templates, 'slug' );
61
-
62
- const missingTemplates = filter(
63
- defaultTemplateTypes,
64
- ( template ) =>
65
- includes( TEMPLATES_NEW_OPTIONS, template.slug ) &&
66
- ! includes( existingTemplateSlugs, template.slug )
67
- );
68
-
69
- if ( ! missingTemplates.length ) {
70
- return null;
71
- }
72
-
73
- return (
74
- <DropdownMenu
75
- className="edit-site-navigation-panel__new-template-dropdown"
76
- icon={ null }
77
- label={ __( 'Add Template' ) }
78
- popoverProps={ {
79
- noArrow: false,
80
- } }
81
- toggleProps={ {
82
- children: <Icon icon={ plus } />,
83
- isSmall: true,
84
- variant: 'tertiary',
85
- } }
86
- >
87
- { ( { onClose } ) => (
88
- <NavigableMenu className="edit-site-navigation-panel__new-template-popover">
89
- <MenuGroup label={ __( 'Add Template' ) }>
90
- { map(
91
- missingTemplates,
92
- ( { title, description, slug } ) => (
93
- <MenuItem
94
- info={ description }
95
- key={ slug }
96
- onClick={ () => {
97
- createTemplate( slug );
98
- onClose();
99
- } }
100
- >
101
- { title }
102
- </MenuItem>
103
- )
104
- ) }
105
- </MenuGroup>
106
- </NavigableMenu>
107
- ) }
108
- </DropdownMenu>
109
- );
110
- }
@@ -1,117 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { map, sortBy, keyBy } from 'lodash';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { useMemo } from '@wordpress/element';
10
- import { __experimentalNavigationGroup as NavigationGroup } from '@wordpress/components';
11
- import { __ } from '@wordpress/i18n';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import { normalizedSearch } from './utils';
17
- import { useSelect } from '@wordpress/data';
18
- import { store as editorStore } from '@wordpress/editor';
19
- import TemplateNavigationItem from './template-navigation-item';
20
- import ContentNavigationItem from './content-navigation-item';
21
-
22
- export default function SearchResults( { items, search, disableFilter } ) {
23
- let itemType = null;
24
- if ( items?.length > 0 ) {
25
- if ( items[ 0 ].taxonomy ) {
26
- itemType = 'taxonomy';
27
- } else {
28
- itemType = items[ 0 ].type;
29
- }
30
- }
31
-
32
- const itemInfos = useSelect(
33
- ( select ) => {
34
- if ( itemType === null || items === null ) {
35
- return [];
36
- }
37
-
38
- if ( itemType === 'wp_template' ) {
39
- const {
40
- __experimentalGetTemplateInfo: getTemplateInfo,
41
- } = select( editorStore );
42
-
43
- return items.map( ( item ) => ( {
44
- slug: item.slug,
45
- ...getTemplateInfo( item ),
46
- } ) );
47
- }
48
-
49
- if ( itemType === 'taxonomy' ) {
50
- return items.map( ( item ) => ( {
51
- slug: item.slug,
52
- title: item.name,
53
- description: item.description,
54
- } ) );
55
- }
56
-
57
- return items.map( ( item ) => ( {
58
- slug: item.slug,
59
- title: item.title?.rendered,
60
- description: item.excerpt?.rendered,
61
- } ) );
62
- },
63
- [ items, itemType ]
64
- );
65
- const itemInfosMap = useMemo( () => keyBy( itemInfos, 'slug' ), [
66
- itemInfos,
67
- ] );
68
-
69
- const itemsFiltered = useMemo( () => {
70
- if ( items === null || search.length === 0 ) {
71
- return [];
72
- }
73
-
74
- if ( disableFilter ) {
75
- return items;
76
- }
77
-
78
- return items.filter( ( { slug } ) => {
79
- const { title, description } = itemInfosMap[ slug ];
80
-
81
- return (
82
- normalizedSearch( slug, search ) ||
83
- normalizedSearch( title, search ) ||
84
- normalizedSearch( description, search )
85
- );
86
- } );
87
- }, [ items, itemInfos, search ] );
88
-
89
- const itemsSorted = useMemo( () => {
90
- if ( ! itemsFiltered ) {
91
- return [];
92
- }
93
-
94
- return sortBy( itemsFiltered, [
95
- ( { slug } ) => {
96
- const { title } = itemInfosMap[ slug ];
97
- return ! normalizedSearch( title, search );
98
- },
99
- ] );
100
- }, [ itemsFiltered, search ] );
101
-
102
- const ItemComponent =
103
- itemType === 'wp_template' || itemType === 'wp_template_part'
104
- ? TemplateNavigationItem
105
- : ContentNavigationItem;
106
-
107
- return (
108
- <NavigationGroup title={ __( 'Search results' ) }>
109
- { map( itemsSorted, ( item ) => (
110
- <ItemComponent
111
- item={ item }
112
- key={ `${ item.taxonomy || item.type }-${ item.id }` }
113
- />
114
- ) ) }
115
- </NavigationGroup>
116
- );
117
- }
@@ -1,83 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- Button,
6
- __experimentalNavigationItem as NavigationItem,
7
- } from '@wordpress/components';
8
- import { useDispatch, useSelect } from '@wordpress/data';
9
- import { useState } from '@wordpress/element';
10
- import { __ } from '@wordpress/i18n';
11
- import { store as editorStore } from '@wordpress/editor';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import TemplatePreview from './template-preview';
17
- import { NavigationPanelPreviewFill } from '../index';
18
- import { store as editSiteStore } from '../../../store';
19
-
20
- export default function TemplateNavigationItem( { item } ) {
21
- const { title, description } = useSelect(
22
- ( select ) =>
23
- 'wp_template' === item.type
24
- ? select( editorStore ).__experimentalGetTemplateInfo( item )
25
- : {
26
- title: item?.title?.rendered || item?.slug,
27
- description: '',
28
- },
29
- []
30
- );
31
- const {
32
- setTemplate,
33
- setTemplatePart,
34
- setIsNavigationPanelOpened,
35
- } = useDispatch( editSiteStore );
36
- const [ isPreviewVisible, setIsPreviewVisible ] = useState( false );
37
-
38
- if ( ! item ) {
39
- return null;
40
- }
41
-
42
- const onActivateItem = () => {
43
- if ( 'wp_template' === item.type ) {
44
- setTemplate( item.id, item.slug );
45
- } else {
46
- setTemplatePart( item.id );
47
- }
48
- setIsNavigationPanelOpened( false );
49
- };
50
-
51
- return (
52
- <NavigationItem
53
- className="edit-site-navigation-panel__template-item"
54
- item={ `${ item.type }-${ item.id }` }
55
- >
56
- <Button
57
- onClick={ onActivateItem }
58
- onMouseEnter={ () => setIsPreviewVisible( true ) }
59
- onMouseLeave={ () => setIsPreviewVisible( false ) }
60
- >
61
- <span className="edit-site-navigation-panel__info-wrapper">
62
- <div className="edit-site-navigation-panel__template-item-title">
63
- { 'draft' === item.status && (
64
- <em>{ __( '[Draft]' ) }</em>
65
- ) }
66
- { title }
67
- </div>
68
- { description && (
69
- <div className="edit-site-navigation-panel__template-item-description">
70
- { description }
71
- </div>
72
- ) }
73
- </span>
74
- </Button>
75
-
76
- { isPreviewVisible && (
77
- <NavigationPanelPreviewFill>
78
- <TemplatePreview rawContent={ item.content.raw } />
79
- </NavigationPanelPreviewFill>
80
- ) }
81
- </NavigationItem>
82
- );
83
- }
@@ -1,32 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { parse } from '@wordpress/blocks';
5
- import { BlockPreview, BlockContextProvider } from '@wordpress/block-editor';
6
- import { useMemo } from '@wordpress/element';
7
-
8
- export default function TemplatePreview( { rawContent, blockContext } ) {
9
- const blocks = useMemo( () => ( rawContent ? parse( rawContent ) : [] ), [
10
- rawContent,
11
- ] );
12
-
13
- if ( ! blocks || blocks.length === 0 ) {
14
- return null;
15
- }
16
-
17
- if ( blockContext ) {
18
- return (
19
- <div className="edit-site-navigation-panel__preview">
20
- <BlockContextProvider value={ blockContext }>
21
- <BlockPreview blocks={ blocks } viewportWidth={ 1200 } />
22
- </BlockContextProvider>
23
- </div>
24
- );
25
- }
26
-
27
- return (
28
- <div className="edit-site-navigation-panel__preview">
29
- <BlockPreview blocks={ blocks } viewportWidth={ 1200 } />
30
- </div>
31
- );
32
- }
@@ -1,47 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { debounce } from 'lodash';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { useState, useCallback, useEffect } from '@wordpress/element';
10
-
11
- /**
12
- * Internal dependencies
13
- */
14
- import { SEARCH_DEBOUNCE_IN_MS } from './constants';
15
-
16
- export default function useDebouncedSearch() {
17
- // The value used by the NavigationMenu to control the input field.
18
- const [ search, setSearch ] = useState( '' );
19
- // The value used to actually perform the search query.
20
- const [ searchQuery, setSearchQuery ] = useState( '' );
21
- const [ isDebouncing, setIsDebouncing ] = useState( false );
22
-
23
- useEffect( () => {
24
- setIsDebouncing( false );
25
- }, [ searchQuery ] );
26
-
27
- const debouncedSetSearchQuery = useCallback(
28
- debounce( setSearchQuery, SEARCH_DEBOUNCE_IN_MS ),
29
- [ setSearchQuery ]
30
- );
31
-
32
- const onSearch = useCallback(
33
- ( value ) => {
34
- setSearch( value );
35
- debouncedSetSearchQuery( value );
36
- setIsDebouncing( true );
37
- },
38
- [ setSearch, setIsDebouncing, debouncedSetSearchQuery ]
39
- );
40
-
41
- return {
42
- search,
43
- searchQuery,
44
- isDebouncing,
45
- onSearch,
46
- };
47
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { deburr } from 'lodash';
5
-
6
- // @see packages/block-editor/src/components/inserter/search-items.js
7
- export const normalizeInput = ( input ) =>
8
- deburr( input ).replace( /^\//, '' ).toLowerCase();
9
-
10
- export const normalizedSearch = ( title, search ) =>
11
- -1 !== normalizeInput( title ).indexOf( normalizeInput( search ) );
@@ -1,31 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { find } from 'lodash';
5
-
6
- export default function getClosestAvailableTemplate( slug, templates ) {
7
- const template = find( templates, { slug } );
8
- if ( template ) {
9
- return template;
10
- }
11
-
12
- switch ( slug ) {
13
- case 'single':
14
- case 'page':
15
- return getClosestAvailableTemplate( 'singular', templates );
16
- case 'author':
17
- case 'category':
18
- case 'taxonomy':
19
- case 'date':
20
- case 'tag':
21
- return getClosestAvailableTemplate( 'archive', templates );
22
- case 'front-page':
23
- return getClosestAvailableTemplate( 'home', templates );
24
- case 'attachment':
25
- return getClosestAvailableTemplate( 'single', templates );
26
- case 'privacy-policy':
27
- return getClosestAvailableTemplate( 'page', templates );
28
- }
29
-
30
- return find( templates, { slug: 'index' } );
31
- }