@wordpress/edit-site 5.3.1 → 5.3.2

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 (60) hide show
  1. package/build/components/editor/index.js +1 -15
  2. package/build/components/editor/index.js.map +1 -1
  3. package/build/components/global-styles/block-preview-panel.js +10 -12
  4. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  5. package/build/components/global-styles/context-menu.js +9 -2
  6. package/build/components/global-styles/context-menu.js.map +1 -1
  7. package/build/components/global-styles/screen-border.js +0 -6
  8. package/build/components/global-styles/screen-border.js.map +1 -1
  9. package/build/components/global-styles/screen-effects.js +53 -0
  10. package/build/components/global-styles/screen-effects.js.map +1 -0
  11. package/build/components/global-styles/shadow-panel.js +1 -1
  12. package/build/components/global-styles/shadow-panel.js.map +1 -1
  13. package/build/components/global-styles/ui.js +7 -0
  14. package/build/components/global-styles/ui.js.map +1 -1
  15. package/build/components/layout/index.js +3 -1
  16. package/build/components/layout/index.js.map +1 -1
  17. package/build/components/save-panel/index.js +77 -0
  18. package/build/components/save-panel/index.js.map +1 -0
  19. package/build/components/sidebar/index.js +25 -2
  20. package/build/components/sidebar/index.js.map +1 -1
  21. package/build-module/components/editor/index.js +3 -17
  22. package/build-module/components/editor/index.js.map +1 -1
  23. package/build-module/components/global-styles/block-preview-panel.js +10 -11
  24. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  25. package/build-module/components/global-styles/context-menu.js +9 -3
  26. package/build-module/components/global-styles/context-menu.js.map +1 -1
  27. package/build-module/components/global-styles/screen-border.js +0 -5
  28. package/build-module/components/global-styles/screen-border.js.map +1 -1
  29. package/build-module/components/global-styles/screen-effects.js +35 -0
  30. package/build-module/components/global-styles/screen-effects.js.map +1 -0
  31. package/build-module/components/global-styles/shadow-panel.js +1 -1
  32. package/build-module/components/global-styles/shadow-panel.js.map +1 -1
  33. package/build-module/components/global-styles/ui.js +6 -0
  34. package/build-module/components/global-styles/ui.js.map +1 -1
  35. package/build-module/components/layout/index.js +2 -1
  36. package/build-module/components/layout/index.js.map +1 -1
  37. package/build-module/components/save-panel/index.js +63 -0
  38. package/build-module/components/save-panel/index.js.map +1 -0
  39. package/build-module/components/sidebar/index.js +22 -2
  40. package/build-module/components/sidebar/index.js.map +1 -1
  41. package/build-style/style-rtl.css +83 -26
  42. package/build-style/style.css +83 -26
  43. package/package.json +8 -8
  44. package/src/components/editor/index.js +3 -43
  45. package/src/components/editor/style.scss +2 -2
  46. package/src/components/global-styles/block-preview-panel.js +8 -12
  47. package/src/components/global-styles/context-menu.js +14 -2
  48. package/src/components/global-styles/screen-border.js +0 -5
  49. package/src/components/global-styles/screen-effects.js +28 -0
  50. package/src/components/global-styles/shadow-panel.js +1 -1
  51. package/src/components/global-styles/style.scss +0 -4
  52. package/src/components/global-styles/ui.js +5 -0
  53. package/src/components/layout/index.js +3 -0
  54. package/src/components/layout/style.scss +25 -3
  55. package/src/components/save-panel/index.js +65 -0
  56. package/src/components/save-panel/style.scss +5 -0
  57. package/src/components/sidebar/index.js +26 -6
  58. package/src/components/sidebar/style.scss +15 -0
  59. package/src/components/site-hub/style.scss +1 -0
  60. package/src/style.scss +1 -0
@@ -85,9 +85,9 @@ $hub-height: $grid-unit-20 * 2 + $button-size;
85
85
  }
86
86
 
87
87
  > div {
88
- overflow-y: auto;
89
- min-height: 100%;
90
- @include custom-scrollbars-on-hover;
88
+ display: flex;
89
+ flex-direction: column;
90
+ height: 100%;
91
91
  }
92
92
 
93
93
  .resizable-editor__drag-handle {
@@ -205,3 +205,25 @@ $hub-height: $grid-unit-20 * 2 + $button-size;
205
205
  border-radius: $radius-block-ui;
206
206
  }
207
207
  }
208
+
209
+ .edit-site-layout__actions {
210
+ z-index: z-index(".edit-site-layout__actions");
211
+ position: fixed !important; // Need to override the default relative positioning
212
+ top: -9999em;
213
+ bottom: auto;
214
+ left: auto;
215
+ right: 0;
216
+ width: $sidebar-width;
217
+ color: $gray-900;
218
+ background: $white;
219
+
220
+ &:focus,
221
+ &:focus-within {
222
+ top: 0;
223
+ bottom: 0;
224
+ }
225
+
226
+ @include break-medium {
227
+ border-left: $border-width solid $gray-300;
228
+ }
229
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { Button, Modal } from '@wordpress/components';
5
+ import { EntitiesSavedStates } from '@wordpress/editor';
6
+ import { useDispatch, useSelect } from '@wordpress/data';
7
+ import { __ } from '@wordpress/i18n';
8
+ import { NavigableRegion } from '@wordpress/interface';
9
+
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+ import { store as editSiteStore } from '../../store';
14
+ import { unlock } from '../../experiments';
15
+
16
+ export default function SavePanel() {
17
+ const { isSaveViewOpen, canvasMode } = useSelect( ( select ) => {
18
+ const { isSaveViewOpened, getCanvasMode } = unlock(
19
+ select( editSiteStore )
20
+ );
21
+
22
+ // The currently selected entity to display.
23
+ // Typically template or template part in the site editor.
24
+ return {
25
+ isSaveViewOpen: isSaveViewOpened(),
26
+ canvasMode: getCanvasMode(),
27
+ };
28
+ }, [] );
29
+ const { setIsSaveViewOpened } = useDispatch( editSiteStore );
30
+ const onClose = () => setIsSaveViewOpened( false );
31
+
32
+ if ( canvasMode === 'view' ) {
33
+ return isSaveViewOpen ? (
34
+ <Modal
35
+ className="edit-site-save-panel__modal"
36
+ onRequestClose={ onClose }
37
+ __experimentalHideHeader
38
+ >
39
+ <EntitiesSavedStates close={ onClose } />
40
+ </Modal>
41
+ ) : null;
42
+ }
43
+
44
+ return (
45
+ <NavigableRegion
46
+ className="edit-site-layout__actions"
47
+ ariaLabel={ __( 'Save sidebar' ) }
48
+ >
49
+ { isSaveViewOpen ? (
50
+ <EntitiesSavedStates close={ onClose } />
51
+ ) : (
52
+ <div className="edit-site-editor__toggle-save-panel">
53
+ <Button
54
+ variant="secondary"
55
+ className="edit-site-editor__toggle-save-panel-button"
56
+ onClick={ () => setIsSaveViewOpened( true ) }
57
+ aria-expanded={ false }
58
+ >
59
+ { __( 'Open save panel' ) }
60
+ </Button>
61
+ </div>
62
+ ) }
63
+ </NavigableRegion>
64
+ );
65
+ }
@@ -0,0 +1,5 @@
1
+ .edit-site-save-panel__modal {
2
+ @include break-small() {
3
+ width: 600px;
4
+ }
5
+ }
@@ -2,7 +2,9 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { memo } from '@wordpress/element';
5
+ import { useSelect } from '@wordpress/data';
5
6
  import { __experimentalNavigatorProvider as NavigatorProvider } from '@wordpress/components';
7
+ import { store as coreStore } from '@wordpress/core-data';
6
8
 
7
9
  /**
8
10
  * Internal dependencies
@@ -11,6 +13,7 @@ import SidebarNavigationScreenMain from '../sidebar-navigation-screen-main';
11
13
  import SidebarNavigationScreenTemplates from '../sidebar-navigation-screen-templates';
12
14
  import useSyncSidebarPathWithURL from '../sync-state-with-url/use-sync-sidebar-path-with-url';
13
15
  import SidebarNavigationScreenNavigationMenus from '../sidebar-navigation-screen-navigation-menus';
16
+ import SaveButton from '../save-button';
14
17
 
15
18
  function SidebarScreens() {
16
19
  useSyncSidebarPathWithURL();
@@ -26,13 +29,30 @@ function SidebarScreens() {
26
29
  }
27
30
 
28
31
  function Sidebar() {
32
+ const { isDirty } = useSelect( ( select ) => {
33
+ const { __experimentalGetDirtyEntityRecords } = select( coreStore );
34
+ const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
35
+ // The currently selected entity to display.
36
+ // Typically template or template part in the site editor.
37
+ return {
38
+ isDirty: dirtyEntityRecords.length > 0,
39
+ };
40
+ }, [] );
41
+
29
42
  return (
30
- <NavigatorProvider
31
- className="edit-site-sidebar__content"
32
- initialPath="/"
33
- >
34
- <SidebarScreens />
35
- </NavigatorProvider>
43
+ <>
44
+ <NavigatorProvider
45
+ className="edit-site-sidebar__content"
46
+ initialPath="/"
47
+ >
48
+ <SidebarScreens />
49
+ </NavigatorProvider>
50
+ { isDirty && (
51
+ <div className="edit-site-sidebar__footer">
52
+ <SaveButton />
53
+ </div>
54
+ ) }
55
+ </>
36
56
  );
37
57
  }
38
58
 
@@ -1,3 +1,18 @@
1
+ .edit-site-sidebar__content {
2
+ flex-grow: 1;
3
+ overflow-y: auto;
4
+ @include custom-scrollbars-on-hover;
5
+ }
6
+
7
+ .edit-site-sidebar__footer {
8
+ border-top: 1px solid $gray-800;
9
+ flex-shrink: 0;
10
+ margin: 0 $canvas-padding;
11
+ padding: $canvas-padding 0;
12
+ display: flex;
13
+ justify-content: flex-end;
14
+ }
15
+
1
16
  .edit-site-sidebar__content.edit-site-sidebar__content {
2
17
  overflow-x: unset;
3
18
  }
@@ -7,6 +7,7 @@
7
7
 
8
8
  .edit-site-site-hub__edit-button {
9
9
  height: $grid-unit-40;
10
+ color: $white;
10
11
  }
11
12
 
12
13
  .edit-site-site-hub__post-type {
package/src/style.scss CHANGED
@@ -19,6 +19,7 @@
19
19
  @import "./components/welcome-guide/style.scss";
20
20
  @import "./components/keyboard-shortcut-help-modal/style.scss";
21
21
  @import "./components/layout/style.scss";
22
+ @import "./components/save-panel/style.scss";
22
23
  @import "./components/sidebar/style.scss";
23
24
  @import "./components/sidebar-navigation-item/style.scss";
24
25
  @import "./components/sidebar-navigation-screen/style.scss";