@wordpress/edit-site 5.28.3 → 5.29.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 (195) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-editor/use-site-editor-settings.js +2 -1
  3. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  4. package/build/components/code-editor/index.js +3 -2
  5. package/build/components/code-editor/index.js.map +1 -1
  6. package/build/components/editor/index.js +4 -4
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/editor-canvas-container/index.js +1 -1
  9. package/build/components/editor-canvas-container/index.js.map +1 -1
  10. package/build/components/header-edit-mode/document-tools/index.js +1 -2
  11. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  12. package/build/components/header-edit-mode/index.js +3 -1
  13. package/build/components/header-edit-mode/index.js.map +1 -1
  14. package/build/components/header-edit-mode/more-menu/index.js +7 -4
  15. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  16. package/build/components/keyboard-shortcuts/edit-mode.js +0 -13
  17. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  18. package/build/components/keyboard-shortcuts/register.js +0 -18
  19. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  20. package/build/components/layout/index.js +0 -1
  21. package/build/components/layout/index.js.map +1 -1
  22. package/build/components/page-patterns/dataviews-pattern-actions.js +25 -8
  23. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  24. package/build/components/page-patterns/header.js +2 -1
  25. package/build/components/page-patterns/header.js.map +1 -1
  26. package/build/components/page-patterns/index.js +0 -1
  27. package/build/components/page-patterns/index.js.map +1 -1
  28. package/build/components/save-button/index.js +2 -1
  29. package/build/components/save-button/index.js.map +1 -1
  30. package/build/components/sidebar/index.js +3 -2
  31. package/build/components/sidebar/index.js.map +1 -1
  32. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +5 -5
  33. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  34. package/build/components/sidebar-edit-mode/template-panel/hooks.js +20 -5
  35. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  36. package/build/components/sidebar-edit-mode/template-panel/index.js +48 -5
  37. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  38. package/build/components/sidebar-edit-mode/template-panel/template-actions.js +2 -9
  39. package/build/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -1
  40. package/build/components/sidebar-navigation-screen-global-styles/index.js +6 -2
  41. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  42. package/build/components/style-book/index.js +2 -0
  43. package/build/components/style-book/index.js.map +1 -1
  44. package/build/hooks/commands/use-edit-mode-commands.js +3 -171
  45. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  46. package/build/hooks/index.js +0 -1
  47. package/build/hooks/index.js.map +1 -1
  48. package/build/hooks/push-changes-to-global-styles/index.js +4 -5
  49. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  50. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +91 -0
  51. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -0
  52. package/build/store/actions.js +19 -50
  53. package/build/store/actions.js.map +1 -1
  54. package/build/utils/clone-deep.js +15 -0
  55. package/build/utils/clone-deep.js.map +1 -0
  56. package/build-module/components/block-editor/use-site-editor-settings.js +2 -1
  57. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  58. package/build-module/components/code-editor/index.js +3 -2
  59. package/build-module/components/code-editor/index.js.map +1 -1
  60. package/build-module/components/editor/index.js +4 -4
  61. package/build-module/components/editor/index.js.map +1 -1
  62. package/build-module/components/editor-canvas-container/index.js +2 -2
  63. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  64. package/build-module/components/header-edit-mode/document-tools/index.js +1 -2
  65. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  66. package/build-module/components/header-edit-mode/index.js +3 -1
  67. package/build-module/components/header-edit-mode/index.js.map +1 -1
  68. package/build-module/components/header-edit-mode/more-menu/index.js +6 -3
  69. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  70. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -13
  71. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  72. package/build-module/components/keyboard-shortcuts/register.js +0 -18
  73. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  74. package/build-module/components/layout/index.js +1 -2
  75. package/build-module/components/layout/index.js.map +1 -1
  76. package/build-module/components/page-patterns/dataviews-pattern-actions.js +25 -8
  77. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  78. package/build-module/components/page-patterns/header.js +2 -1
  79. package/build-module/components/page-patterns/header.js.map +1 -1
  80. package/build-module/components/page-patterns/index.js +0 -1
  81. package/build-module/components/page-patterns/index.js.map +1 -1
  82. package/build-module/components/save-button/index.js +2 -1
  83. package/build-module/components/save-button/index.js.map +1 -1
  84. package/build-module/components/sidebar/index.js +3 -2
  85. package/build-module/components/sidebar/index.js.map +1 -1
  86. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +5 -5
  87. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  88. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +20 -5
  89. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  90. package/build-module/components/sidebar-edit-mode/template-panel/index.js +50 -7
  91. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  92. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js +2 -9
  93. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -1
  94. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -2
  95. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  96. package/build-module/components/style-book/index.js +2 -0
  97. package/build-module/components/style-book/index.js.map +1 -1
  98. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -172
  99. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  100. package/build-module/hooks/index.js +0 -1
  101. package/build-module/hooks/index.js.map +1 -1
  102. package/build-module/hooks/push-changes-to-global-styles/index.js +1 -3
  103. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  104. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +82 -0
  105. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -0
  106. package/build-module/store/actions.js +19 -50
  107. package/build-module/store/actions.js.map +1 -1
  108. package/build-module/utils/clone-deep.js +9 -0
  109. package/build-module/utils/clone-deep.js.map +1 -0
  110. package/build-style/style-rtl.css +24 -208
  111. package/build-style/style.css +24 -208
  112. package/package.json +43 -42
  113. package/src/components/block-editor/use-site-editor-settings.js +1 -0
  114. package/src/components/code-editor/index.js +3 -2
  115. package/src/components/editor/index.js +10 -7
  116. package/src/components/editor-canvas-container/index.js +2 -5
  117. package/src/components/{test → error-boundary/test}/error-boundary.js +7 -5
  118. package/src/components/global-styles/screen-revisions/style.scss +2 -2
  119. package/src/components/global-styles/style.scss +1 -1
  120. package/src/components/header-edit-mode/document-tools/index.js +1 -2
  121. package/src/components/header-edit-mode/index.js +1 -1
  122. package/src/components/header-edit-mode/more-menu/index.js +8 -3
  123. package/src/components/keyboard-shortcuts/edit-mode.js +0 -11
  124. package/src/components/keyboard-shortcuts/register.js +0 -19
  125. package/src/components/layout/index.js +0 -2
  126. package/src/components/page-patterns/dataviews-pattern-actions.js +41 -10
  127. package/src/components/page-patterns/header.js +1 -0
  128. package/src/components/page-patterns/index.js +0 -1
  129. package/src/components/page-patterns/style.scss +0 -182
  130. package/src/components/save-button/index.js +2 -1
  131. package/src/components/save-hub/style.scss +1 -1
  132. package/src/components/sidebar/index.js +2 -1
  133. package/src/components/sidebar-button/style.scss +1 -1
  134. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +5 -7
  135. package/src/components/sidebar-edit-mode/style.scss +4 -0
  136. package/src/components/sidebar-edit-mode/template-panel/hooks.js +37 -24
  137. package/src/components/sidebar-edit-mode/template-panel/index.js +76 -18
  138. package/src/components/sidebar-edit-mode/template-panel/style.scss +5 -14
  139. package/src/components/sidebar-edit-mode/template-panel/template-actions.js +1 -12
  140. package/src/components/sidebar-navigation-screen-global-styles/index.js +4 -1
  141. package/src/components/style-book/index.js +5 -1
  142. package/src/hooks/commands/use-edit-mode-commands.js +3 -184
  143. package/src/hooks/index.js +0 -1
  144. package/src/hooks/push-changes-to-global-styles/index.js +1 -4
  145. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +964 -0
  146. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +92 -0
  147. package/src/store/actions.js +21 -85
  148. package/src/store/test/actions.js +0 -75
  149. package/src/style.scss +1 -6
  150. package/src/utils/clone-deep.js +8 -0
  151. package/build/components/header-edit-mode/mode-switcher/index.js +0 -62
  152. package/build/components/header-edit-mode/mode-switcher/index.js.map +0 -1
  153. package/build/components/page-patterns/duplicate-menu-item.js +0 -93
  154. package/build/components/page-patterns/duplicate-menu-item.js.map +0 -1
  155. package/build/components/page-patterns/grid-item.js +0 -223
  156. package/build/components/page-patterns/grid-item.js.map +0 -1
  157. package/build/components/page-patterns/grid.js +0 -31
  158. package/build/components/page-patterns/grid.js.map +0 -1
  159. package/build/components/page-patterns/no-patterns.js +0 -18
  160. package/build/components/page-patterns/no-patterns.js.map +0 -1
  161. package/build/components/page-patterns/patterns-list.js +0 -168
  162. package/build/components/page-patterns/patterns-list.js.map +0 -1
  163. package/build/components/page-patterns/rename-menu-item.js +0 -105
  164. package/build/components/page-patterns/rename-menu-item.js.map +0 -1
  165. package/build/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -83
  166. package/build/components/sidebar-edit-mode/template-panel/replace-template-button.js.map +0 -1
  167. package/build/hooks/navigation-menu-edit.js +0 -82
  168. package/build/hooks/navigation-menu-edit.js.map +0 -1
  169. package/build-module/components/header-edit-mode/mode-switcher/index.js +0 -56
  170. package/build-module/components/header-edit-mode/mode-switcher/index.js.map +0 -1
  171. package/build-module/components/page-patterns/duplicate-menu-item.js +0 -85
  172. package/build-module/components/page-patterns/duplicate-menu-item.js.map +0 -1
  173. package/build-module/components/page-patterns/grid-item.js +0 -215
  174. package/build-module/components/page-patterns/grid-item.js.map +0 -1
  175. package/build-module/components/page-patterns/grid.js +0 -23
  176. package/build-module/components/page-patterns/grid.js.map +0 -1
  177. package/build-module/components/page-patterns/no-patterns.js +0 -11
  178. package/build-module/components/page-patterns/no-patterns.js.map +0 -1
  179. package/build-module/components/page-patterns/patterns-list.js +0 -160
  180. package/build-module/components/page-patterns/patterns-list.js.map +0 -1
  181. package/build-module/components/page-patterns/rename-menu-item.js +0 -98
  182. package/build-module/components/page-patterns/rename-menu-item.js.map +0 -1
  183. package/build-module/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -76
  184. package/build-module/components/sidebar-edit-mode/template-panel/replace-template-button.js.map +0 -1
  185. package/build-module/hooks/navigation-menu-edit.js +0 -75
  186. package/build-module/hooks/navigation-menu-edit.js.map +0 -1
  187. package/src/components/header-edit-mode/mode-switcher/index.js +0 -60
  188. package/src/components/page-patterns/duplicate-menu-item.js +0 -105
  189. package/src/components/page-patterns/grid-item.js +0 -331
  190. package/src/components/page-patterns/grid.js +0 -22
  191. package/src/components/page-patterns/no-patterns.js +0 -12
  192. package/src/components/page-patterns/patterns-list.js +0 -229
  193. package/src/components/page-patterns/rename-menu-item.js +0 -132
  194. package/src/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -89
  195. package/src/hooks/navigation-menu-edit.js +0 -92
@@ -1,132 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- Button,
6
- MenuItem,
7
- Modal,
8
- TextControl,
9
- __experimentalHStack as HStack,
10
- __experimentalVStack as VStack,
11
- } from '@wordpress/components';
12
- import { store as coreStore } from '@wordpress/core-data';
13
- import { useDispatch } from '@wordpress/data';
14
- import { useState } from '@wordpress/element';
15
- import { __ } from '@wordpress/i18n';
16
- import { store as noticesStore } from '@wordpress/notices';
17
-
18
- /**
19
- * Internal dependencies
20
- */
21
- import { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';
22
-
23
- export default function RenameMenuItem( { item, onClose } ) {
24
- const [ title, setTitle ] = useState( () => item.title );
25
- const [ isModalOpen, setIsModalOpen ] = useState( false );
26
-
27
- const { editEntityRecord, saveEditedEntityRecord } =
28
- useDispatch( coreStore );
29
- const { createSuccessNotice, createErrorNotice } =
30
- useDispatch( noticesStore );
31
-
32
- if ( item.type === TEMPLATE_PART_POST_TYPE && ! item.isCustom ) {
33
- return null;
34
- }
35
-
36
- async function onRename( event ) {
37
- event.preventDefault();
38
-
39
- try {
40
- await editEntityRecord( 'postType', item.type, item.id, { title } );
41
-
42
- // Update state before saving rerenders the list.
43
- setTitle( '' );
44
- setIsModalOpen( false );
45
- onClose();
46
-
47
- // Persist edited entity.
48
- await saveEditedEntityRecord( 'postType', item.type, item.id, {
49
- throwOnError: true,
50
- } );
51
-
52
- createSuccessNotice(
53
- item.type === TEMPLATE_PART_POST_TYPE
54
- ? __( 'Template part renamed.' )
55
- : __( 'Pattern renamed.' ),
56
- {
57
- type: 'snackbar',
58
- }
59
- );
60
- } catch ( error ) {
61
- const fallbackErrorMessage =
62
- item.type === TEMPLATE_PART_POST_TYPE
63
- ? __(
64
- 'An error occurred while renaming the template part.'
65
- )
66
- : __( 'An error occurred while renaming the pattern.' );
67
- const errorMessage =
68
- error.message && error.code !== 'unknown_error'
69
- ? error.message
70
- : fallbackErrorMessage;
71
-
72
- createErrorNotice( errorMessage, { type: 'snackbar' } );
73
- }
74
- }
75
-
76
- return (
77
- <>
78
- <MenuItem
79
- onClick={ () => {
80
- setIsModalOpen( true );
81
- setTitle( item.title );
82
- } }
83
- >
84
- { __( 'Rename' ) }
85
- </MenuItem>
86
- { isModalOpen && (
87
- <Modal
88
- title={ __( 'Rename' ) }
89
- onRequestClose={ () => {
90
- setIsModalOpen( false );
91
- onClose();
92
- } }
93
- overlayClassName="edit-site-list__rename-modal"
94
- >
95
- <form onSubmit={ onRename }>
96
- <VStack spacing="5">
97
- <TextControl
98
- __nextHasNoMarginBottom
99
- __next40pxDefaultSize
100
- label={ __( 'Name' ) }
101
- value={ title }
102
- onChange={ setTitle }
103
- required
104
- />
105
-
106
- <HStack justify="right">
107
- <Button
108
- __next40pxDefaultSize
109
- variant="tertiary"
110
- onClick={ () => {
111
- setIsModalOpen( false );
112
- onClose();
113
- } }
114
- >
115
- { __( 'Cancel' ) }
116
- </Button>
117
-
118
- <Button
119
- __next40pxDefaultSize
120
- variant="primary"
121
- type="submit"
122
- >
123
- { __( 'Save' ) }
124
- </Button>
125
- </HStack>
126
- </VStack>
127
- </form>
128
- </Modal>
129
- ) }
130
- </>
131
- );
132
- }
@@ -1,89 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect, useDispatch } from '@wordpress/data';
5
- import { useState } from '@wordpress/element';
6
- import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
7
- import { MenuItem, Modal } from '@wordpress/components';
8
- import { __ } from '@wordpress/i18n';
9
- import { store as coreStore } from '@wordpress/core-data';
10
- import { useAsyncList } from '@wordpress/compose';
11
- import { serialize } from '@wordpress/blocks';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import { store as editSiteStore } from '../../../store';
17
-
18
- export default function ReplaceTemplateButton( {
19
- onClick,
20
- availableTemplates,
21
- } ) {
22
- const { editEntityRecord } = useDispatch( coreStore );
23
- const [ showModal, setShowModal ] = useState( false );
24
- const onClose = () => {
25
- setShowModal( false );
26
- };
27
-
28
- const { postId, postType } = useSelect( ( select ) => {
29
- return {
30
- postId: select( editSiteStore ).getEditedPostId(),
31
- postType: select( editSiteStore ).getEditedPostType(),
32
- };
33
- }, [] );
34
-
35
- const onTemplateSelect = async ( selectedTemplate ) => {
36
- onClose(); // Close the template suggestions modal first.
37
- onClick();
38
- await editEntityRecord( 'postType', postType, postId, {
39
- blocks: selectedTemplate.blocks,
40
- content: serialize( selectedTemplate.blocks ),
41
- } );
42
- };
43
-
44
- if ( ! availableTemplates.length || availableTemplates.length < 1 ) {
45
- return null;
46
- }
47
-
48
- return (
49
- <>
50
- <MenuItem
51
- info={ __(
52
- 'Replace the contents of this template with another.'
53
- ) }
54
- onClick={ () => setShowModal( true ) }
55
- >
56
- { __( 'Replace template' ) }
57
- </MenuItem>
58
-
59
- { showModal && (
60
- <Modal
61
- title={ __( 'Choose a template' ) }
62
- onRequestClose={ onClose }
63
- overlayClassName="edit-site-template-panel__replace-template-modal"
64
- isFullScreen
65
- >
66
- <div className="edit-site-template-panel__replace-template-modal__content">
67
- <TemplatesList
68
- availableTemplates={ availableTemplates }
69
- onSelect={ onTemplateSelect }
70
- />
71
- </div>
72
- </Modal>
73
- ) }
74
- </>
75
- );
76
- }
77
-
78
- function TemplatesList( { availableTemplates, onSelect } ) {
79
- const shownTemplates = useAsyncList( availableTemplates );
80
-
81
- return (
82
- <BlockPatternsList
83
- label={ __( 'Templates' ) }
84
- blockPatterns={ availableTemplates }
85
- shownPatterns={ shownTemplates }
86
- onClickPattern={ onSelect }
87
- />
88
- );
89
- }
@@ -1,92 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __ } from '@wordpress/i18n';
5
- import { useSelect } from '@wordpress/data';
6
- import { BlockControls, useBlockEditingMode } from '@wordpress/block-editor';
7
- import { store as coreStore } from '@wordpress/core-data';
8
- import { ToolbarButton } from '@wordpress/components';
9
- import { addFilter } from '@wordpress/hooks';
10
- import { createHigherOrderComponent } from '@wordpress/compose';
11
- import { privateApis as routerPrivateApis } from '@wordpress/router';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import { useLink } from '../components/routes/link';
17
- import { unlock } from '../lock-unlock';
18
- import { NAVIGATION_POST_TYPE } from '../utils/constants';
19
-
20
- const { useLocation } = unlock( routerPrivateApis );
21
-
22
- function NavigationMenuEdit( { attributes } ) {
23
- const { ref } = attributes;
24
- const { params } = useLocation();
25
- const blockEditingMode = useBlockEditingMode();
26
- const navigationMenu = useSelect(
27
- ( select ) => {
28
- return select( coreStore ).getEntityRecord(
29
- 'postType',
30
- NAVIGATION_POST_TYPE,
31
- // Ideally this should be an official public API.
32
- ref
33
- );
34
- },
35
- [ ref ]
36
- );
37
-
38
- const linkProps = useLink(
39
- {
40
- postId: navigationMenu?.id,
41
- postType: navigationMenu?.type,
42
- canvas: 'edit',
43
- },
44
- {
45
- // this applies to Navigation Menus as well.
46
- fromTemplateId: params.postId || navigationMenu?.id,
47
- }
48
- );
49
-
50
- // A non-default setting for block editing mode indicates that the
51
- // editor should restrict "editing" actions. Therefore the `Edit` button
52
- // should not be displayed.
53
- if ( ! navigationMenu || blockEditingMode !== 'default' ) {
54
- return null;
55
- }
56
-
57
- return (
58
- <BlockControls group="other">
59
- <ToolbarButton
60
- { ...linkProps }
61
- onClick={ ( event ) => {
62
- linkProps.onClick( event );
63
- } }
64
- >
65
- { __( 'Edit' ) }
66
- </ToolbarButton>
67
- </BlockControls>
68
- );
69
- }
70
-
71
- export const withEditBlockControls = createHigherOrderComponent(
72
- ( BlockEdit ) => ( props ) => {
73
- const { attributes, name } = props;
74
- const isDisplayed = name === 'core/navigation' && attributes.ref;
75
-
76
- return (
77
- <>
78
- <BlockEdit { ...props } />
79
- { isDisplayed && (
80
- <NavigationMenuEdit attributes={ attributes } />
81
- ) }
82
- </>
83
- );
84
- },
85
- 'withEditBlockControls'
86
- );
87
-
88
- addFilter(
89
- 'editor.BlockEdit',
90
- 'core/edit-site/navigation-edit-button',
91
- withEditBlockControls
92
- );