@wordpress/edit-post 7.24.1 → 7.25.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 (143) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/header/header-toolbar/index.js +8 -4
  3. package/build/components/header/header-toolbar/index.js.map +1 -1
  4. package/build/components/header/index.js +13 -11
  5. package/build/components/header/index.js.map +1 -1
  6. package/build/components/header/mode-switcher/index.js +1 -1
  7. package/build/components/header/mode-switcher/index.js.map +1 -1
  8. package/build/components/header/more-menu/index.js +2 -1
  9. package/build/components/header/more-menu/index.js.map +1 -1
  10. package/build/components/header/writing-menu/index.js +13 -12
  11. package/build/components/header/writing-menu/index.js.map +1 -1
  12. package/build/components/layout/index.js +12 -12
  13. package/build/components/layout/index.js.map +1 -1
  14. package/build/components/preferences-modal/index.js +65 -49
  15. package/build/components/preferences-modal/index.js.map +1 -1
  16. package/build/components/sidebar/post-status/index.js +1 -2
  17. package/build/components/sidebar/post-status/index.js.map +1 -1
  18. package/build/components/sidebar/settings-header/index.js +17 -43
  19. package/build/components/sidebar/settings-header/index.js.map +1 -1
  20. package/build/components/sidebar/settings-sidebar/index.js +80 -20
  21. package/build/components/sidebar/settings-sidebar/index.js.map +1 -1
  22. package/build/components/start-page-options/index.js +3 -3
  23. package/build/components/start-page-options/index.js.map +1 -1
  24. package/build/components/visual-editor/index.js +20 -257
  25. package/build/components/visual-editor/index.js.map +1 -1
  26. package/build/components/welcome-guide/index.js +6 -3
  27. package/build/components/welcome-guide/index.js.map +1 -1
  28. package/build/editor.js +5 -6
  29. package/build/editor.js.map +1 -1
  30. package/build/editor.native.js +1 -2
  31. package/build/editor.native.js.map +1 -1
  32. package/build/index.js +5 -4
  33. package/build/index.js.map +1 -1
  34. package/build/plugins/welcome-guide-menu-item/index.js +2 -6
  35. package/build/plugins/welcome-guide-menu-item/index.js.map +1 -1
  36. package/build/store/actions.js +35 -39
  37. package/build/store/actions.js.map +1 -1
  38. package/build/store/reducer.js +1 -34
  39. package/build/store/reducer.js.map +1 -1
  40. package/build/store/selectors.js +22 -12
  41. package/build/store/selectors.js.map +1 -1
  42. package/build-module/components/header/header-toolbar/index.js +8 -4
  43. package/build-module/components/header/header-toolbar/index.js.map +1 -1
  44. package/build-module/components/header/index.js +15 -13
  45. package/build-module/components/header/index.js.map +1 -1
  46. package/build-module/components/header/mode-switcher/index.js +1 -1
  47. package/build-module/components/header/mode-switcher/index.js.map +1 -1
  48. package/build-module/components/header/more-menu/index.js +2 -1
  49. package/build-module/components/header/more-menu/index.js.map +1 -1
  50. package/build-module/components/header/writing-menu/index.js +14 -13
  51. package/build-module/components/header/writing-menu/index.js.map +1 -1
  52. package/build-module/components/layout/index.js +13 -13
  53. package/build-module/components/layout/index.js.map +1 -1
  54. package/build-module/components/preferences-modal/index.js +65 -49
  55. package/build-module/components/preferences-modal/index.js.map +1 -1
  56. package/build-module/components/sidebar/post-status/index.js +2 -3
  57. package/build-module/components/sidebar/post-status/index.js.map +1 -1
  58. package/build-module/components/sidebar/settings-header/index.js +20 -46
  59. package/build-module/components/sidebar/settings-header/index.js.map +1 -1
  60. package/build-module/components/sidebar/settings-sidebar/index.js +80 -21
  61. package/build-module/components/sidebar/settings-sidebar/index.js.map +1 -1
  62. package/build-module/components/start-page-options/index.js +3 -3
  63. package/build-module/components/start-page-options/index.js.map +1 -1
  64. package/build-module/components/visual-editor/index.js +24 -261
  65. package/build-module/components/visual-editor/index.js.map +1 -1
  66. package/build-module/components/welcome-guide/index.js +6 -3
  67. package/build-module/components/welcome-guide/index.js.map +1 -1
  68. package/build-module/editor.js +5 -6
  69. package/build-module/editor.js.map +1 -1
  70. package/build-module/editor.native.js +1 -2
  71. package/build-module/editor.native.js.map +1 -1
  72. package/build-module/index.js +3 -2
  73. package/build-module/index.js.map +1 -1
  74. package/build-module/plugins/welcome-guide-menu-item/index.js +2 -6
  75. package/build-module/plugins/welcome-guide-menu-item/index.js.map +1 -1
  76. package/build-module/store/actions.js +31 -36
  77. package/build-module/store/actions.js.map +1 -1
  78. package/build-module/store/reducer.js +1 -33
  79. package/build-module/store/reducer.js.map +1 -1
  80. package/build-module/store/selectors.js +18 -9
  81. package/build-module/store/selectors.js.map +1 -1
  82. package/build-style/style-rtl.css +63 -200
  83. package/build-style/style.css +63 -200
  84. package/package.json +32 -32
  85. package/src/components/header/header-toolbar/index.js +4 -0
  86. package/src/components/header/header-toolbar/style.scss +15 -13
  87. package/src/components/header/index.js +28 -13
  88. package/src/components/header/mode-switcher/index.js +2 -1
  89. package/src/components/header/more-menu/index.js +1 -0
  90. package/src/components/header/style.scss +60 -34
  91. package/src/components/header/writing-menu/index.js +16 -18
  92. package/src/components/keyboard-shortcut-help-modal/test/__snapshots__/index.js.snap +1 -1
  93. package/src/components/layout/index.js +13 -12
  94. package/src/components/preferences-modal/index.js +109 -96
  95. package/src/components/preferences-modal/test/index.js +1 -52
  96. package/src/components/sidebar/post-status/index.js +2 -2
  97. package/src/components/sidebar/settings-header/index.js +19 -71
  98. package/src/components/sidebar/settings-sidebar/index.js +117 -54
  99. package/src/components/sidebar/style.scss +4 -12
  100. package/src/components/start-page-options/index.js +3 -3
  101. package/src/components/visual-editor/index.js +26 -359
  102. package/src/components/visual-editor/style.scss +0 -15
  103. package/src/components/welcome-guide/index.js +4 -2
  104. package/src/editor.js +7 -7
  105. package/src/editor.native.js +3 -9
  106. package/src/index.js +3 -2
  107. package/src/plugins/welcome-guide-menu-item/index.js +3 -6
  108. package/src/store/actions.js +32 -46
  109. package/src/store/reducer.js +0 -33
  110. package/src/store/selectors.js +23 -9
  111. package/src/store/test/actions.js +0 -28
  112. package/src/style.scss +0 -3
  113. package/src/test/__snapshots__/editor.native.js.snap +21 -0
  114. package/src/test/editor.native.js +90 -56
  115. package/build/components/device-preview/index.js +0 -72
  116. package/build/components/device-preview/index.js.map +0 -1
  117. package/build/components/header/document-actions/index.js +0 -82
  118. package/build/components/header/document-actions/index.js.map +0 -1
  119. package/build/components/sidebar/post-template/create-modal.js +0 -99
  120. package/build/components/sidebar/post-template/create-modal.js.map +0 -1
  121. package/build/components/sidebar/post-template/form.js +0 -110
  122. package/build/components/sidebar/post-template/form.js.map +0 -1
  123. package/build/components/sidebar/post-template/index.js +0 -106
  124. package/build/components/sidebar/post-template/index.js.map +0 -1
  125. package/build-module/components/device-preview/index.js +0 -65
  126. package/build-module/components/device-preview/index.js.map +0 -1
  127. package/build-module/components/header/document-actions/index.js +0 -74
  128. package/build-module/components/header/document-actions/index.js.map +0 -1
  129. package/build-module/components/sidebar/post-template/create-modal.js +0 -92
  130. package/build-module/components/sidebar/post-template/create-modal.js.map +0 -1
  131. package/build-module/components/sidebar/post-template/form.js +0 -102
  132. package/build-module/components/sidebar/post-template/form.js.map +0 -1
  133. package/build-module/components/sidebar/post-template/index.js +0 -98
  134. package/build-module/components/sidebar/post-template/index.js.map +0 -1
  135. package/src/components/device-preview/index.js +0 -73
  136. package/src/components/header/document-actions/index.js +0 -82
  137. package/src/components/header/document-actions/style.scss +0 -64
  138. package/src/components/sidebar/post-template/create-modal.js +0 -140
  139. package/src/components/sidebar/post-template/form.js +0 -141
  140. package/src/components/sidebar/post-template/index.js +0 -120
  141. package/src/components/sidebar/post-template/style.scss +0 -22
  142. package/src/components/sidebar/settings-header/style.scss +0 -74
  143. package/src/components/sidebar/template/style.scss +0 -35
@@ -1,141 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useState, useMemo } from '@wordpress/element';
5
- import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';
6
- import { __ } from '@wordpress/i18n';
7
- import { addTemplate } from '@wordpress/icons';
8
- import { Notice, SelectControl, Button } from '@wordpress/components';
9
- import { useSelect, useDispatch } from '@wordpress/data';
10
- import { store as editorStore } from '@wordpress/editor';
11
- import { store as coreStore } from '@wordpress/core-data';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import { store as editPostStore } from '../../../store';
17
- import PostTemplateCreateModal from './create-modal';
18
-
19
- export default function PostTemplateForm( { onClose } ) {
20
- const {
21
- isPostsPage,
22
- availableTemplates,
23
- fetchedTemplates,
24
- selectedTemplateSlug,
25
- canCreate,
26
- canEdit,
27
- } = useSelect( ( select ) => {
28
- const { canUser, getEntityRecord, getEntityRecords } =
29
- select( coreStore );
30
- const editorSettings = select( editorStore ).getEditorSettings();
31
- const siteSettings = canUser( 'read', 'settings' )
32
- ? getEntityRecord( 'root', 'site' )
33
- : undefined;
34
- const _isPostsPage =
35
- select( editorStore ).getCurrentPostId() ===
36
- siteSettings?.page_for_posts;
37
- const canCreateTemplates = canUser( 'create', 'templates' );
38
-
39
- return {
40
- isPostsPage: _isPostsPage,
41
- availableTemplates: editorSettings.availableTemplates,
42
- fetchedTemplates: canCreateTemplates
43
- ? getEntityRecords( 'postType', 'wp_template', {
44
- post_type: select( editorStore ).getCurrentPostType(),
45
- per_page: -1,
46
- } )
47
- : undefined,
48
- selectedTemplateSlug:
49
- select( editorStore ).getEditedPostAttribute( 'template' ),
50
- canCreate:
51
- canCreateTemplates &&
52
- ! _isPostsPage &&
53
- editorSettings.supportsTemplateMode,
54
- canEdit:
55
- canCreateTemplates &&
56
- editorSettings.supportsTemplateMode &&
57
- !! select( editPostStore ).getEditedPostTemplate(),
58
- };
59
- }, [] );
60
-
61
- const options = useMemo(
62
- () =>
63
- Object.entries( {
64
- ...availableTemplates,
65
- ...Object.fromEntries(
66
- ( fetchedTemplates ?? [] ).map( ( { slug, title } ) => [
67
- slug,
68
- title.rendered,
69
- ] )
70
- ),
71
- } ).map( ( [ slug, title ] ) => ( { value: slug, label: title } ) ),
72
- [ availableTemplates, fetchedTemplates ]
73
- );
74
-
75
- const selectedOption =
76
- options.find( ( option ) => option.value === selectedTemplateSlug ) ??
77
- options.find( ( option ) => ! option.value ); // The default option has '' value.
78
-
79
- const { editPost } = useDispatch( editorStore );
80
- const { __unstableSwitchToTemplateMode } = useDispatch( editPostStore );
81
-
82
- const [ isCreateModalOpen, setIsCreateModalOpen ] = useState( false );
83
-
84
- return (
85
- <div className="edit-post-post-template__form">
86
- <InspectorPopoverHeader
87
- title={ __( 'Template' ) }
88
- help={ __(
89
- 'Templates define the way content is displayed when viewing your site.'
90
- ) }
91
- actions={
92
- canCreate
93
- ? [
94
- {
95
- icon: addTemplate,
96
- label: __( 'Add template' ),
97
- onClick: () => setIsCreateModalOpen( true ),
98
- },
99
- ]
100
- : []
101
- }
102
- onClose={ onClose }
103
- />
104
- { isPostsPage ? (
105
- <Notice
106
- className="edit-post-post-template__notice"
107
- status="warning"
108
- isDismissible={ false }
109
- >
110
- { __( 'The posts page template cannot be changed.' ) }
111
- </Notice>
112
- ) : (
113
- <SelectControl
114
- __nextHasNoMarginBottom
115
- hideLabelFromVision
116
- label={ __( 'Template' ) }
117
- value={ selectedOption?.value ?? '' }
118
- options={ options }
119
- onChange={ ( slug ) =>
120
- editPost( { template: slug || '' } )
121
- }
122
- />
123
- ) }
124
- { canEdit && (
125
- <p>
126
- <Button
127
- variant="link"
128
- onClick={ () => __unstableSwitchToTemplateMode() }
129
- >
130
- { __( 'Edit template' ) }
131
- </Button>
132
- </p>
133
- ) }
134
- { isCreateModalOpen && (
135
- <PostTemplateCreateModal
136
- onClose={ () => setIsCreateModalOpen( false ) }
137
- />
138
- ) }
139
- </div>
140
- );
141
- }
@@ -1,120 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useState, useMemo } from '@wordpress/element';
5
- import { Dropdown, Button } from '@wordpress/components';
6
- import { __, sprintf } from '@wordpress/i18n';
7
- import { useSelect } from '@wordpress/data';
8
- import {
9
- store as editorStore,
10
- privateApis as editorPrivateApis,
11
- } from '@wordpress/editor';
12
- import { store as coreStore } from '@wordpress/core-data';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import PostTemplateForm from './form';
18
- import { store as editPostStore } from '../../../store';
19
- import { unlock } from '../../../lock-unlock';
20
-
21
- const { PostPanelRow } = unlock( editorPrivateApis );
22
-
23
- export default function PostTemplate() {
24
- // Use internal state instead of a ref to make sure that the component
25
- // re-renders when the popover's anchor updates.
26
- const [ popoverAnchor, setPopoverAnchor ] = useState( null );
27
- // Memoize popoverProps to avoid returning a new object every time.
28
- const popoverProps = useMemo(
29
- () => ( { anchor: popoverAnchor, placement: 'bottom-end' } ),
30
- [ popoverAnchor ]
31
- );
32
-
33
- const isVisible = useSelect( ( select ) => {
34
- const postTypeSlug = select( editorStore ).getCurrentPostType();
35
- const postType = select( coreStore ).getPostType( postTypeSlug );
36
- if ( ! postType?.viewable ) {
37
- return false;
38
- }
39
-
40
- const settings = select( editorStore ).getEditorSettings();
41
- const hasTemplates =
42
- !! settings.availableTemplates &&
43
- Object.keys( settings.availableTemplates ).length > 0;
44
- if ( hasTemplates ) {
45
- return true;
46
- }
47
-
48
- if ( ! settings.supportsTemplateMode ) {
49
- return false;
50
- }
51
-
52
- const canCreateTemplates =
53
- select( coreStore ).canUser( 'create', 'templates' ) ?? false;
54
- return canCreateTemplates;
55
- }, [] );
56
-
57
- if ( ! isVisible ) {
58
- return null;
59
- }
60
-
61
- return (
62
- <PostPanelRow label={ __( 'Template' ) } ref={ setPopoverAnchor }>
63
- <Dropdown
64
- popoverProps={ popoverProps }
65
- contentClassName="edit-post-post-template__dialog"
66
- focusOnMount
67
- renderToggle={ ( { isOpen, onToggle } ) => (
68
- <PostTemplateToggle
69
- isOpen={ isOpen }
70
- onClick={ onToggle }
71
- />
72
- ) }
73
- renderContent={ ( { onClose } ) => (
74
- <PostTemplateForm onClose={ onClose } />
75
- ) }
76
- />
77
- </PostPanelRow>
78
- );
79
- }
80
-
81
- function PostTemplateToggle( { isOpen, onClick } ) {
82
- const templateTitle = useSelect( ( select ) => {
83
- const templateSlug =
84
- select( editorStore ).getEditedPostAttribute( 'template' );
85
-
86
- const { supportsTemplateMode, availableTemplates } =
87
- select( editorStore ).getEditorSettings();
88
- if ( ! supportsTemplateMode && availableTemplates[ templateSlug ] ) {
89
- return availableTemplates[ templateSlug ];
90
- }
91
- const template =
92
- select( coreStore ).canUser( 'create', 'templates' ) &&
93
- select( editPostStore ).getEditedPostTemplate();
94
- return (
95
- template?.title ||
96
- template?.slug ||
97
- availableTemplates?.[ templateSlug ]
98
- );
99
- }, [] );
100
-
101
- return (
102
- <Button
103
- className="edit-post-post-template__toggle"
104
- variant="tertiary"
105
- aria-expanded={ isOpen }
106
- aria-label={
107
- templateTitle
108
- ? sprintf(
109
- // translators: %s: Name of the currently selected template.
110
- __( 'Select template: %s' ),
111
- templateTitle
112
- )
113
- : __( 'Select template' )
114
- }
115
- onClick={ onClick }
116
- >
117
- { templateTitle ?? __( 'Default template' ) }
118
- </Button>
119
- );
120
- }
@@ -1,22 +0,0 @@
1
- .components-button.edit-post-post-template__toggle {
2
- display: inline-block;
3
- width: 100%;
4
- overflow: hidden;
5
- text-overflow: ellipsis;
6
- }
7
-
8
- .edit-post-post-template__dialog {
9
- z-index: z-index(".edit-post-post-template__dialog");
10
- }
11
-
12
- .edit-post-post-template__form {
13
- // sidebar width - popover padding - form margin
14
- min-width: $sidebar-width - $grid-unit-20 - $grid-unit-20;
15
- margin: $grid-unit-10;
16
- }
17
-
18
- .edit-post-post-template__create-form {
19
- @include break-medium() {
20
- width: $grid-unit * 40;
21
- }
22
- }
@@ -1,74 +0,0 @@
1
- // This tab style CSS is duplicated verbatim in
2
- // /packages/components/src/tab-panel/style.scss
3
- .components-button.edit-post-sidebar__panel-tab {
4
- position: relative;
5
- border-radius: 0;
6
- height: $grid-unit-60;
7
- background: transparent;
8
- border: none;
9
- box-shadow: none;
10
- cursor: pointer;
11
- padding: 3px $grid-unit-20; // Use padding to offset the is-active border, this benefits Windows High Contrast mode
12
- margin-left: 0;
13
- font-weight: 500;
14
-
15
- &:focus:not(:disabled) {
16
- position: relative;
17
- box-shadow: none;
18
- outline: none;
19
- }
20
-
21
- // Tab indicator
22
- &::after {
23
- content: "";
24
- position: absolute;
25
- right: 0;
26
- bottom: 0;
27
- left: 0;
28
- pointer-events: none;
29
-
30
- // Draw the indicator.
31
- background: var(--wp-admin-theme-color);
32
- height: calc(0 * var(--wp-admin-border-width-focus));
33
- border-radius: 0;
34
-
35
- // Animation
36
- transition: all 0.1s linear;
37
- @include reduce-motion("transition");
38
- }
39
-
40
- // Active.
41
- &.is-active::after {
42
- height: calc(1 * var(--wp-admin-border-width-focus));
43
-
44
- // Windows high contrast mode.
45
- outline: 2px solid transparent;
46
- outline-offset: -1px;
47
- }
48
-
49
- // Focus.
50
- &::before {
51
- content: "";
52
- position: absolute;
53
- top: $grid-unit-15;
54
- right: $grid-unit-15;
55
- bottom: $grid-unit-15;
56
- left: $grid-unit-15;
57
- pointer-events: none;
58
-
59
- // Draw the indicator.
60
- box-shadow: 0 0 0 0 transparent;
61
- border-radius: $radius-block-ui;
62
-
63
- // Animation
64
- transition: all 0.1s linear;
65
- @include reduce-motion("transition");
66
- }
67
-
68
- &:focus-visible::before {
69
- box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
70
-
71
- // Windows high contrast mode.
72
- outline: 2px solid transparent;
73
- }
74
- }
@@ -1,35 +0,0 @@
1
- .edit-post-template__modal {
2
- .components-base-control {
3
- @include break-medium() {
4
- width: $grid-unit * 40;
5
- }
6
- }
7
- }
8
-
9
- .edit-post-template__modal-actions {
10
- margin-top: $grid-unit-15;
11
- }
12
-
13
- .edit-post-template-modal__tip {
14
- padding: $grid-unit-20 $grid-unit-30;
15
- background: $gray-100;
16
- border-radius: $radius-block-ui;
17
-
18
- @include break-medium() {
19
- width: $grid-unit * 30;
20
- }
21
- }
22
-
23
- .edit-post-template__notice {
24
- margin: 0 0 $grid-unit-10 0;
25
-
26
- .components-notice__content {
27
- margin: 0;
28
- }
29
- }
30
-
31
- .edit-post-template__actions {
32
- button:not(:last-child) {
33
- margin-right: $grid-unit-10;
34
- }
35
- }