@wordpress/edit-site 5.10.0 → 5.11.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 +2 -0
- package/build/components/add-new-template/{add-custom-generic-template-modal.js → add-custom-generic-template-modal-content.js} +7 -22
- package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -0
- package/build/components/add-new-template/{add-custom-template-modal.js → add-custom-template-modal-content.js} +11 -21
- package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -0
- package/build/components/add-new-template/new-template.js +98 -65
- package/build/components/add-new-template/new-template.js.map +1 -1
- package/build/components/block-editor/index.js +1 -3
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +6 -7
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/editor/index.js +15 -40
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor-canvas-container/index.js +10 -3
- package/build/components/editor-canvas-container/index.js.map +1 -1
- package/build/components/global-styles/screen-block.js +80 -3
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +3 -10
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js +16 -18
- package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -24
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build/components/global-styles/screen-root.js +4 -4
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/style-variations-container.js +6 -10
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/ui.js +9 -9
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/header-edit-mode/document-actions/index.js +28 -103
- package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build/components/header-edit-mode/index.js +14 -1
- package/build/components/header-edit-mode/index.js.map +1 -1
- package/build/components/layout/hooks.js +54 -0
- package/build/components/layout/hooks.js.map +1 -0
- package/build/components/layout/index.js +45 -98
- package/build/components/layout/index.js.map +1 -1
- package/build/components/list/actions/index.js +5 -2
- package/build/components/list/actions/index.js.map +1 -1
- package/build/components/resizable-frame/index.js +242 -0
- package/build/components/resizable-frame/index.js.map +1 -0
- package/build/components/revisions/index.js +2 -1
- package/build/components/revisions/index.js.map +1 -1
- package/build/components/secondary-sidebar/list-view-sidebar.js +4 -3
- package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build/components/sidebar/index.js +4 -4
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-revisions/index.js +1 -1
- package/build/components/sidebar-edit-mode/template-revisions/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.js +75 -11
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-main/index.js +24 -33
- package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/index.js +162 -0
- package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -0
- package/build/components/sidebar-navigation-screen-navigation-menus/constants.js +17 -0
- package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -0
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js +53 -103
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +87 -0
- package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -0
- package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +14 -71
- package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/navigator-button.js +53 -0
- package/build/components/sidebar-navigation-screen-navigation-menus/navigator-button.js.map +1 -0
- package/build/components/sidebar-navigation-screen-templates/index.js +36 -11
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/site-hub/index.js +1 -3
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/style-book/index.js +93 -19
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/use-edited-entity-record/index.js +8 -4
- package/build/components/use-edited-entity-record/index.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +105 -0
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -0
- package/build/store/actions.js +5 -3
- package/build/store/actions.js.map +1 -1
- package/build-module/components/add-new-template/{add-custom-generic-template-modal.js → add-custom-generic-template-modal-content.js} +8 -20
- package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -0
- package/build-module/components/add-new-template/{add-custom-template-modal.js → add-custom-template-modal-content.js} +13 -22
- package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -0
- package/build-module/components/add-new-template/new-template.js +98 -67
- package/build-module/components/add-new-template/new-template.js.map +1 -1
- package/build-module/components/block-editor/index.js +1 -3
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +7 -8
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/editor/index.js +16 -43
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/editor-canvas-container/index.js +7 -3
- package/build-module/components/editor-canvas-container/index.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +82 -4
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js +3 -10
- package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +16 -19
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -24
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +4 -4
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/style-variations-container.js +7 -11
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/ui.js +10 -10
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/header-edit-mode/document-actions/index.js +31 -107
- package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build-module/components/header-edit-mode/index.js +14 -2
- package/build-module/components/header-edit-mode/index.js.map +1 -1
- package/build-module/components/layout/hooks.js +41 -0
- package/build-module/components/layout/hooks.js.map +1 -0
- package/build-module/components/layout/index.js +46 -101
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/list/actions/index.js +6 -3
- package/build-module/components/list/actions/index.js.map +1 -1
- package/build-module/components/resizable-frame/index.js +228 -0
- package/build-module/components/resizable-frame/index.js.map +1 -0
- package/build-module/components/revisions/index.js +2 -1
- package/build-module/components/revisions/index.js.map +1 -1
- package/build-module/components/secondary-sidebar/list-view-sidebar.js +3 -3
- package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build-module/components/sidebar/index.js +3 -3
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-revisions/index.js +1 -1
- package/build-module/components/sidebar-edit-mode/template-revisions/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js +70 -14
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/index.js +21 -32
- package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +141 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menus/constants.js +10 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +52 -103
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +71 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +12 -71
- package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/navigator-button.js +40 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menus/navigator-button.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-templates/index.js +35 -11
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/site-hub/index.js +1 -3
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/style-book/index.js +93 -20
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/use-edited-entity-record/index.js +8 -4
- package/build-module/components/use-edited-entity-record/index.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +86 -0
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -0
- package/build-module/store/actions.js +5 -3
- package/build-module/store/actions.js.map +1 -1
- package/build-style/style-rtl.css +233 -210
- package/build-style/style.css +234 -210
- package/package.json +37 -37
- package/src/components/add-new-template/add-custom-generic-template-modal-content.js +82 -0
- package/src/components/add-new-template/{add-custom-template-modal.js → add-custom-template-modal-content.js} +13 -26
- package/src/components/add-new-template/new-template.js +139 -153
- package/src/components/add-new-template/style.scss +79 -66
- package/src/components/block-editor/index.js +2 -3
- package/src/components/create-template-part-modal/index.js +19 -25
- package/src/components/editor/index.js +16 -45
- package/src/components/editor/style.scss +21 -6
- package/src/components/editor-canvas-container/index.js +28 -19
- package/src/components/global-styles/screen-block.js +74 -3
- package/src/components/global-styles/screen-revisions/index.js +3 -11
- package/src/components/global-styles/screen-revisions/revisions-buttons.js +33 -25
- package/src/components/global-styles/screen-revisions/style.scss +3 -2
- package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +16 -3
- package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -19
- package/src/components/global-styles/screen-root.js +5 -3
- package/src/components/global-styles/style-variations-container.js +13 -18
- package/src/components/global-styles/style.scss +3 -0
- package/src/components/global-styles/ui.js +11 -9
- package/src/components/header-edit-mode/document-actions/index.js +26 -129
- package/src/components/header-edit-mode/document-actions/style.scss +28 -59
- package/src/components/header-edit-mode/index.js +18 -0
- package/src/components/header-edit-mode/style.scss +1 -0
- package/src/components/layout/hooks.js +46 -0
- package/src/components/layout/index.js +56 -125
- package/src/components/layout/style.scss +8 -2
- package/src/components/list/actions/index.js +12 -5
- package/src/components/list/style.scss +1 -0
- package/src/components/resizable-frame/index.js +253 -0
- package/src/components/resizable-frame/style.scss +69 -0
- package/src/components/revisions/index.js +1 -0
- package/src/components/secondary-sidebar/list-view-sidebar.js +2 -1
- package/src/components/sidebar/index.js +4 -4
- package/src/components/sidebar-edit-mode/template-revisions/index.js +1 -2
- package/src/components/sidebar-navigation-item/style.scss +9 -0
- package/src/components/sidebar-navigation-screen/style.scss +1 -2
- package/src/components/sidebar-navigation-screen-global-styles/index.js +106 -21
- package/src/components/sidebar-navigation-screen-main/index.js +35 -52
- package/src/components/sidebar-navigation-screen-navigation-menu/index.js +157 -0
- package/src/components/sidebar-navigation-screen-navigation-menus/constants.js +9 -0
- package/src/components/sidebar-navigation-screen-navigation-menus/index.js +63 -117
- package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +83 -0
- package/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +6 -72
- package/src/components/sidebar-navigation-screen-navigation-menus/navigator-button.js +47 -0
- package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +6 -20
- package/src/components/sidebar-navigation-screen-templates/index.js +53 -14
- package/src/components/site-hub/index.js +8 -9
- package/src/components/start-template-options/style.scss +20 -21
- package/src/components/style-book/index.js +132 -43
- package/src/components/style-book/style.scss +19 -0
- package/src/components/use-edited-entity-record/index.js +12 -3
- package/src/hooks/commands/use-edit-mode-commands.js +79 -0
- package/src/store/actions.js +4 -5
- package/src/store/test/utils.js +15 -5
- package/src/style.scss +1 -1
- package/build/components/add-new-template/add-custom-generic-template-modal.js.map +0 -1
- package/build/components/add-new-template/add-custom-template-modal.js.map +0 -1
- package/build/components/global-styles/border-panel.js +0 -135
- package/build/components/global-styles/border-panel.js.map +0 -1
- package/build/components/navigate-to-link/index.js +0 -51
- package/build/components/navigate-to-link/index.js.map +0 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/loader.js +0 -19
- package/build/components/sidebar-navigation-screen-navigation-menus/loader.js.map +0 -1
- package/build/components/template-details/edit-template-title.js +0 -42
- package/build/components/template-details/edit-template-title.js.map +0 -1
- package/build/components/template-details/index.js +0 -103
- package/build/components/template-details/index.js.map +0 -1
- package/build/components/template-details/template-areas.js +0 -166
- package/build/components/template-details/template-areas.js.map +0 -1
- package/build/components/template-details/template-part-area-selector.js +0 -48
- package/build/components/template-details/template-part-area-selector.js.map +0 -1
- package/build-module/components/add-new-template/add-custom-generic-template-modal.js.map +0 -1
- package/build-module/components/add-new-template/add-custom-template-modal.js.map +0 -1
- package/build-module/components/global-styles/border-panel.js +0 -125
- package/build-module/components/global-styles/border-panel.js.map +0 -1
- package/build-module/components/navigate-to-link/index.js +0 -39
- package/build-module/components/navigate-to-link/index.js.map +0 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/loader.js +0 -11
- package/build-module/components/sidebar-navigation-screen-navigation-menus/loader.js.map +0 -1
- package/build-module/components/template-details/edit-template-title.js +0 -33
- package/build-module/components/template-details/edit-template-title.js.map +0 -1
- package/build-module/components/template-details/index.js +0 -83
- package/build-module/components/template-details/index.js.map +0 -1
- package/build-module/components/template-details/template-areas.js +0 -145
- package/build-module/components/template-details/template-areas.js.map +0 -1
- package/build-module/components/template-details/template-part-area-selector.js +0 -36
- package/build-module/components/template-details/template-part-area-selector.js.map +0 -1
- package/src/components/add-new-template/add-custom-generic-template-modal.js +0 -101
- package/src/components/global-styles/border-panel.js +0 -114
- package/src/components/navigate-to-link/index.js +0 -46
- package/src/components/sidebar-navigation-screen-navigation-menus/loader.js +0 -9
- package/src/components/template-details/edit-template-title.js +0 -41
- package/src/components/template-details/index.js +0 -113
- package/src/components/template-details/style.scss +0 -72
- package/src/components/template-details/template-areas.js +0 -167
- package/src/components/template-details/template-part-area-selector.js +0 -39
|
@@ -1,79 +1,48 @@
|
|
|
1
1
|
.edit-site-document-actions {
|
|
2
2
|
display: flex;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
align-items: center;
|
|
4
|
+
gap: $grid-unit;
|
|
5
|
+
height: $button-size;
|
|
6
|
+
padding: $grid-unit;
|
|
7
|
+
justify-content: space-between;
|
|
7
8
|
// Flex items will, by default, refuse to shrink below a minimum
|
|
8
9
|
// intrinsic width. In order to shrink this flexbox item, and
|
|
9
10
|
// subsequently truncate child text, we set an explicit min-width.
|
|
10
11
|
// See https://dev.w3.org/csswg/css-flexbox/#min-size-auto
|
|
11
12
|
min-width: 0;
|
|
13
|
+
background: $gray-100;
|
|
14
|
+
border-radius: 4px;
|
|
15
|
+
width: min(100%, 450px);
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
display: flex;
|
|
15
|
-
flex-direction: row;
|
|
16
|
-
justify-content: center;
|
|
17
|
-
align-items: center;
|
|
18
|
-
|
|
19
|
-
// See comment above about min-width
|
|
20
|
-
min-width: 0;
|
|
21
|
-
|
|
22
|
-
.components-dropdown {
|
|
23
|
-
display: inline-flex;
|
|
24
|
-
margin-left: $grid-unit-05;
|
|
25
|
-
|
|
26
|
-
.components-button {
|
|
27
|
-
min-width: 0;
|
|
28
|
-
padding: 0;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.edit-site-document-actions__title-wrapper > h1 {
|
|
34
|
-
margin: 0;
|
|
35
|
-
|
|
36
|
-
// See comment above about min-width
|
|
37
|
-
min-width: 0;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.edit-site-document-actions__title {
|
|
41
|
-
white-space: nowrap;
|
|
42
|
-
overflow: hidden;
|
|
43
|
-
text-overflow: ellipsis;
|
|
17
|
+
&:hover {
|
|
44
18
|
color: currentColor;
|
|
19
|
+
background: $gray-200;
|
|
45
20
|
}
|
|
21
|
+
}
|
|
46
22
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
23
|
+
.edit-site-document-actions__title {
|
|
24
|
+
flex-grow: 1;
|
|
25
|
+
color: var(--wp-block-synced-color);
|
|
26
|
+
overflow: hidden;
|
|
27
|
+
|
|
28
|
+
h1 {
|
|
29
|
+
color: var(--wp-block-synced-color);
|
|
50
30
|
white-space: nowrap;
|
|
51
31
|
overflow: hidden;
|
|
52
32
|
text-overflow: ellipsis;
|
|
53
|
-
max-width: 0;
|
|
54
|
-
opacity: 0;
|
|
55
|
-
padding: 0;
|
|
56
|
-
transition: all ease 0.2s;
|
|
57
|
-
background: rgba(var(--wp-block-synced-color--rgb), 0.04);
|
|
58
|
-
border-radius: 2px;
|
|
59
|
-
@include reduce-motion(transition);
|
|
60
|
-
|
|
61
|
-
.block-editor-block-icon.has-colors {
|
|
62
|
-
color: var(--wp-block-synced-color);
|
|
63
|
-
}
|
|
64
33
|
}
|
|
34
|
+
}
|
|
65
35
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
36
|
+
.edit-site-document-actions__shortcut {
|
|
37
|
+
flex-shrink: 0;
|
|
38
|
+
color: $gray-700;
|
|
39
|
+
width: #{$grid-unit * 4.5};
|
|
40
|
+
&:hover {
|
|
41
|
+
color: $gray-700;
|
|
73
42
|
}
|
|
74
43
|
}
|
|
75
44
|
|
|
76
|
-
.edit-site-document-
|
|
77
|
-
|
|
78
|
-
|
|
45
|
+
.edit-site-document-actions__left {
|
|
46
|
+
min-width: $button-size;
|
|
47
|
+
flex-shrink: 0;
|
|
79
48
|
}
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
__experimentalPreviewOptions as PreviewOptions,
|
|
15
15
|
NavigableToolbar,
|
|
16
16
|
store as blockEditorStore,
|
|
17
|
+
privateApis as blockEditorPrivateApis,
|
|
17
18
|
} from '@wordpress/block-editor';
|
|
18
19
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
19
20
|
import { PinnedItems } from '@wordpress/interface';
|
|
@@ -44,6 +45,8 @@ import {
|
|
|
44
45
|
} from '../editor-canvas-container';
|
|
45
46
|
import { unlock } from '../../private-apis';
|
|
46
47
|
|
|
48
|
+
const { useShouldContextualToolbarShow } = unlock( blockEditorPrivateApis );
|
|
49
|
+
|
|
47
50
|
const preventDefault = ( event ) => {
|
|
48
51
|
event.preventDefault();
|
|
49
52
|
};
|
|
@@ -125,6 +128,18 @@ export default function HeaderEditMode() {
|
|
|
125
128
|
[ setIsListViewOpened, isListViewOpen ]
|
|
126
129
|
);
|
|
127
130
|
|
|
131
|
+
const {
|
|
132
|
+
shouldShowContextualToolbar,
|
|
133
|
+
canFocusHiddenToolbar,
|
|
134
|
+
fixedToolbarCanBeFocused,
|
|
135
|
+
} = useShouldContextualToolbarShow();
|
|
136
|
+
// If there's a block toolbar to be focused, disable the focus shortcut for the document toolbar.
|
|
137
|
+
// There's a fixed block toolbar when the fixed toolbar option is enabled or when the browser width is less than the large viewport.
|
|
138
|
+
const blockToolbarCanBeFocused =
|
|
139
|
+
shouldShowContextualToolbar ||
|
|
140
|
+
canFocusHiddenToolbar ||
|
|
141
|
+
fixedToolbarCanBeFocused;
|
|
142
|
+
|
|
128
143
|
const hasDefaultEditorCanvasView = ! useHasEditorCanvasContainer();
|
|
129
144
|
|
|
130
145
|
const isFocusMode = templateType === 'wp_template_part';
|
|
@@ -150,6 +165,9 @@ export default function HeaderEditMode() {
|
|
|
150
165
|
<NavigableToolbar
|
|
151
166
|
className="edit-site-header-edit-mode__start"
|
|
152
167
|
aria-label={ __( 'Document tools' ) }
|
|
168
|
+
shouldUseKeyboardFocusShortcut={
|
|
169
|
+
! blockToolbarCanBeFocused
|
|
170
|
+
}
|
|
153
171
|
>
|
|
154
172
|
<div className="edit-site-header-edit-mode__toolbar">
|
|
155
173
|
<ToolbarItem
|
|
@@ -27,6 +27,7 @@ $header-toolbar-min-width: 335px;
|
|
|
27
27
|
align-items: center;
|
|
28
28
|
height: 100%;
|
|
29
29
|
flex-grow: 1;
|
|
30
|
+
margin: 0 $grid-unit-10;
|
|
30
31
|
justify-content: center;
|
|
31
32
|
// Flex items will, by default, refuse to shrink below a minimum
|
|
32
33
|
// intrinsic width. In order to shrink this flexbox item, and
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useEffect, useState } from '@wordpress/element';
|
|
5
|
+
import { useSelect } from '@wordpress/data';
|
|
6
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import useEditedEntityRecord from '../use-edited-entity-record';
|
|
12
|
+
|
|
13
|
+
export function useIsSiteEditorLoading() {
|
|
14
|
+
const { isLoaded: hasLoadedPost } = useEditedEntityRecord();
|
|
15
|
+
const [ loaded, setLoaded ] = useState( false );
|
|
16
|
+
const inLoadingPause = useSelect(
|
|
17
|
+
( select ) => {
|
|
18
|
+
const hasResolvingSelectors =
|
|
19
|
+
select( coreStore ).hasResolvingSelectors();
|
|
20
|
+
return ! loaded && ! hasResolvingSelectors;
|
|
21
|
+
},
|
|
22
|
+
[ loaded ]
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
useEffect( () => {
|
|
26
|
+
if ( inLoadingPause ) {
|
|
27
|
+
/*
|
|
28
|
+
* We're using an arbitrary 1s timeout here to catch brief moments
|
|
29
|
+
* without any resolving selectors that would result in displaying
|
|
30
|
+
* brief flickers of loading state and loaded state.
|
|
31
|
+
*
|
|
32
|
+
* It's worth experimenting with different values, since this also
|
|
33
|
+
* adds 1s of artificial delay after loading has finished.
|
|
34
|
+
*/
|
|
35
|
+
const timeout = setTimeout( () => {
|
|
36
|
+
setLoaded( true );
|
|
37
|
+
}, 1000 );
|
|
38
|
+
|
|
39
|
+
return () => {
|
|
40
|
+
clearTimeout( timeout );
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}, [ inLoadingPause ] );
|
|
44
|
+
|
|
45
|
+
return ! loaded || ! hasLoadedPost;
|
|
46
|
+
}
|
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
__unstableMotion as motion,
|
|
12
12
|
__unstableAnimatePresence as AnimatePresence,
|
|
13
13
|
__unstableUseNavigateRegions as useNavigateRegions,
|
|
14
|
-
ResizableBox,
|
|
15
14
|
} from '@wordpress/components';
|
|
16
15
|
import {
|
|
17
16
|
useReducedMotion,
|
|
@@ -22,10 +21,13 @@ import { __ } from '@wordpress/i18n';
|
|
|
22
21
|
import { useState, useRef } from '@wordpress/element';
|
|
23
22
|
import { NavigableRegion } from '@wordpress/interface';
|
|
24
23
|
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
25
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
CommandMenu,
|
|
26
|
+
privateApis as commandsPrivateApis,
|
|
27
|
+
} from '@wordpress/commands';
|
|
26
28
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
27
29
|
import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
28
|
-
import { privateApis as
|
|
30
|
+
import { privateApis as coreCommandsPrivateApis } from '@wordpress/core-commands';
|
|
29
31
|
|
|
30
32
|
/**
|
|
31
33
|
* Internal dependencies
|
|
@@ -39,35 +41,27 @@ import getIsListPage from '../../utils/get-is-list-page';
|
|
|
39
41
|
import Header from '../header-edit-mode';
|
|
40
42
|
import useInitEditedEntityFromURL from '../sync-state-with-url/use-init-edited-entity-from-url';
|
|
41
43
|
import SiteHub from '../site-hub';
|
|
42
|
-
import
|
|
44
|
+
import ResizableFrame from '../resizable-frame';
|
|
43
45
|
import useSyncCanvasModeWithURL from '../sync-state-with-url/use-sync-canvas-mode-with-url';
|
|
44
46
|
import { unlock } from '../../private-apis';
|
|
45
47
|
import SavePanel from '../save-panel';
|
|
46
48
|
import KeyboardShortcutsRegister from '../keyboard-shortcuts/register';
|
|
47
49
|
import KeyboardShortcutsGlobal from '../keyboard-shortcuts/global';
|
|
50
|
+
import { useEditModeCommands } from '../../hooks/commands/use-edit-mode-commands';
|
|
51
|
+
import { useIsSiteEditorLoading } from './hooks';
|
|
48
52
|
|
|
49
|
-
const { useCommands } = unlock(
|
|
50
|
-
|
|
53
|
+
const { useCommands } = unlock( coreCommandsPrivateApis );
|
|
54
|
+
const { useCommandContext } = unlock( commandsPrivateApis );
|
|
51
55
|
const { useLocation } = unlock( routerPrivateApis );
|
|
52
56
|
|
|
53
57
|
const ANIMATION_DURATION = 0.5;
|
|
54
|
-
const emptyResizeHandleStyles = {
|
|
55
|
-
position: undefined,
|
|
56
|
-
userSelect: undefined,
|
|
57
|
-
cursor: undefined,
|
|
58
|
-
width: undefined,
|
|
59
|
-
height: undefined,
|
|
60
|
-
top: undefined,
|
|
61
|
-
right: undefined,
|
|
62
|
-
bottom: undefined,
|
|
63
|
-
left: undefined,
|
|
64
|
-
};
|
|
65
58
|
|
|
66
59
|
export default function Layout() {
|
|
67
60
|
// This ensures the edited entity id and type are initialized properly.
|
|
68
61
|
useInitEditedEntityFromURL();
|
|
69
62
|
useSyncCanvasModeWithURL();
|
|
70
63
|
useCommands();
|
|
64
|
+
useEditModeCommands();
|
|
71
65
|
|
|
72
66
|
const hubRef = useRef();
|
|
73
67
|
const { params } = useLocation();
|
|
@@ -91,36 +85,33 @@ export default function Layout() {
|
|
|
91
85
|
select( preferencesStore ).get( 'fixedToolbar' ),
|
|
92
86
|
};
|
|
93
87
|
}, [] );
|
|
88
|
+
const isEditing = canvasMode === 'edit';
|
|
94
89
|
const navigateRegionsProps = useNavigateRegions( {
|
|
95
90
|
previous: previousShortcut,
|
|
96
91
|
next: nextShortcut,
|
|
97
92
|
} );
|
|
98
93
|
const disableMotion = useReducedMotion();
|
|
99
94
|
const isMobileViewport = useViewportMatch( 'medium', '<' );
|
|
100
|
-
const canvasPadding = isMobileViewport ? 0 : 24;
|
|
101
95
|
const showSidebar =
|
|
102
96
|
( isMobileViewport && ! isListPage ) ||
|
|
103
97
|
( ! isMobileViewport && ( canvasMode === 'view' || ! isEditorPage ) );
|
|
104
98
|
const showCanvas =
|
|
105
|
-
( isMobileViewport && isEditorPage &&
|
|
99
|
+
( isMobileViewport && isEditorPage && isEditing ) ||
|
|
106
100
|
! isMobileViewport ||
|
|
107
101
|
! isEditorPage;
|
|
108
|
-
const showFrame =
|
|
109
|
-
( ! isEditorPage && ! isMobileViewport ) ||
|
|
110
|
-
( ! isMobileViewport && isEditorPage && canvasMode === 'view' );
|
|
111
102
|
const isFullCanvas =
|
|
112
|
-
( isMobileViewport && isListPage ) ||
|
|
113
|
-
( isEditorPage && canvasMode === 'edit' );
|
|
103
|
+
( isMobileViewport && isListPage ) || ( isEditorPage && isEditing );
|
|
114
104
|
const [ canvasResizer, canvasSize ] = useResizeObserver();
|
|
115
|
-
const [ fullResizer
|
|
116
|
-
const [
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
105
|
+
const [ fullResizer ] = useResizeObserver();
|
|
106
|
+
const [ isResizing ] = useState( false );
|
|
107
|
+
const isEditorLoading = useIsSiteEditorLoading();
|
|
108
|
+
|
|
109
|
+
// Sets the right context for the command center
|
|
110
|
+
const commandContext =
|
|
111
|
+
canvasMode === 'edit' && isEditorPage
|
|
112
|
+
? 'site-editor-edit'
|
|
113
|
+
: 'site-editor';
|
|
114
|
+
useCommandContext( commandContext );
|
|
124
115
|
|
|
125
116
|
// Synchronizing the URL with the store value of canvasMode happens in an effect
|
|
126
117
|
// This condition ensures the component is only rendered after the synchronization happens
|
|
@@ -131,7 +122,7 @@ export default function Layout() {
|
|
|
131
122
|
|
|
132
123
|
return (
|
|
133
124
|
<>
|
|
134
|
-
|
|
125
|
+
<CommandMenu />
|
|
135
126
|
<KeyboardShortcutsRegister />
|
|
136
127
|
<KeyboardShortcutsGlobal />
|
|
137
128
|
{ fullResizer }
|
|
@@ -143,7 +134,7 @@ export default function Layout() {
|
|
|
143
134
|
navigateRegionsProps.className,
|
|
144
135
|
{
|
|
145
136
|
'is-full-canvas': isFullCanvas,
|
|
146
|
-
'is-edit-mode':
|
|
137
|
+
'is-edit-mode': isEditing,
|
|
147
138
|
'has-fixed-toolbar': hasFixedToolbar,
|
|
148
139
|
}
|
|
149
140
|
) }
|
|
@@ -151,7 +142,7 @@ export default function Layout() {
|
|
|
151
142
|
<SiteHub ref={ hubRef } className="edit-site-layout__hub" />
|
|
152
143
|
|
|
153
144
|
<AnimatePresence initial={ false }>
|
|
154
|
-
{ isEditorPage &&
|
|
145
|
+
{ isEditorPage && isEditing && (
|
|
155
146
|
<NavigableRegion
|
|
156
147
|
className="edit-site-layout__header"
|
|
157
148
|
ariaLabel={ __( 'Editor top bar' ) }
|
|
@@ -173,7 +164,7 @@ export default function Layout() {
|
|
|
173
164
|
ease: 'easeOut',
|
|
174
165
|
} }
|
|
175
166
|
>
|
|
176
|
-
<Header />
|
|
167
|
+
{ isEditing && <Header /> }
|
|
177
168
|
</NavigableRegion>
|
|
178
169
|
) }
|
|
179
170
|
</AnimatePresence>
|
|
@@ -181,8 +172,7 @@ export default function Layout() {
|
|
|
181
172
|
<div className="edit-site-layout__content">
|
|
182
173
|
<AnimatePresence initial={ false }>
|
|
183
174
|
{ showSidebar && (
|
|
184
|
-
<
|
|
185
|
-
as={ motion.div }
|
|
175
|
+
<motion.div
|
|
186
176
|
initial={ {
|
|
187
177
|
opacity: 0,
|
|
188
178
|
} }
|
|
@@ -194,69 +184,17 @@ export default function Layout() {
|
|
|
194
184
|
} }
|
|
195
185
|
transition={ {
|
|
196
186
|
type: 'tween',
|
|
197
|
-
duration:
|
|
198
|
-
disableMotion || isResizing
|
|
199
|
-
? 0
|
|
200
|
-
: ANIMATION_DURATION,
|
|
187
|
+
duration: ANIMATION_DURATION,
|
|
201
188
|
ease: 'easeOut',
|
|
202
189
|
} }
|
|
203
|
-
size={ {
|
|
204
|
-
height: '100%',
|
|
205
|
-
width:
|
|
206
|
-
isResizingEnabled && forcedWidth
|
|
207
|
-
? forcedWidth
|
|
208
|
-
: defaultSidebarWidth,
|
|
209
|
-
} }
|
|
210
190
|
className="edit-site-layout__sidebar"
|
|
211
|
-
enable={ {
|
|
212
|
-
right: isResizingEnabled,
|
|
213
|
-
} }
|
|
214
|
-
onResizeStop={ ( event, direction, elt ) => {
|
|
215
|
-
setForcedWidth( elt.clientWidth );
|
|
216
|
-
setIsResizing( false );
|
|
217
|
-
} }
|
|
218
|
-
onResizeStart={ () => {
|
|
219
|
-
setIsResizing( true );
|
|
220
|
-
} }
|
|
221
|
-
onResize={ ( event, direction, elt ) => {
|
|
222
|
-
// This is a performance optimization
|
|
223
|
-
// We set the width imperatively to avoid re-rendering
|
|
224
|
-
// the whole component while resizing.
|
|
225
|
-
hubRef.current.style.width =
|
|
226
|
-
elt.clientWidth - 48 + 'px';
|
|
227
|
-
} }
|
|
228
|
-
handleComponent={ {
|
|
229
|
-
right: (
|
|
230
|
-
<ResizeHandle
|
|
231
|
-
direction="right"
|
|
232
|
-
variation="separator"
|
|
233
|
-
resizeWidthBy={ ( delta ) => {
|
|
234
|
-
setForcedWidth(
|
|
235
|
-
( forcedWidth ??
|
|
236
|
-
defaultSidebarWidth ) +
|
|
237
|
-
delta
|
|
238
|
-
);
|
|
239
|
-
} }
|
|
240
|
-
/>
|
|
241
|
-
),
|
|
242
|
-
} }
|
|
243
|
-
handleClasses={ undefined }
|
|
244
|
-
handleStyles={ {
|
|
245
|
-
right: emptyResizeHandleStyles,
|
|
246
|
-
} }
|
|
247
|
-
minWidth={ isResizingEnabled ? 320 : undefined }
|
|
248
|
-
maxWidth={
|
|
249
|
-
isResizingEnabled && fullSize
|
|
250
|
-
? fullSize.width - 360
|
|
251
|
-
: undefined
|
|
252
|
-
}
|
|
253
191
|
>
|
|
254
192
|
<NavigableRegion
|
|
255
193
|
ariaLabel={ __( 'Navigation' ) }
|
|
256
194
|
>
|
|
257
195
|
<Sidebar />
|
|
258
196
|
</NavigableRegion>
|
|
259
|
-
</
|
|
197
|
+
</motion.div>
|
|
260
198
|
) }
|
|
261
199
|
</AnimatePresence>
|
|
262
200
|
|
|
@@ -270,10 +208,6 @@ export default function Layout() {
|
|
|
270
208
|
'is-resizing': isResizing,
|
|
271
209
|
}
|
|
272
210
|
) }
|
|
273
|
-
style={ {
|
|
274
|
-
paddingTop: showFrame ? canvasPadding : 0,
|
|
275
|
-
paddingBottom: showFrame ? canvasPadding : 0,
|
|
276
|
-
} }
|
|
277
211
|
>
|
|
278
212
|
{ canvasResizer }
|
|
279
213
|
{ !! canvasSize.width && (
|
|
@@ -281,7 +215,7 @@ export default function Layout() {
|
|
|
281
215
|
whileHover={
|
|
282
216
|
isEditorPage && canvasMode === 'view'
|
|
283
217
|
? {
|
|
284
|
-
scale: 1.
|
|
218
|
+
scale: 1.006,
|
|
285
219
|
transition: {
|
|
286
220
|
duration:
|
|
287
221
|
disableMotion ||
|
|
@@ -293,8 +227,14 @@ export default function Layout() {
|
|
|
293
227
|
}
|
|
294
228
|
: {}
|
|
295
229
|
}
|
|
296
|
-
|
|
297
|
-
|
|
230
|
+
// Setting a transform property (in this case scale) on an element makes it act as a containing block for its descendants.
|
|
231
|
+
// This means that the snackbar notices inside this component are repositioned to be relative to this element.
|
|
232
|
+
// To avoid the snackbars jumping about we need to ensure that a transform property is always set.
|
|
233
|
+
// Setting a scale of 1 is interpred by framer as no change, so once the animation completes
|
|
234
|
+
// the transform property of this element is set to none, thus removing its role as a container block.
|
|
235
|
+
// Instead we set the initial scale of this element to 1.0001 so that there is always a transform property set.
|
|
236
|
+
// If we set the initial scale to less than 1.001 then JavaScript rounds it to 1 and the problem reoccurs.
|
|
237
|
+
initial={ { scale: 1.001 } }
|
|
298
238
|
className="edit-site-layout__canvas"
|
|
299
239
|
transition={ {
|
|
300
240
|
type: 'tween',
|
|
@@ -305,31 +245,22 @@ export default function Layout() {
|
|
|
305
245
|
ease: 'easeOut',
|
|
306
246
|
} }
|
|
307
247
|
>
|
|
308
|
-
<
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
: ANIMATION_DURATION,
|
|
325
|
-
ease: 'easeOut',
|
|
326
|
-
} }
|
|
327
|
-
>
|
|
328
|
-
<ErrorBoundary>
|
|
329
|
-
{ isEditorPage && <Editor /> }
|
|
330
|
-
{ isListPage && <ListPage /> }
|
|
331
|
-
</ErrorBoundary>
|
|
332
|
-
</motion.div>
|
|
248
|
+
<ErrorBoundary>
|
|
249
|
+
{ isEditorPage && (
|
|
250
|
+
<ResizableFrame
|
|
251
|
+
isReady={ ! isEditorLoading }
|
|
252
|
+
isFullWidth={ isEditing }
|
|
253
|
+
oversizedClassName="edit-site-layout__resizable-frame-oversized"
|
|
254
|
+
>
|
|
255
|
+
<Editor
|
|
256
|
+
isLoading={
|
|
257
|
+
isEditorLoading
|
|
258
|
+
}
|
|
259
|
+
/>
|
|
260
|
+
</ResizableFrame>
|
|
261
|
+
) }
|
|
262
|
+
{ isListPage && <ListPage /> }
|
|
263
|
+
</ErrorBoundary>
|
|
333
264
|
</motion.div>
|
|
334
265
|
) }
|
|
335
266
|
</div>
|
|
@@ -105,7 +105,13 @@
|
|
|
105
105
|
left: 0;
|
|
106
106
|
bottom: 0;
|
|
107
107
|
width: 100%;
|
|
108
|
-
|
|
108
|
+
display: flex;
|
|
109
|
+
justify-content: center;
|
|
110
|
+
align-items: center;
|
|
111
|
+
|
|
112
|
+
&:has(.edit-site-layout__resizable-frame-oversized) {
|
|
113
|
+
justify-content: flex-end;
|
|
114
|
+
}
|
|
109
115
|
|
|
110
116
|
& > div {
|
|
111
117
|
color: $gray-900;
|
|
@@ -243,5 +249,5 @@
|
|
|
243
249
|
z-index: 3;
|
|
244
250
|
}
|
|
245
251
|
}
|
|
246
|
-
|
|
247
252
|
}
|
|
253
|
+
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { useDispatch } from '@wordpress/data';
|
|
5
5
|
import { store as coreStore } from '@wordpress/core-data';
|
|
6
|
-
import { __ } from '@wordpress/i18n';
|
|
6
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
7
7
|
import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
|
|
8
8
|
import { moreVertical } from '@wordpress/icons';
|
|
9
9
|
import { store as noticesStore } from '@wordpress/notices';
|
|
@@ -21,7 +21,6 @@ export default function Actions( { template } ) {
|
|
|
21
21
|
const { saveEditedEntityRecord } = useDispatch( coreStore );
|
|
22
22
|
const { createSuccessNotice, createErrorNotice } =
|
|
23
23
|
useDispatch( noticesStore );
|
|
24
|
-
|
|
25
24
|
const isRemovable = isTemplateRemovable( template );
|
|
26
25
|
const isRevertable = isTemplateRevertable( template );
|
|
27
26
|
|
|
@@ -38,9 +37,17 @@ export default function Actions( { template } ) {
|
|
|
38
37
|
template.id
|
|
39
38
|
);
|
|
40
39
|
|
|
41
|
-
createSuccessNotice(
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
createSuccessNotice(
|
|
41
|
+
sprintf(
|
|
42
|
+
/* translators: The template/part's name. */
|
|
43
|
+
__( '"%s" reverted.' ),
|
|
44
|
+
template.title.rendered
|
|
45
|
+
),
|
|
46
|
+
{
|
|
47
|
+
type: 'snackbar',
|
|
48
|
+
id: 'edit-site-template-reverted',
|
|
49
|
+
}
|
|
50
|
+
);
|
|
44
51
|
} catch ( error ) {
|
|
45
52
|
const errorMessage =
|
|
46
53
|
error.message && error.code !== 'unknown_error'
|