@wordpress/edit-post 7.34.0 → 8.0.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.
- package/CHANGELOG.md +15 -2
- package/build/commands/use-commands.js +56 -0
- package/build/commands/use-commands.js.map +1 -0
- package/build/components/{header/fullscreen-mode-close/index.js → back-button/fullscreen-mode-close.js} +18 -16
- package/build/components/back-button/fullscreen-mode-close.js.map +1 -0
- package/build/components/back-button/index.js +57 -0
- package/build/components/back-button/index.js.map +1 -0
- package/build/components/header/header-toolbar/index.native.js +63 -62
- package/build/components/header/header-toolbar/index.native.js.map +1 -1
- package/build/components/header/index.native.js +2 -2
- package/build/components/header/index.native.js.map +1 -1
- package/build/components/init-pattern-modal/index.js +50 -43
- package/build/components/init-pattern-modal/index.js.map +1 -1
- package/build/components/layout/index.js +134 -156
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/index.native.js +28 -21
- package/build/components/layout/index.native.js.map +1 -1
- package/build/components/{visual-editor → layout}/use-padding-appender.js +6 -1
- package/build/components/layout/use-padding-appender.js.map +1 -0
- package/build/components/layout/use-should-iframe.js +46 -0
- package/build/components/layout/use-should-iframe.js.map +1 -0
- package/build/components/meta-boxes/index.js +10 -9
- package/build/components/meta-boxes/index.js.map +1 -1
- package/build/components/meta-boxes/meta-boxes-area/index.js +13 -13
- package/build/components/meta-boxes/meta-boxes-area/index.js.map +1 -1
- package/build/components/more-menu/index.js +49 -0
- package/build/components/more-menu/index.js.map +1 -0
- package/build/components/{header/more-menu → more-menu}/manage-patterns-menu-item.js +6 -5
- package/build/components/more-menu/manage-patterns-menu-item.js.map +1 -0
- package/build/components/{header/more-menu → more-menu}/welcome-guide-menu-item.js +2 -2
- package/build/components/more-menu/welcome-guide-menu-item.js.map +1 -0
- package/build/components/preferences-modal/enable-custom-fields.js +23 -18
- package/build/components/preferences-modal/enable-custom-fields.js.map +1 -1
- package/build/components/preferences-modal/index.js +4 -4
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/preferences-modal/meta-boxes-section.js +13 -13
- package/build/components/preferences-modal/meta-boxes-section.js.map +1 -1
- package/build/components/visual-editor/header.native.js +11 -10
- package/build/components/visual-editor/header.native.js.map +1 -1
- package/build/components/visual-editor/index.native.js +3 -3
- package/build/components/visual-editor/index.native.js.map +1 -1
- package/build/components/welcome-guide/default.js +50 -33
- package/build/components/welcome-guide/default.js.map +1 -1
- package/build/components/welcome-guide/image.js +13 -12
- package/build/components/welcome-guide/image.js.map +1 -1
- package/build/components/welcome-guide/index.js +2 -2
- package/build/components/welcome-guide/index.js.map +1 -1
- package/build/components/welcome-guide/template.js +12 -8
- package/build/components/welcome-guide/template.js.map +1 -1
- package/build/deprecated.js +9 -9
- package/build/deprecated.js.map +1 -1
- package/build/editor.js +16 -11
- package/build/editor.js.map +1 -1
- package/build/editor.native.js +18 -12
- package/build/editor.native.js.map +1 -1
- package/build/index.js +12 -13
- package/build/index.js.map +1 -1
- package/build/index.native.js +2 -2
- package/build/index.native.js.map +1 -1
- package/build/store/selectors.js +1 -1
- package/build/store/selectors.js.map +1 -1
- package/build-module/commands/use-commands.js +49 -0
- package/build-module/commands/use-commands.js.map +1 -0
- package/build-module/components/{header/fullscreen-mode-close/index.js → back-button/fullscreen-mode-close.js} +18 -16
- package/build-module/components/back-button/fullscreen-mode-close.js.map +1 -0
- package/build-module/components/back-button/index.js +49 -0
- package/build-module/components/back-button/index.js.map +1 -0
- package/build-module/components/header/header-toolbar/index.native.js +64 -62
- package/build-module/components/header/header-toolbar/index.native.js.map +1 -1
- package/build-module/components/header/index.native.js +2 -2
- package/build-module/components/header/index.native.js.map +1 -1
- package/build-module/components/init-pattern-modal/index.js +52 -43
- package/build-module/components/init-pattern-modal/index.js.map +1 -1
- package/build-module/components/layout/index.js +139 -159
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/index.native.js +30 -21
- package/build-module/components/layout/index.native.js.map +1 -1
- package/build-module/components/{visual-editor → layout}/use-padding-appender.js +6 -1
- package/build-module/components/layout/use-padding-appender.js.map +1 -0
- package/build-module/components/layout/use-should-iframe.js +39 -0
- package/build-module/components/layout/use-should-iframe.js.map +1 -0
- package/build-module/components/meta-boxes/index.js +12 -9
- package/build-module/components/meta-boxes/index.js.map +1 -1
- package/build-module/components/meta-boxes/meta-boxes-area/index.js +13 -11
- package/build-module/components/meta-boxes/meta-boxes-area/index.js.map +1 -1
- package/build-module/components/more-menu/index.js +43 -0
- package/build-module/components/more-menu/index.js.map +1 -0
- package/build-module/components/{header/more-menu → more-menu}/manage-patterns-menu-item.js +6 -5
- package/build-module/components/more-menu/manage-patterns-menu-item.js.map +1 -0
- package/build-module/components/{header/more-menu → more-menu}/welcome-guide-menu-item.js +2 -2
- package/build-module/components/more-menu/welcome-guide-menu-item.js.map +1 -0
- package/build-module/components/preferences-modal/enable-custom-fields.js +25 -18
- package/build-module/components/preferences-modal/enable-custom-fields.js.map +1 -1
- package/build-module/components/preferences-modal/index.js +4 -4
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/preferences-modal/meta-boxes-section.js +14 -13
- package/build-module/components/preferences-modal/meta-boxes-section.js.map +1 -1
- package/build-module/components/visual-editor/header.native.js +11 -10
- package/build-module/components/visual-editor/header.native.js.map +1 -1
- package/build-module/components/visual-editor/index.native.js +3 -3
- package/build-module/components/visual-editor/index.native.js.map +1 -1
- package/build-module/components/welcome-guide/default.js +52 -33
- package/build-module/components/welcome-guide/default.js.map +1 -1
- package/build-module/components/welcome-guide/image.js +14 -12
- package/build-module/components/welcome-guide/image.js.map +1 -1
- package/build-module/components/welcome-guide/index.js +2 -2
- package/build-module/components/welcome-guide/index.js.map +1 -1
- package/build-module/components/welcome-guide/template.js +14 -8
- package/build-module/components/welcome-guide/template.js.map +1 -1
- package/build-module/deprecated.js +9 -9
- package/build-module/deprecated.js.map +1 -1
- package/build-module/editor.js +17 -11
- package/build-module/editor.js.map +1 -1
- package/build-module/editor.native.js +18 -12
- package/build-module/editor.native.js.map +1 -1
- package/build-module/index.js +10 -7
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +2 -2
- package/build-module/index.native.js.map +1 -1
- package/build-module/store/selectors.js +1 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +31 -392
- package/build-style/style.css +31 -392
- package/package.json +33 -33
- package/src/commands/use-commands.js +48 -0
- package/src/components/{header/fullscreen-mode-close/index.js → back-button/fullscreen-mode-close.js} +3 -3
- package/src/components/back-button/index.js +34 -0
- package/src/components/{header/fullscreen-mode-close → back-button}/style.scss +16 -2
- package/src/components/{header/fullscreen-mode-close/test/index.js → back-button/test/fullscreen-mode-close.js} +1 -1
- package/src/components/layout/index.js +151 -207
- package/src/components/layout/style.scss +9 -17
- package/src/components/{visual-editor → layout}/use-padding-appender.js +7 -1
- package/src/components/layout/use-should-iframe.js +40 -0
- package/src/components/meta-boxes/meta-boxes-area/index.js +4 -8
- package/src/components/{header/more-menu → more-menu}/index.js +2 -2
- package/src/components/{header/more-menu → more-menu}/manage-patterns-menu-item.js +1 -1
- package/src/index.js +11 -6
- package/src/store/selectors.js +8 -5
- package/src/style.scss +3 -10
- package/src/test/__snapshots__/editor.native.js.snap +72 -0
- package/src/test/editor.native.js +77 -0
- package/build/components/header/fullscreen-mode-close/index.js.map +0 -1
- package/build/components/header/index.js +0 -158
- package/build/components/header/index.js.map +0 -1
- package/build/components/header/main-dashboard-button/index.js +0 -33
- package/build/components/header/main-dashboard-button/index.js.map +0 -1
- package/build/components/header/more-menu/index.js +0 -43
- package/build/components/header/more-menu/index.js.map +0 -1
- package/build/components/header/more-menu/manage-patterns-menu-item.js.map +0 -1
- package/build/components/header/more-menu/welcome-guide-menu-item.js.map +0 -1
- package/build/components/sidebar/post-format/index.js +0 -21
- package/build/components/sidebar/post-format/index.js.map +0 -1
- package/build/components/sidebar/post-pending-status/index.js +0 -26
- package/build/components/sidebar/post-pending-status/index.js.map +0 -1
- package/build/components/sidebar/post-slug/index.js +0 -21
- package/build/components/sidebar/post-slug/index.js.map +0 -1
- package/build/components/sidebar/post-status/index.js +0 -92
- package/build/components/sidebar/post-status/index.js.map +0 -1
- package/build/components/sidebar/post-sticky/index.js +0 -26
- package/build/components/sidebar/post-sticky/index.js.map +0 -1
- package/build/components/sidebar/post-trash/index.js +0 -16
- package/build/components/sidebar/post-trash/index.js.map +0 -1
- package/build/components/sidebar/post-visibility/index.js +0 -78
- package/build/components/sidebar/post-visibility/index.js.map +0 -1
- package/build/components/sidebar/settings-header/index.js +0 -53
- package/build/components/sidebar/settings-header/index.js.map +0 -1
- package/build/components/sidebar/settings-sidebar/index.js +0 -193
- package/build/components/sidebar/settings-sidebar/index.js.map +0 -1
- package/build/components/text-editor/index.js +0 -61
- package/build/components/text-editor/index.js.map +0 -1
- package/build/components/visual-editor/block-inspector-button.js +0 -55
- package/build/components/visual-editor/block-inspector-button.js.map +0 -1
- package/build/components/visual-editor/index.js +0 -92
- package/build/components/visual-editor/index.js.map +0 -1
- package/build/components/visual-editor/use-padding-appender.js.map +0 -1
- package/build/hooks/commands/use-common-commands.js +0 -119
- package/build/hooks/commands/use-common-commands.js.map +0 -1
- package/build/hooks/components/index.js +0 -11
- package/build/hooks/components/index.js.map +0 -1
- package/build/hooks/index.js +0 -5
- package/build/hooks/index.js.map +0 -1
- package/build/hooks/validate-multiple-use/index.js +0 -134
- package/build/hooks/validate-multiple-use/index.js.map +0 -1
- package/build-module/components/header/fullscreen-mode-close/index.js.map +0 -1
- package/build-module/components/header/index.js +0 -150
- package/build-module/components/header/index.js.map +0 -1
- package/build-module/components/header/main-dashboard-button/index.js +0 -26
- package/build-module/components/header/main-dashboard-button/index.js.map +0 -1
- package/build-module/components/header/more-menu/index.js +0 -35
- package/build-module/components/header/more-menu/index.js.map +0 -1
- package/build-module/components/header/more-menu/manage-patterns-menu-item.js.map +0 -1
- package/build-module/components/header/more-menu/welcome-guide-menu-item.js.map +0 -1
- package/build-module/components/sidebar/post-format/index.js +0 -13
- package/build-module/components/sidebar/post-format/index.js.map +0 -1
- package/build-module/components/sidebar/post-pending-status/index.js +0 -18
- package/build-module/components/sidebar/post-pending-status/index.js.map +0 -1
- package/build-module/components/sidebar/post-slug/index.js +0 -13
- package/build-module/components/sidebar/post-slug/index.js.map +0 -1
- package/build-module/components/sidebar/post-status/index.js +0 -84
- package/build-module/components/sidebar/post-status/index.js.map +0 -1
- package/build-module/components/sidebar/post-sticky/index.js +0 -18
- package/build-module/components/sidebar/post-sticky/index.js.map +0 -1
- package/build-module/components/sidebar/post-trash/index.js +0 -9
- package/build-module/components/sidebar/post-trash/index.js.map +0 -1
- package/build-module/components/sidebar/post-visibility/index.js +0 -70
- package/build-module/components/sidebar/post-visibility/index.js.map +0 -1
- package/build-module/components/sidebar/settings-header/index.js +0 -46
- package/build-module/components/sidebar/settings-header/index.js.map +0 -1
- package/build-module/components/sidebar/settings-sidebar/index.js +0 -185
- package/build-module/components/sidebar/settings-sidebar/index.js.map +0 -1
- package/build-module/components/text-editor/index.js +0 -54
- package/build-module/components/text-editor/index.js.map +0 -1
- package/build-module/components/visual-editor/block-inspector-button.js +0 -47
- package/build-module/components/visual-editor/block-inspector-button.js.map +0 -1
- package/build-module/components/visual-editor/index.js +0 -84
- package/build-module/components/visual-editor/index.js.map +0 -1
- package/build-module/components/visual-editor/use-padding-appender.js.map +0 -1
- package/build-module/hooks/commands/use-common-commands.js +0 -112
- package/build-module/hooks/commands/use-common-commands.js.map +0 -1
- package/build-module/hooks/components/index.js +0 -8
- package/build-module/hooks/components/index.js.map +0 -1
- package/build-module/hooks/index.js +0 -6
- package/build-module/hooks/index.js.map +0 -1
- package/build-module/hooks/validate-multiple-use/index.js +0 -132
- package/build-module/hooks/validate-multiple-use/index.js.map +0 -1
- package/src/components/header/index.js +0 -156
- package/src/components/header/main-dashboard-button/index.js +0 -28
- package/src/components/header/style.scss +0 -251
- package/src/components/sidebar/post-format/index.js +0 -20
- package/src/components/sidebar/post-format/style.scss +0 -5
- package/src/components/sidebar/post-pending-status/index.js +0 -27
- package/src/components/sidebar/post-slug/index.js +0 -17
- package/src/components/sidebar/post-slug/style.scss +0 -5
- package/src/components/sidebar/post-status/index.js +0 -128
- package/src/components/sidebar/post-sticky/index.js +0 -27
- package/src/components/sidebar/post-trash/index.js +0 -12
- package/src/components/sidebar/post-visibility/index.js +0 -88
- package/src/components/sidebar/post-visibility/style.scss +0 -5
- package/src/components/sidebar/settings-header/index.js +0 -49
- package/src/components/sidebar/settings-sidebar/index.js +0 -247
- package/src/components/sidebar/style.scss +0 -18
- package/src/components/text-editor/index.js +0 -63
- package/src/components/text-editor/style.scss +0 -71
- package/src/components/visual-editor/block-inspector-button.js +0 -59
- package/src/components/visual-editor/index.js +0 -101
- package/src/components/visual-editor/style.scss +0 -53
- package/src/hooks/commands/use-common-commands.js +0 -126
- package/src/hooks/components/index.js +0 -13
- package/src/hooks/index.js +0 -5
- package/src/hooks/validate-multiple-use/index.js +0 -163
- /package/src/components/{header/fullscreen-mode-close/test/__snapshots__/index.js.snap → back-button/test/__snapshots__/fullscreen-mode-close.js.snap} +0 -0
- /package/src/components/{header/more-menu → more-menu}/welcome-guide-menu-item.js +0 -0
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
.edit-post-text-editor {
|
|
2
|
-
position: relative;
|
|
3
|
-
width: 100%;
|
|
4
|
-
background-color: $white;
|
|
5
|
-
flex-grow: 1;
|
|
6
|
-
|
|
7
|
-
// Post title.
|
|
8
|
-
.editor-post-title:not(.is-raw-text),
|
|
9
|
-
.editor-post-title.is-raw-text textarea {
|
|
10
|
-
max-width: none;
|
|
11
|
-
line-height: $default-line-height;
|
|
12
|
-
|
|
13
|
-
font-family: $editor-html-font;
|
|
14
|
-
font-size: 2.5em;
|
|
15
|
-
font-weight: normal;
|
|
16
|
-
|
|
17
|
-
border: $border-width solid $gray-600;
|
|
18
|
-
border-radius: 0;
|
|
19
|
-
|
|
20
|
-
// Same padding as body.
|
|
21
|
-
padding: $grid-unit-20;
|
|
22
|
-
|
|
23
|
-
@include break-small() {
|
|
24
|
-
padding: $grid-unit-30;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
&:focus {
|
|
28
|
-
border-color: var(--wp-admin-theme-color);
|
|
29
|
-
box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.edit-post-text-editor__body {
|
|
35
|
-
width: 100%;
|
|
36
|
-
padding: 0 $grid-unit-15 $grid-unit-15 $grid-unit-15;
|
|
37
|
-
max-width: $break-xlarge;
|
|
38
|
-
margin-left: auto;
|
|
39
|
-
margin-right: auto;
|
|
40
|
-
|
|
41
|
-
@include break-large() {
|
|
42
|
-
padding: 0 $grid-unit-30 $grid-unit-30 $grid-unit-30;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Exit code editor toolbar.
|
|
47
|
-
.edit-post-text-editor__toolbar {
|
|
48
|
-
position: sticky;
|
|
49
|
-
z-index: z-index(".edit-post-text-editor__toolbar");
|
|
50
|
-
top: 0;
|
|
51
|
-
left: 0;
|
|
52
|
-
right: 0;
|
|
53
|
-
display: flex;
|
|
54
|
-
background: rgba($white, 0.8);
|
|
55
|
-
padding: $grid-unit-05 $grid-unit-15;
|
|
56
|
-
|
|
57
|
-
@include break-small() {
|
|
58
|
-
padding: $grid-unit-15;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@include break-large() {
|
|
62
|
-
padding: $grid-unit-15 $grid-unit-30;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
h2 {
|
|
66
|
-
line-height: $button-size;
|
|
67
|
-
margin: 0 auto 0 0;
|
|
68
|
-
font-size: $default-font-size;
|
|
69
|
-
color: $gray-900;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { __ } from '@wordpress/i18n';
|
|
5
|
-
import { MenuItem } from '@wordpress/components';
|
|
6
|
-
import { useSelect, useDispatch } from '@wordpress/data';
|
|
7
|
-
import { speak } from '@wordpress/a11y';
|
|
8
|
-
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Internal dependencies
|
|
12
|
-
*/
|
|
13
|
-
import { store as editPostStore } from '../../store';
|
|
14
|
-
|
|
15
|
-
const noop = () => {};
|
|
16
|
-
|
|
17
|
-
export function BlockInspectorButton( { onClick = noop, small = false } ) {
|
|
18
|
-
const { shortcut, areAdvancedSettingsOpened } = useSelect(
|
|
19
|
-
( select ) => ( {
|
|
20
|
-
shortcut: select(
|
|
21
|
-
keyboardShortcutsStore
|
|
22
|
-
).getShortcutRepresentation( 'core/editor/toggle-sidebar' ),
|
|
23
|
-
areAdvancedSettingsOpened:
|
|
24
|
-
select( editPostStore ).getActiveGeneralSidebarName() ===
|
|
25
|
-
'edit-post/block',
|
|
26
|
-
} ),
|
|
27
|
-
[]
|
|
28
|
-
);
|
|
29
|
-
const { openGeneralSidebar, closeGeneralSidebar } =
|
|
30
|
-
useDispatch( editPostStore );
|
|
31
|
-
|
|
32
|
-
const label = areAdvancedSettingsOpened
|
|
33
|
-
? __( 'Hide more settings' )
|
|
34
|
-
: __( 'Show more settings' );
|
|
35
|
-
|
|
36
|
-
return (
|
|
37
|
-
<MenuItem
|
|
38
|
-
onClick={ () => {
|
|
39
|
-
if ( areAdvancedSettingsOpened ) {
|
|
40
|
-
closeGeneralSidebar();
|
|
41
|
-
speak( __( 'Block settings closed' ) );
|
|
42
|
-
} else {
|
|
43
|
-
openGeneralSidebar( 'edit-post/block' );
|
|
44
|
-
speak(
|
|
45
|
-
__(
|
|
46
|
-
'Additional settings are now available in the Editor block settings sidebar'
|
|
47
|
-
)
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
onClick();
|
|
51
|
-
} }
|
|
52
|
-
shortcut={ shortcut }
|
|
53
|
-
>
|
|
54
|
-
{ ! small && label }
|
|
55
|
-
</MenuItem>
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export default BlockInspectorButton;
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import classnames from 'classnames';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* WordPress dependencies
|
|
8
|
-
*/
|
|
9
|
-
import {
|
|
10
|
-
store as editorStore,
|
|
11
|
-
privateApis as editorPrivateApis,
|
|
12
|
-
} from '@wordpress/editor';
|
|
13
|
-
import { useMemo } from '@wordpress/element';
|
|
14
|
-
import { useSelect } from '@wordpress/data';
|
|
15
|
-
import { store as blocksStore } from '@wordpress/blocks';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Internal dependencies
|
|
19
|
-
*/
|
|
20
|
-
import { store as editPostStore } from '../../store';
|
|
21
|
-
import { unlock } from '../../lock-unlock';
|
|
22
|
-
import { usePaddingAppender } from './use-padding-appender';
|
|
23
|
-
|
|
24
|
-
const { EditorCanvas } = unlock( editorPrivateApis );
|
|
25
|
-
|
|
26
|
-
const isGutenbergPlugin = process.env.IS_GUTENBERG_PLUGIN ? true : false;
|
|
27
|
-
|
|
28
|
-
export default function VisualEditor( { styles } ) {
|
|
29
|
-
const {
|
|
30
|
-
isWelcomeGuideVisible,
|
|
31
|
-
renderingMode,
|
|
32
|
-
isBlockBasedTheme,
|
|
33
|
-
hasV3BlocksOnly,
|
|
34
|
-
isEditingTemplate,
|
|
35
|
-
} = useSelect( ( select ) => {
|
|
36
|
-
const { isFeatureActive } = select( editPostStore );
|
|
37
|
-
const { getEditorSettings, getRenderingMode } = select( editorStore );
|
|
38
|
-
const { getBlockTypes } = select( blocksStore );
|
|
39
|
-
const editorSettings = getEditorSettings();
|
|
40
|
-
|
|
41
|
-
return {
|
|
42
|
-
isWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ),
|
|
43
|
-
renderingMode: getRenderingMode(),
|
|
44
|
-
isBlockBasedTheme: editorSettings.__unstableIsBlockBasedTheme,
|
|
45
|
-
hasV3BlocksOnly: getBlockTypes().every( ( type ) => {
|
|
46
|
-
return type.apiVersion >= 3;
|
|
47
|
-
} ),
|
|
48
|
-
isEditingTemplate:
|
|
49
|
-
select( editorStore ).getCurrentPostType() === 'wp_template',
|
|
50
|
-
};
|
|
51
|
-
}, [] );
|
|
52
|
-
const hasMetaBoxes = useSelect(
|
|
53
|
-
( select ) => select( editPostStore ).hasMetaBoxes(),
|
|
54
|
-
[]
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
const paddingAppenderRef = usePaddingAppender();
|
|
58
|
-
|
|
59
|
-
let paddingBottom;
|
|
60
|
-
|
|
61
|
-
// Add a constant padding for the typewritter effect. When typing at the
|
|
62
|
-
// bottom, there needs to be room to scroll up.
|
|
63
|
-
if ( ! hasMetaBoxes && renderingMode === 'post-only' ) {
|
|
64
|
-
paddingBottom = '40vh';
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
styles = useMemo(
|
|
68
|
-
() => [
|
|
69
|
-
...styles,
|
|
70
|
-
{
|
|
71
|
-
// We should move this in to future to the body.
|
|
72
|
-
css: paddingBottom
|
|
73
|
-
? `body{padding-bottom:${ paddingBottom }}`
|
|
74
|
-
: '',
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
|
-
[ styles, paddingBottom ]
|
|
78
|
-
);
|
|
79
|
-
|
|
80
|
-
const isToBeIframed =
|
|
81
|
-
( ( hasV3BlocksOnly || ( isGutenbergPlugin && isBlockBasedTheme ) ) &&
|
|
82
|
-
! hasMetaBoxes ) ||
|
|
83
|
-
isEditingTemplate;
|
|
84
|
-
|
|
85
|
-
return (
|
|
86
|
-
<div
|
|
87
|
-
className={ classnames( 'edit-post-visual-editor', {
|
|
88
|
-
'has-inline-canvas': ! isToBeIframed,
|
|
89
|
-
} ) }
|
|
90
|
-
>
|
|
91
|
-
<EditorCanvas
|
|
92
|
-
disableIframe={ ! isToBeIframed }
|
|
93
|
-
styles={ styles }
|
|
94
|
-
// We should auto-focus the canvas (title) on load.
|
|
95
|
-
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
96
|
-
autoFocus={ ! isWelcomeGuideVisible }
|
|
97
|
-
contentRef={ paddingAppenderRef }
|
|
98
|
-
/>
|
|
99
|
-
</div>
|
|
100
|
-
);
|
|
101
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
.edit-post-visual-editor {
|
|
2
|
-
position: relative;
|
|
3
|
-
display: flex;
|
|
4
|
-
flex-flow: column;
|
|
5
|
-
// In the iframed canvas this keeps extra scrollbars from appearing (when block toolbars overflow). In the
|
|
6
|
-
// legacy (non-iframed) canvas, overflow must not be hidden in order to maintain support for sticky positioning.
|
|
7
|
-
&:not(.has-inline-canvas) {
|
|
8
|
-
overflow: hidden;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
// Gray preview overlay (desktop/tablet/mobile) is intentionally not set on an element with scrolling content like
|
|
12
|
-
// interface-interface-skeleton__content. This causes graphical glitches (flashes of the background color)
|
|
13
|
-
// when scrolling in Safari due to incorrect ordering of large compositing layers (GPU acceleration).
|
|
14
|
-
background-color: $gray-300;
|
|
15
|
-
|
|
16
|
-
// The button element easily inherits styles that are meant for the editor style.
|
|
17
|
-
// These rules enhance the specificity to reduce that inheritance.
|
|
18
|
-
// This is duplicated in edit-site.
|
|
19
|
-
& .components-button {
|
|
20
|
-
font-family: $default-font;
|
|
21
|
-
font-size: $default-font-size;
|
|
22
|
-
padding: 6px 12px;
|
|
23
|
-
|
|
24
|
-
&.has-icon {
|
|
25
|
-
padding: 6px;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// The following flex rule is important for the canvas layout, please be careful when refactoring,
|
|
30
|
-
// as older browser interpret flex height behavior differently. Be sure to test on Safari 13.
|
|
31
|
-
// The syntax is `flex: [flex-grow] [flex-shrink] [flex-basis];`
|
|
32
|
-
// We set the canvas to be allowed to grow (vertically), but not shrink.
|
|
33
|
-
flex: 1 0 auto;
|
|
34
|
-
|
|
35
|
-
// Since the parent container is also a flex container, a `flex-basis: 100%;` is not needed,
|
|
36
|
-
// as align-items: stretch is inherited by default.Additionally due to older browser's flex height
|
|
37
|
-
// interpretation, any percentage value is likely going to cause issues, such as metaboxes overlapping.
|
|
38
|
-
// See also https://www.w3.org/TR/CSS22/visudet.html#the-height-property.
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.edit-post-visual-editor__content-area {
|
|
42
|
-
width: 100%;
|
|
43
|
-
height: 100%;
|
|
44
|
-
position: relative;
|
|
45
|
-
box-sizing: border-box;
|
|
46
|
-
display: flex;
|
|
47
|
-
|
|
48
|
-
// This is necessary for older browsers due to their flex height interpretation.
|
|
49
|
-
// These browsers (including Safari 13) ignore the percentage value entirely.
|
|
50
|
-
// By setting flex-grow, the element stretches to fill the parent.
|
|
51
|
-
// See also https://www.w3.org/TR/CSS22/visudet.html#the-height-property
|
|
52
|
-
flex-grow: 1;
|
|
53
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
|
-
import { __, isRTL } from '@wordpress/i18n';
|
|
6
|
-
import {
|
|
7
|
-
drawerLeft,
|
|
8
|
-
drawerRight,
|
|
9
|
-
blockDefault,
|
|
10
|
-
fullscreen,
|
|
11
|
-
formatListBullets,
|
|
12
|
-
} from '@wordpress/icons';
|
|
13
|
-
import { useCommand } from '@wordpress/commands';
|
|
14
|
-
import { store as preferencesStore } from '@wordpress/preferences';
|
|
15
|
-
import {
|
|
16
|
-
store as editorStore,
|
|
17
|
-
privateApis as editorPrivateApis,
|
|
18
|
-
} from '@wordpress/editor';
|
|
19
|
-
import { store as noticesStore } from '@wordpress/notices';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Internal dependencies
|
|
23
|
-
*/
|
|
24
|
-
import { store as editPostStore } from '../../store';
|
|
25
|
-
import { unlock } from '../../lock-unlock';
|
|
26
|
-
|
|
27
|
-
const { interfaceStore } = unlock( editorPrivateApis );
|
|
28
|
-
|
|
29
|
-
export default function useCommonCommands() {
|
|
30
|
-
const { openGeneralSidebar, closeGeneralSidebar } =
|
|
31
|
-
useDispatch( editPostStore );
|
|
32
|
-
const { activeSidebar, isFullscreen, isPublishSidebarEnabled } = useSelect(
|
|
33
|
-
( select ) => {
|
|
34
|
-
const { get } = select( preferencesStore );
|
|
35
|
-
|
|
36
|
-
return {
|
|
37
|
-
activeSidebar:
|
|
38
|
-
select( interfaceStore ).getActiveComplementaryArea(
|
|
39
|
-
'core'
|
|
40
|
-
),
|
|
41
|
-
isPublishSidebarEnabled:
|
|
42
|
-
select( editorStore ).isPublishSidebarEnabled(),
|
|
43
|
-
isFullscreen: get( 'core/edit-post', 'fullscreenMode' ),
|
|
44
|
-
};
|
|
45
|
-
},
|
|
46
|
-
[]
|
|
47
|
-
);
|
|
48
|
-
const { toggle } = useDispatch( preferencesStore );
|
|
49
|
-
const { createInfoNotice } = useDispatch( noticesStore );
|
|
50
|
-
|
|
51
|
-
useCommand( {
|
|
52
|
-
name: 'core/open-settings-sidebar',
|
|
53
|
-
label: __( 'Toggle settings sidebar' ),
|
|
54
|
-
icon: isRTL() ? drawerLeft : drawerRight,
|
|
55
|
-
callback: ( { close } ) => {
|
|
56
|
-
close();
|
|
57
|
-
if ( activeSidebar === 'edit-post/document' ) {
|
|
58
|
-
closeGeneralSidebar();
|
|
59
|
-
} else {
|
|
60
|
-
openGeneralSidebar( 'edit-post/document' );
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
} );
|
|
64
|
-
|
|
65
|
-
useCommand( {
|
|
66
|
-
name: 'core/open-block-inspector',
|
|
67
|
-
label: __( 'Toggle block inspector' ),
|
|
68
|
-
icon: blockDefault,
|
|
69
|
-
callback: ( { close } ) => {
|
|
70
|
-
close();
|
|
71
|
-
if ( activeSidebar === 'edit-post/block' ) {
|
|
72
|
-
closeGeneralSidebar();
|
|
73
|
-
} else {
|
|
74
|
-
openGeneralSidebar( 'edit-post/block' );
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
} );
|
|
78
|
-
|
|
79
|
-
useCommand( {
|
|
80
|
-
name: 'core/toggle-fullscreen-mode',
|
|
81
|
-
label: isFullscreen
|
|
82
|
-
? __( 'Exit fullscreen' )
|
|
83
|
-
: __( 'Enter fullscreen' ),
|
|
84
|
-
icon: fullscreen,
|
|
85
|
-
callback: ( { close } ) => {
|
|
86
|
-
toggle( 'core/edit-post', 'fullscreenMode' );
|
|
87
|
-
close();
|
|
88
|
-
createInfoNotice(
|
|
89
|
-
isFullscreen ? __( 'Fullscreen off.' ) : __( 'Fullscreen on.' ),
|
|
90
|
-
{
|
|
91
|
-
id: 'core/edit-post/toggle-fullscreen-mode/notice',
|
|
92
|
-
type: 'snackbar',
|
|
93
|
-
actions: [
|
|
94
|
-
{
|
|
95
|
-
label: __( 'Undo' ),
|
|
96
|
-
onClick: () => {
|
|
97
|
-
toggle( 'core/edit-post', 'fullscreenMode' );
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
],
|
|
101
|
-
}
|
|
102
|
-
);
|
|
103
|
-
},
|
|
104
|
-
} );
|
|
105
|
-
|
|
106
|
-
useCommand( {
|
|
107
|
-
name: 'core/toggle-publish-sidebar',
|
|
108
|
-
label: isPublishSidebarEnabled
|
|
109
|
-
? __( 'Disable pre-publish checks' )
|
|
110
|
-
: __( 'Enable pre-publish checks' ),
|
|
111
|
-
icon: formatListBullets,
|
|
112
|
-
callback: ( { close } ) => {
|
|
113
|
-
close();
|
|
114
|
-
toggle( 'core', 'isPublishSidebarEnabled' );
|
|
115
|
-
createInfoNotice(
|
|
116
|
-
isPublishSidebarEnabled
|
|
117
|
-
? __( 'Pre-publish checks disabled.' )
|
|
118
|
-
: __( 'Pre-publish checks enabled.' ),
|
|
119
|
-
{
|
|
120
|
-
id: 'core/editor/publish-sidebar/notice',
|
|
121
|
-
type: 'snackbar',
|
|
122
|
-
}
|
|
123
|
-
);
|
|
124
|
-
},
|
|
125
|
-
} );
|
|
126
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { addFilter } from '@wordpress/hooks';
|
|
5
|
-
import { MediaUpload } from '@wordpress/media-utils';
|
|
6
|
-
|
|
7
|
-
const replaceMediaUpload = () => MediaUpload;
|
|
8
|
-
|
|
9
|
-
addFilter(
|
|
10
|
-
'editor.MediaUpload',
|
|
11
|
-
'core/edit-post/replace-media-upload',
|
|
12
|
-
replaceMediaUpload
|
|
13
|
-
);
|
package/src/hooks/index.js
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
createBlock,
|
|
6
|
-
findTransform,
|
|
7
|
-
getBlockTransforms,
|
|
8
|
-
getBlockType,
|
|
9
|
-
hasBlockSupport,
|
|
10
|
-
} from '@wordpress/blocks';
|
|
11
|
-
import { Button } from '@wordpress/components';
|
|
12
|
-
import { withSelect, withDispatch } from '@wordpress/data';
|
|
13
|
-
import { Warning, store as blockEditorStore } from '@wordpress/block-editor';
|
|
14
|
-
import { addFilter } from '@wordpress/hooks';
|
|
15
|
-
import { __ } from '@wordpress/i18n';
|
|
16
|
-
import { compose, createHigherOrderComponent } from '@wordpress/compose';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Recursively find very first block of an specific block type.
|
|
20
|
-
*
|
|
21
|
-
* @param {Object[]} blocks List of blocks.
|
|
22
|
-
* @param {string} name Block name to search.
|
|
23
|
-
*
|
|
24
|
-
* @return {Object|undefined} Return block object or undefined.
|
|
25
|
-
*/
|
|
26
|
-
function findFirstOfSameType( blocks, name ) {
|
|
27
|
-
if ( ! Array.isArray( blocks ) || ! blocks.length ) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
for ( const block of blocks ) {
|
|
32
|
-
if ( block.name === name ) {
|
|
33
|
-
return block;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Search inside innerBlocks.
|
|
37
|
-
const firstBlock = findFirstOfSameType( block.innerBlocks, name );
|
|
38
|
-
|
|
39
|
-
if ( firstBlock ) {
|
|
40
|
-
return firstBlock;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const enhance = compose(
|
|
46
|
-
/**
|
|
47
|
-
* For blocks whose block type doesn't support `multiple`, provides the
|
|
48
|
-
* wrapped component with `originalBlockClientId` -- a reference to the
|
|
49
|
-
* first block of the same type in the content -- if and only if that
|
|
50
|
-
* "original" block is not the current one. Thus, an inexisting
|
|
51
|
-
* `originalBlockClientId` prop signals that the block is valid.
|
|
52
|
-
*
|
|
53
|
-
* @param {Component} WrappedBlockEdit A filtered BlockEdit instance.
|
|
54
|
-
*
|
|
55
|
-
* @return {Component} Enhanced component with merged state data props.
|
|
56
|
-
*/
|
|
57
|
-
withSelect( ( select, block ) => {
|
|
58
|
-
const multiple = hasBlockSupport( block.name, 'multiple', true );
|
|
59
|
-
|
|
60
|
-
// For block types with `multiple` support, there is no "original
|
|
61
|
-
// block" to be found in the content, as the block itself is valid.
|
|
62
|
-
if ( multiple ) {
|
|
63
|
-
return {};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Otherwise, only pass `originalBlockClientId` if it refers to a different
|
|
67
|
-
// block from the current one.
|
|
68
|
-
const blocks = select( blockEditorStore ).getBlocks();
|
|
69
|
-
const firstOfSameType = findFirstOfSameType( blocks, block.name );
|
|
70
|
-
const isInvalid =
|
|
71
|
-
firstOfSameType && firstOfSameType.clientId !== block.clientId;
|
|
72
|
-
return {
|
|
73
|
-
originalBlockClientId: isInvalid && firstOfSameType.clientId,
|
|
74
|
-
};
|
|
75
|
-
} ),
|
|
76
|
-
withDispatch( ( dispatch, { originalBlockClientId } ) => ( {
|
|
77
|
-
selectFirst: () =>
|
|
78
|
-
dispatch( blockEditorStore ).selectBlock( originalBlockClientId ),
|
|
79
|
-
} ) )
|
|
80
|
-
);
|
|
81
|
-
|
|
82
|
-
const withMultipleValidation = createHigherOrderComponent( ( BlockEdit ) => {
|
|
83
|
-
return enhance( ( { originalBlockClientId, selectFirst, ...props } ) => {
|
|
84
|
-
if ( ! originalBlockClientId ) {
|
|
85
|
-
return <BlockEdit { ...props } />;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const blockType = getBlockType( props.name );
|
|
89
|
-
const outboundType = getOutboundType( props.name );
|
|
90
|
-
|
|
91
|
-
return [
|
|
92
|
-
<div key="invalid-preview" style={ { minHeight: '60px' } }>
|
|
93
|
-
<BlockEdit key="block-edit" { ...props } />
|
|
94
|
-
</div>,
|
|
95
|
-
<Warning
|
|
96
|
-
key="multiple-use-warning"
|
|
97
|
-
actions={ [
|
|
98
|
-
<Button
|
|
99
|
-
key="find-original"
|
|
100
|
-
variant="secondary"
|
|
101
|
-
onClick={ selectFirst }
|
|
102
|
-
>
|
|
103
|
-
{ __( 'Find original' ) }
|
|
104
|
-
</Button>,
|
|
105
|
-
<Button
|
|
106
|
-
key="remove"
|
|
107
|
-
variant="secondary"
|
|
108
|
-
onClick={ () => props.onReplace( [] ) }
|
|
109
|
-
>
|
|
110
|
-
{ __( 'Remove' ) }
|
|
111
|
-
</Button>,
|
|
112
|
-
outboundType && (
|
|
113
|
-
<Button
|
|
114
|
-
key="transform"
|
|
115
|
-
variant="secondary"
|
|
116
|
-
onClick={ () =>
|
|
117
|
-
props.onReplace(
|
|
118
|
-
createBlock(
|
|
119
|
-
outboundType.name,
|
|
120
|
-
props.attributes
|
|
121
|
-
)
|
|
122
|
-
)
|
|
123
|
-
}
|
|
124
|
-
>
|
|
125
|
-
{ __( 'Transform into:' ) } { outboundType.title }
|
|
126
|
-
</Button>
|
|
127
|
-
),
|
|
128
|
-
] }
|
|
129
|
-
>
|
|
130
|
-
<strong>{ blockType?.title }: </strong>
|
|
131
|
-
{ __( 'This block can only be used once.' ) }
|
|
132
|
-
</Warning>,
|
|
133
|
-
];
|
|
134
|
-
} );
|
|
135
|
-
}, 'withMultipleValidation' );
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Given a base block name, returns the default block type to which to offer
|
|
139
|
-
* transforms.
|
|
140
|
-
*
|
|
141
|
-
* @param {string} blockName Base block name.
|
|
142
|
-
*
|
|
143
|
-
* @return {?Object} The chosen default block type.
|
|
144
|
-
*/
|
|
145
|
-
function getOutboundType( blockName ) {
|
|
146
|
-
// Grab the first outbound transform.
|
|
147
|
-
const transform = findTransform(
|
|
148
|
-
getBlockTransforms( 'to', blockName ),
|
|
149
|
-
( { type, blocks } ) => type === 'block' && blocks.length === 1 // What about when .length > 1?
|
|
150
|
-
);
|
|
151
|
-
|
|
152
|
-
if ( ! transform ) {
|
|
153
|
-
return null;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
return getBlockType( transform.blocks[ 0 ] );
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
addFilter(
|
|
160
|
-
'editor.BlockEdit',
|
|
161
|
-
'core/edit-post/validate-multiple-use/with-multiple-validation',
|
|
162
|
-
withMultipleValidation
|
|
163
|
-
);
|
|
File without changes
|
|
File without changes
|