@wordpress/edit-site 5.3.0 → 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 (131) hide show
  1. package/build/components/add-new-template/new-template-part.js +5 -4
  2. package/build/components/add-new-template/new-template-part.js.map +1 -1
  3. package/build/components/add-new-template/new-template.js +5 -4
  4. package/build/components/add-new-template/new-template.js.map +1 -1
  5. package/build/components/block-editor/editor-canvas.js +13 -2
  6. package/build/components/block-editor/editor-canvas.js.map +1 -1
  7. package/build/components/block-editor/index.js +3 -3
  8. package/build/components/block-editor/index.js.map +1 -1
  9. package/build/components/editor/index.js +6 -18
  10. package/build/components/editor/index.js.map +1 -1
  11. package/build/components/global-styles/block-preview-panel.js +10 -12
  12. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  13. package/build/components/global-styles/context-menu.js +9 -2
  14. package/build/components/global-styles/context-menu.js.map +1 -1
  15. package/build/components/global-styles/screen-border.js +0 -6
  16. package/build/components/global-styles/screen-border.js.map +1 -1
  17. package/build/components/global-styles/screen-effects.js +53 -0
  18. package/build/components/global-styles/screen-effects.js.map +1 -0
  19. package/build/components/global-styles/shadow-panel.js +1 -1
  20. package/build/components/global-styles/shadow-panel.js.map +1 -1
  21. package/build/components/global-styles/ui.js +28 -2
  22. package/build/components/global-styles/ui.js.map +1 -1
  23. package/build/components/layout/index.js +8 -4
  24. package/build/components/layout/index.js.map +1 -1
  25. package/build/components/navigation-inspector/index.js +8 -4
  26. package/build/components/navigation-inspector/index.js.map +1 -1
  27. package/build/components/navigation-inspector/navigation-menu.js +4 -2
  28. package/build/components/navigation-inspector/navigation-menu.js.map +1 -1
  29. package/build/components/save-panel/index.js +77 -0
  30. package/build/components/save-panel/index.js.map +1 -0
  31. package/build/components/sidebar/index.js +25 -2
  32. package/build/components/sidebar/index.js.map +1 -1
  33. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +18 -1
  34. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  35. package/build/components/site-hub/index.js +9 -8
  36. package/build/components/site-hub/index.js.map +1 -1
  37. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +6 -4
  38. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  39. package/build/store/actions.js +1 -27
  40. package/build/store/actions.js.map +1 -1
  41. package/build/store/index.js +8 -0
  42. package/build/store/index.js.map +1 -1
  43. package/build/store/private-actions.js +40 -0
  44. package/build/store/private-actions.js.map +1 -0
  45. package/build/store/private-selectors.js +18 -0
  46. package/build/store/private-selectors.js.map +1 -0
  47. package/build/store/selectors.js +0 -13
  48. package/build/store/selectors.js.map +1 -1
  49. package/build-module/components/add-new-template/new-template-part.js +4 -4
  50. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  51. package/build-module/components/add-new-template/new-template.js +4 -4
  52. package/build-module/components/add-new-template/new-template.js.map +1 -1
  53. package/build-module/components/block-editor/editor-canvas.js +13 -3
  54. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  55. package/build-module/components/block-editor/index.js +3 -3
  56. package/build-module/components/block-editor/index.js.map +1 -1
  57. package/build-module/components/editor/index.js +7 -20
  58. package/build-module/components/editor/index.js.map +1 -1
  59. package/build-module/components/global-styles/block-preview-panel.js +10 -11
  60. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  61. package/build-module/components/global-styles/context-menu.js +9 -3
  62. package/build-module/components/global-styles/context-menu.js.map +1 -1
  63. package/build-module/components/global-styles/screen-border.js +0 -5
  64. package/build-module/components/global-styles/screen-border.js.map +1 -1
  65. package/build-module/components/global-styles/screen-effects.js +35 -0
  66. package/build-module/components/global-styles/screen-effects.js.map +1 -0
  67. package/build-module/components/global-styles/shadow-panel.js +1 -1
  68. package/build-module/components/global-styles/shadow-panel.js.map +1 -1
  69. package/build-module/components/global-styles/ui.js +26 -2
  70. package/build-module/components/global-styles/ui.js.map +1 -1
  71. package/build-module/components/layout/index.js +6 -4
  72. package/build-module/components/layout/index.js.map +1 -1
  73. package/build-module/components/navigation-inspector/index.js +8 -4
  74. package/build-module/components/navigation-inspector/index.js.map +1 -1
  75. package/build-module/components/navigation-inspector/navigation-menu.js +4 -2
  76. package/build-module/components/navigation-inspector/navigation-menu.js.map +1 -1
  77. package/build-module/components/save-panel/index.js +63 -0
  78. package/build-module/components/save-panel/index.js.map +1 -0
  79. package/build-module/components/sidebar/index.js +22 -2
  80. package/build-module/components/sidebar/index.js.map +1 -1
  81. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +18 -1
  82. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  83. package/build-module/components/site-hub/index.js +8 -8
  84. package/build-module/components/site-hub/index.js.map +1 -1
  85. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +5 -4
  86. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  87. package/build-module/store/actions.js +0 -23
  88. package/build-module/store/actions.js.map +1 -1
  89. package/build-module/store/index.js +5 -0
  90. package/build-module/store/index.js.map +1 -1
  91. package/build-module/store/private-actions.js +29 -0
  92. package/build-module/store/private-actions.js.map +1 -0
  93. package/build-module/store/private-selectors.js +11 -0
  94. package/build-module/store/private-selectors.js.map +1 -0
  95. package/build-module/store/selectors.js +0 -11
  96. package/build-module/store/selectors.js.map +1 -1
  97. package/build-style/style-rtl.css +83 -26
  98. package/build-style/style.css +83 -26
  99. package/package.json +31 -31
  100. package/src/components/add-new-template/new-template-part.js +3 -2
  101. package/src/components/add-new-template/new-template.js +5 -3
  102. package/src/components/block-editor/editor-canvas.js +12 -2
  103. package/src/components/block-editor/index.js +4 -3
  104. package/src/components/block-editor/style.scss +1 -0
  105. package/src/components/editor/index.js +7 -46
  106. package/src/components/editor/style.scss +2 -2
  107. package/src/components/global-styles/block-preview-panel.js +8 -12
  108. package/src/components/global-styles/context-menu.js +14 -2
  109. package/src/components/global-styles/screen-border.js +0 -5
  110. package/src/components/global-styles/screen-effects.js +28 -0
  111. package/src/components/global-styles/shadow-panel.js +1 -1
  112. package/src/components/global-styles/style.scss +0 -4
  113. package/src/components/global-styles/ui.js +28 -4
  114. package/src/components/layout/index.js +6 -2
  115. package/src/components/layout/style.scss +25 -3
  116. package/src/components/navigation-inspector/index.js +5 -2
  117. package/src/components/navigation-inspector/navigation-menu.js +2 -2
  118. package/src/components/save-panel/index.js +65 -0
  119. package/src/components/save-panel/style.scss +5 -0
  120. package/src/components/sidebar/index.js +26 -6
  121. package/src/components/sidebar/style.scss +15 -0
  122. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +21 -1
  123. package/src/components/site-hub/index.js +7 -9
  124. package/src/components/site-hub/style.scss +1 -0
  125. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +4 -3
  126. package/src/store/actions.js +0 -24
  127. package/src/store/index.js +5 -0
  128. package/src/store/private-actions.js +29 -0
  129. package/src/store/private-selectors.js +10 -0
  130. package/src/store/selectors.js +0 -11
  131. package/src/style.scss +1 -0
@@ -403,13 +403,28 @@ body.is-fullscreen-mode .interface-interface-skeleton {
403
403
  bottom: auto;
404
404
  left: auto;
405
405
  right: 0;
406
- width: 280px;
407
406
  color: #1e1e1e;
407
+ background: #fff;
408
+ width: 100vw;
409
+ }
410
+ @media (min-width: 782px) {
411
+ .interface-interface-skeleton__actions {
412
+ width: 280px;
413
+ }
408
414
  }
409
415
  .interface-interface-skeleton__actions:focus, .interface-interface-skeleton__actions:focus-within {
410
- top: auto;
416
+ top: 46px;
411
417
  bottom: 0;
412
418
  }
419
+ @media (min-width: 782px) {
420
+ .interface-interface-skeleton__actions:focus, .interface-interface-skeleton__actions:focus-within {
421
+ border-left: 1px solid #ddd;
422
+ top: 32px;
423
+ }
424
+ .is-fullscreen-mode .interface-interface-skeleton__actions:focus, .is-fullscreen-mode .interface-interface-skeleton__actions:focus-within {
425
+ top: 0;
426
+ }
427
+ }
413
428
 
414
429
  .interface-more-menu-dropdown {
415
430
  margin-left: -4px;
@@ -1049,7 +1064,6 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
1049
1064
  .edit-site-global-styles__block-preview-panel {
1050
1065
  position: relative;
1051
1066
  width: 100%;
1052
- height: 152px;
1053
1067
  overflow: auto;
1054
1068
  border: #e0e0e0 1px solid;
1055
1069
  border-radius: 2px;
@@ -1832,7 +1846,7 @@ h3.edit-site-template-card__template-areas-title {
1832
1846
  display: flex;
1833
1847
  justify-content: center;
1834
1848
  }
1835
- .interface-interface-skeleton__actions:focus .edit-site-editor__toggle-save-panel, .interface-interface-skeleton__actions:focus-within .edit-site-editor__toggle-save-panel {
1849
+ .edit-site-layout__actions:focus .edit-site-editor__toggle-save-panel, .edit-site-layout__actions:focus-within .edit-site-editor__toggle-save-panel {
1836
1850
  top: auto;
1837
1851
  bottom: 0;
1838
1852
  }
@@ -2200,28 +2214,9 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar {
2200
2214
  top: 0;
2201
2215
  }
2202
2216
  .edit-site-layout__sidebar > div {
2203
- overflow-y: auto;
2204
- min-height: 100%;
2205
- visibility: hidden;
2206
- scrollbar-color: #757575 #1e1e1e;
2207
- scrollbar-width: thin;
2208
- scrollbar-gutter: stable;
2209
- }
2210
- .edit-site-layout__sidebar > div::-webkit-scrollbar {
2211
- width: 12px;
2212
- height: 12px;
2213
- }
2214
- .edit-site-layout__sidebar > div::-webkit-scrollbar-track {
2215
- background-color: #1e1e1e;
2216
- }
2217
- .edit-site-layout__sidebar > div::-webkit-scrollbar-thumb {
2218
- background-color: #757575;
2219
- border-radius: 8px;
2220
- border: 3px solid transparent;
2221
- background-clip: padding-box;
2222
- }
2223
- .edit-site-layout__sidebar > div:hover, .edit-site-layout__sidebar > div:focus, .edit-site-layout__sidebar > div > * {
2224
- visibility: visible;
2217
+ display: flex;
2218
+ flex-direction: column;
2219
+ height: 100%;
2225
2220
  }
2226
2221
  .edit-site-layout__sidebar .resizable-editor__drag-handle {
2227
2222
  right: 0;
@@ -2324,6 +2319,67 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar {
2324
2319
  border-radius: 2px;
2325
2320
  }
2326
2321
 
2322
+ .edit-site-layout__actions {
2323
+ z-index: 100000;
2324
+ position: fixed !important;
2325
+ top: -9999em;
2326
+ bottom: auto;
2327
+ left: auto;
2328
+ right: 0;
2329
+ width: 280px;
2330
+ color: #1e1e1e;
2331
+ background: #fff;
2332
+ }
2333
+ .edit-site-layout__actions:focus, .edit-site-layout__actions:focus-within {
2334
+ top: 0;
2335
+ bottom: 0;
2336
+ }
2337
+ @media (min-width: 782px) {
2338
+ .edit-site-layout__actions {
2339
+ border-left: 1px solid #ddd;
2340
+ }
2341
+ }
2342
+
2343
+ @media (min-width: 600px) {
2344
+ .edit-site-save-panel__modal {
2345
+ width: 600px;
2346
+ }
2347
+ }
2348
+
2349
+ .edit-site-sidebar__content {
2350
+ flex-grow: 1;
2351
+ overflow-y: auto;
2352
+ visibility: hidden;
2353
+ scrollbar-color: #757575 #1e1e1e;
2354
+ scrollbar-width: thin;
2355
+ scrollbar-gutter: stable;
2356
+ }
2357
+ .edit-site-sidebar__content::-webkit-scrollbar {
2358
+ width: 12px;
2359
+ height: 12px;
2360
+ }
2361
+ .edit-site-sidebar__content::-webkit-scrollbar-track {
2362
+ background-color: #1e1e1e;
2363
+ }
2364
+ .edit-site-sidebar__content::-webkit-scrollbar-thumb {
2365
+ background-color: #757575;
2366
+ border-radius: 8px;
2367
+ border: 3px solid transparent;
2368
+ background-clip: padding-box;
2369
+ }
2370
+ .edit-site-sidebar__content:hover, .edit-site-sidebar__content:focus, .edit-site-sidebar__content > * {
2371
+ visibility: visible;
2372
+ }
2373
+
2374
+ .edit-site-sidebar__footer {
2375
+ border-top: 1px solid #2f2f2f;
2376
+ flex-shrink: 0;
2377
+ margin: 0 24px;
2378
+ padding: 24px 0;
2379
+ display: flex;
2380
+ justify-content: flex-end;
2381
+ }
2382
+
2327
2383
  .edit-site-sidebar__content.edit-site-sidebar__content {
2328
2384
  overflow-x: unset;
2329
2385
  }
@@ -2425,6 +2481,7 @@ body.is-fullscreen-mode .edit-site .components-editor-notices__snackbar {
2425
2481
 
2426
2482
  .edit-site-site-hub__edit-button {
2427
2483
  height: 32px;
2484
+ color: #fff;
2428
2485
  }
2429
2486
 
2430
2487
  .edit-site-site-hub__post-type {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-site",
3
- "version": "5.3.0",
3
+ "version": "5.3.2",
4
4
  "description": "Edit Site Page module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -27,35 +27,35 @@
27
27
  "react-native": "src/index",
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.16.0",
30
- "@wordpress/a11y": "^3.26.0",
31
- "@wordpress/api-fetch": "^6.23.0",
32
- "@wordpress/block-editor": "^11.3.0",
33
- "@wordpress/block-library": "^8.3.0",
34
- "@wordpress/blocks": "^12.3.0",
35
- "@wordpress/components": "^23.3.0",
36
- "@wordpress/compose": "^6.3.0",
37
- "@wordpress/core-data": "^6.3.0",
38
- "@wordpress/data": "^8.3.0",
39
- "@wordpress/deprecated": "^3.26.0",
40
- "@wordpress/editor": "^13.3.0",
41
- "@wordpress/element": "^5.3.0",
42
- "@wordpress/experiments": "^0.8.0",
43
- "@wordpress/hooks": "^3.26.0",
44
- "@wordpress/html-entities": "^3.26.0",
45
- "@wordpress/i18n": "^4.26.0",
46
- "@wordpress/icons": "^9.17.0",
47
- "@wordpress/interface": "^5.3.0",
48
- "@wordpress/keyboard-shortcuts": "^4.3.0",
49
- "@wordpress/keycodes": "^3.26.0",
50
- "@wordpress/media-utils": "^4.17.0",
51
- "@wordpress/notices": "^3.26.0",
52
- "@wordpress/plugins": "^5.3.0",
53
- "@wordpress/preferences": "^3.3.0",
54
- "@wordpress/reusable-blocks": "^4.3.0",
55
- "@wordpress/style-engine": "^1.9.0",
56
- "@wordpress/url": "^3.27.0",
57
- "@wordpress/viewport": "^5.3.0",
58
- "@wordpress/widgets": "^3.3.0",
30
+ "@wordpress/a11y": "^3.26.1",
31
+ "@wordpress/api-fetch": "^6.23.1",
32
+ "@wordpress/block-editor": "^11.3.2",
33
+ "@wordpress/block-library": "^8.3.2",
34
+ "@wordpress/blocks": "^12.3.1",
35
+ "@wordpress/components": "^23.3.1",
36
+ "@wordpress/compose": "^6.3.1",
37
+ "@wordpress/core-data": "^6.3.1",
38
+ "@wordpress/data": "^8.3.1",
39
+ "@wordpress/deprecated": "^3.26.1",
40
+ "@wordpress/editor": "^13.3.2",
41
+ "@wordpress/element": "^5.3.1",
42
+ "@wordpress/experiments": "^0.8.1",
43
+ "@wordpress/hooks": "^3.26.1",
44
+ "@wordpress/html-entities": "^3.26.1",
45
+ "@wordpress/i18n": "^4.26.1",
46
+ "@wordpress/icons": "^9.17.1",
47
+ "@wordpress/interface": "^5.3.2",
48
+ "@wordpress/keyboard-shortcuts": "^4.3.1",
49
+ "@wordpress/keycodes": "^3.26.1",
50
+ "@wordpress/media-utils": "^4.17.1",
51
+ "@wordpress/notices": "^3.26.1",
52
+ "@wordpress/plugins": "^5.3.1",
53
+ "@wordpress/preferences": "^3.3.1",
54
+ "@wordpress/reusable-blocks": "^4.3.2",
55
+ "@wordpress/style-engine": "^1.9.1",
56
+ "@wordpress/url": "^3.27.1",
57
+ "@wordpress/viewport": "^5.3.1",
58
+ "@wordpress/widgets": "^3.3.2",
59
59
  "classnames": "^2.3.1",
60
60
  "colord": "^2.9.2",
61
61
  "downloadjs": "^1.4.7",
@@ -73,5 +73,5 @@
73
73
  "publishConfig": {
74
74
  "access": "public"
75
75
  },
76
- "gitHead": "cab6ebe2b4c5dbacfd753dcae4a2406559c4813c"
76
+ "gitHead": "3eb2c536278d5a17f698b9c378fe3db746a89622"
77
77
  }
@@ -20,6 +20,7 @@ import {
20
20
  getUniqueTemplatePartTitle,
21
21
  getCleanTemplatePartSlug,
22
22
  } from '../../utils/template-part-create';
23
+ import { unlock } from '../../experiments';
23
24
 
24
25
  export default function NewTemplatePart( {
25
26
  postType,
@@ -30,7 +31,7 @@ export default function NewTemplatePart( {
30
31
  const [ isModalOpen, setIsModalOpen ] = useState( false );
31
32
  const { createErrorNotice } = useDispatch( noticesStore );
32
33
  const { saveEntityRecord } = useDispatch( coreStore );
33
- const { __unstableSetCanvasMode } = useDispatch( editSiteStore );
34
+ const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
34
35
  const existingTemplateParts = useExistingTemplateParts();
35
36
 
36
37
  async function createTemplatePart( { title, area } ) {
@@ -63,7 +64,7 @@ export default function NewTemplatePart( {
63
64
  setIsModalOpen( false );
64
65
 
65
66
  // Switch to edit mode.
66
- __unstableSetCanvasMode( 'edit' );
67
+ setCanvasMode( 'edit' );
67
68
 
68
69
  // Navigate to the created template part editor.
69
70
  history.push( {
@@ -48,6 +48,7 @@ import AddCustomGenericTemplateModal from './add-custom-generic-template-modal';
48
48
  import TemplateActionsLoadingScreen from './template-actions-loading-screen';
49
49
  import { useHistory } from '../routes';
50
50
  import { store as editSiteStore } from '../../store';
51
+ import { unlock } from '../../experiments';
51
52
 
52
53
  const DEFAULT_TEMPLATE_SLUGS = [
53
54
  'front-page',
@@ -98,8 +99,9 @@ export default function NewTemplate( {
98
99
  const { saveEntityRecord } = useDispatch( coreStore );
99
100
  const { createErrorNotice, createSuccessNotice } =
100
101
  useDispatch( noticesStore );
101
- const { setTemplate, __unstableSetCanvasMode } =
102
- useDispatch( editSiteStore );
102
+ const { setTemplate, setCanvasMode } = unlock(
103
+ useDispatch( editSiteStore )
104
+ );
103
105
 
104
106
  async function createTemplate( template, isWPSuggestion = true ) {
105
107
  if ( isCreatingTemplate ) {
@@ -140,7 +142,7 @@ export default function NewTemplate( {
140
142
  setTemplate( newTemplate.id, newTemplate.slug );
141
143
 
142
144
  // Switch to edit mode.
143
- __unstableSetCanvasMode( 'edit' );
145
+ setCanvasMode( 'edit' );
144
146
 
145
147
  // Navigate to the created template editor.
146
148
  history.push( {
@@ -8,24 +8,27 @@ import {
8
8
  __unstableUseMouseMoveTypingReset as useMouseMoveTypingReset,
9
9
  store as blockEditorStore,
10
10
  } from '@wordpress/block-editor';
11
- import { useSelect } from '@wordpress/data';
11
+ import { useSelect, useDispatch } from '@wordpress/data';
12
12
 
13
13
  /**
14
14
  * Internal dependencies
15
15
  */
16
+ import { unlock } from '../../experiments';
16
17
  import { store as editSiteStore } from '../../store';
17
18
 
18
19
  function EditorCanvas( { enableResizing, settings, children, ...props } ) {
19
- const { deviceType, isZoomOutMode } = useSelect(
20
+ const { canvasMode, deviceType, isZoomOutMode } = useSelect(
20
21
  ( select ) => ( {
21
22
  deviceType:
22
23
  select( editSiteStore ).__experimentalGetPreviewDeviceType(),
23
24
  isZoomOutMode:
24
25
  select( blockEditorStore ).__unstableGetEditorMode() ===
25
26
  'zoom-out',
27
+ canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
26
28
  } ),
27
29
  []
28
30
  );
31
+ const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
29
32
  const deviceStyles = useResizeCanvas( deviceType );
30
33
  const mouseMoveTypingRef = useMouseMoveTypingReset();
31
34
  return (
@@ -57,6 +60,13 @@ function EditorCanvas( { enableResizing, settings, children, ...props } ) {
57
60
  name="editor-canvas"
58
61
  className="edit-site-visual-editor__editor-canvas"
59
62
  { ...props }
63
+ role={ canvasMode === 'view' ? 'button' : undefined }
64
+ onClick={
65
+ canvasMode === 'view'
66
+ ? () => setCanvasMode( 'edit' )
67
+ : undefined
68
+ }
69
+ readonly={ canvasMode === 'view' }
60
70
  >
61
71
  { /* Filters need to be rendered before children to avoid Safari rendering issues. */ }
62
72
  { settings.svgFilters }
@@ -51,13 +51,14 @@ export default function BlockEditor() {
51
51
  const { setIsInserterOpened } = useDispatch( editSiteStore );
52
52
  const { storedSettings, templateType, canvasMode } = useSelect(
53
53
  ( select ) => {
54
- const { getSettings, getEditedPostType, __unstableGetCanvasMode } =
55
- select( editSiteStore );
54
+ const { getSettings, getEditedPostType, getCanvasMode } = unlock(
55
+ select( editSiteStore )
56
+ );
56
57
 
57
58
  return {
58
59
  storedSettings: getSettings( setIsInserterOpened ),
59
60
  templateType: getEditedPostType(),
60
- canvasMode: __unstableGetCanvasMode(),
61
+ canvasMode: getCanvasMode(),
61
62
  };
62
63
  },
63
64
  [ setIsInserterOpened ]
@@ -158,3 +158,4 @@
158
158
  box-shadow: inset 0 0 0 2px var(--wp-admin-theme-color);
159
159
  }
160
160
  }
161
+
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { useMemo } from '@wordpress/element';
5
5
  import { useSelect, useDispatch } from '@wordpress/data';
6
- import { Button, Notice } from '@wordpress/components';
6
+ import { Notice } from '@wordpress/components';
7
7
  import { EntityProvider, store as coreStore } from '@wordpress/core-data';
8
8
  import { store as preferencesStore } from '@wordpress/preferences';
9
9
  import {
@@ -16,11 +16,7 @@ import {
16
16
  ComplementaryArea,
17
17
  store as interfaceStore,
18
18
  } from '@wordpress/interface';
19
- import {
20
- EditorNotices,
21
- EditorSnackbars,
22
- EntitiesSavedStates,
23
- } from '@wordpress/editor';
19
+ import { EditorNotices, EditorSnackbars } from '@wordpress/editor';
24
20
  import { __ } from '@wordpress/i18n';
25
21
 
26
22
  /**
@@ -38,6 +34,7 @@ import { GlobalStylesRenderer } from '../global-styles-renderer';
38
34
  import { GlobalStylesProvider } from '../global-styles/global-styles-provider';
39
35
  import useTitle from '../routes/use-title';
40
36
  import CanvasSpinner from '../canvas-spinner';
37
+ import { unlock } from '../../experiments';
41
38
 
42
39
  const interfaceLabels = {
43
40
  /* translators: accessibility text for the editor content landmark region. */
@@ -63,7 +60,6 @@ export default function Editor() {
63
60
  isRightSidebarOpen,
64
61
  isInserterOpen,
65
62
  isListViewOpen,
66
- isSaveViewOpen,
67
63
  showIconLabels,
68
64
  } = useSelect( ( select ) => {
69
65
  const {
@@ -71,11 +67,10 @@ export default function Editor() {
71
67
  getEditedPostId,
72
68
  getEditedPostContext,
73
69
  getEditorMode,
74
- __unstableGetCanvasMode,
70
+ getCanvasMode,
75
71
  isInserterOpened,
76
72
  isListViewOpened,
77
- isSaveViewOpened,
78
- } = select( editSiteStore );
73
+ } = unlock( select( editSiteStore ) );
79
74
  const { hasFinishedResolution, getEntityRecord } = select( coreStore );
80
75
  const { __unstableGetEditorMode } = select( blockEditorStore );
81
76
  const { getActiveComplementaryArea } = select( interfaceStore );
@@ -99,11 +94,10 @@ export default function Editor() {
99
94
  ] )
100
95
  : false,
101
96
  editorMode: getEditorMode(),
102
- canvasMode: __unstableGetCanvasMode(),
97
+ canvasMode: getCanvasMode(),
103
98
  blockEditorMode: __unstableGetEditorMode(),
104
99
  isInserterOpen: isInserterOpened(),
105
100
  isListViewOpen: isListViewOpened(),
106
- isSaveViewOpen: isSaveViewOpened(),
107
101
  isRightSidebarOpen: getActiveComplementaryArea(
108
102
  editSiteStore.name
109
103
  ),
@@ -113,8 +107,7 @@ export default function Editor() {
113
107
  ),
114
108
  };
115
109
  }, [] );
116
- const { setIsSaveViewOpened, setEditedPostContext } =
117
- useDispatch( editSiteStore );
110
+ const { setEditedPostContext } = useDispatch( editSiteStore );
118
111
 
119
112
  const isViewMode = canvasMode === 'view';
120
113
  const isEditMode = canvasMode === 'edit';
@@ -210,38 +203,6 @@ export default function Editor() {
210
203
  <ComplementaryArea.Slot scope="core/edit-site" />
211
204
  )
212
205
  }
213
- actions={
214
- isEditMode && (
215
- <>
216
- { isSaveViewOpen ? (
217
- <EntitiesSavedStates
218
- close={ () =>
219
- setIsSaveViewOpened(
220
- false
221
- )
222
- }
223
- />
224
- ) : (
225
- <div className="edit-site-editor__toggle-save-panel">
226
- <Button
227
- variant="secondary"
228
- className="edit-site-editor__toggle-save-panel-button"
229
- onClick={ () =>
230
- setIsSaveViewOpened(
231
- true
232
- )
233
- }
234
- aria-expanded={ false }
235
- >
236
- { __(
237
- 'Open save panel'
238
- ) }
239
- </Button>
240
- </div>
241
- ) }
242
- </>
243
- )
244
- }
245
206
  footer={
246
207
  showBlockBreakcrumb && (
247
208
  <BlockBreadcrumb
@@ -7,8 +7,8 @@
7
7
  display: flex;
8
8
  justify-content: center;
9
9
 
10
- .interface-interface-skeleton__actions:focus &,
11
- .interface-interface-skeleton__actions:focus-within & {
10
+ .edit-site-layout__actions:focus &,
11
+ .edit-site-layout__actions:focus-within & {
12
12
  top: auto;
13
13
  bottom: 0;
14
14
  }
@@ -3,14 +3,9 @@
3
3
  */
4
4
  import { BlockPreview } from '@wordpress/block-editor';
5
5
  import { getBlockType, getBlockFromExample } from '@wordpress/blocks';
6
- import { useResizeObserver } from '@wordpress/compose';
7
6
  import { __experimentalSpacer as Spacer } from '@wordpress/components';
8
7
 
9
8
  const BlockPreviewPanel = ( { name, variation = '' } ) => {
10
- const [
11
- containerResizeListener,
12
- { width: containerWidth, height: containerHeight },
13
- ] = useResizeObserver();
14
9
  const blockExample = getBlockType( name )?.example;
15
10
  const blockExampleWithVariation = {
16
11
  ...blockExample,
@@ -25,23 +20,24 @@ const BlockPreviewPanel = ( { name, variation = '' } ) => {
25
20
  name,
26
21
  variation ? blockExampleWithVariation : blockExample
27
22
  );
28
- const viewportWidth = blockExample?.viewportWidth || containerWidth;
29
- const minHeight = containerHeight;
23
+ const viewportWidth = blockExample?.viewportWidth || null;
24
+ const previewHeight = '150px';
30
25
 
31
26
  return ! blockExample ? null : (
32
27
  <Spacer marginX={ 4 } marginBottom={ 4 }>
33
- <div className="edit-site-global-styles__block-preview-panel">
34
- { containerResizeListener }
35
-
28
+ <div
29
+ className="edit-site-global-styles__block-preview-panel"
30
+ style={ { maxHeight: previewHeight, boxSizing: 'initial' } }
31
+ >
36
32
  <BlockPreview
37
33
  blocks={ blocks }
38
34
  viewportWidth={ viewportWidth }
39
- minHeight={ minHeight }
35
+ minHeight={ previewHeight }
40
36
  additionalStyles={ [
41
37
  {
42
38
  css: `
43
39
  body{
44
- min-height:${ minHeight }px;
40
+ min-height:${ previewHeight };
45
41
  display:flex;align-items:center;justify-content:center;
46
42
  }
47
43
  `,
@@ -12,6 +12,7 @@ import {
12
12
  import {
13
13
  typography,
14
14
  border,
15
+ shadow,
15
16
  color,
16
17
  layout,
17
18
  chevronLeft,
@@ -32,11 +33,13 @@ import { useHasVariationsPanel } from './variations-panel';
32
33
  import { NavigationButtonAsItem } from './navigation-button';
33
34
  import { IconWithCurrentColor } from './icon-with-current-color';
34
35
  import { ScreenVariations } from './screen-variations';
36
+ import { useHasShadowControl } from './shadow-panel';
35
37
 
36
38
  function ContextMenu( { name, parentMenu = '' } ) {
37
39
  const hasTypographyPanel = useHasTypographyPanel( name );
38
40
  const hasColorPanel = useHasColorPanel( name );
39
41
  const hasBorderPanel = useHasBorderPanel( name );
42
+ const hasEffectsPanel = useHasShadowControl( name );
40
43
  const hasDimensionsPanel = useHasDimensionsPanel( name );
41
44
  const hasLayoutPanel = hasDimensionsPanel;
42
45
  const hasVariationsPanel = useHasVariationsPanel( name, parentMenu );
@@ -85,9 +88,18 @@ function ContextMenu( { name, parentMenu = '' } ) {
85
88
  <NavigationButtonAsItem
86
89
  icon={ border }
87
90
  path={ parentMenu + '/border' }
88
- aria-label={ __( 'Border & shadow styles' ) }
91
+ aria-label={ __( 'Border' ) }
89
92
  >
90
- { __( 'Border & Shadow' ) }
93
+ { __( 'Border' ) }
94
+ </NavigationButtonAsItem>
95
+ ) }
96
+ { hasEffectsPanel && (
97
+ <NavigationButtonAsItem
98
+ icon={ shadow }
99
+ path={ parentMenu + '/effects' }
100
+ aria-label={ __( 'Shadow' ) }
101
+ >
102
+ { __( 'Shadow' ) }
91
103
  </NavigationButtonAsItem>
92
104
  ) }
93
105
  { hasLayoutPanel && (
@@ -10,12 +10,10 @@ import ScreenHeader from './header';
10
10
  import BorderPanel, { useHasBorderPanel } from './border-panel';
11
11
  import BlockPreviewPanel from './block-preview-panel';
12
12
  import { getVariationClassName } from './utils';
13
- import ShadowPanel, { useHasShadowControl } from './shadow-panel';
14
13
 
15
14
  function ScreenBorder( { name, variation = '' } ) {
16
15
  const hasBorderPanel = useHasBorderPanel( name );
17
16
  const variationClassName = getVariationClassName( variation );
18
- const hasShadowPanel = useHasShadowControl( name );
19
17
  return (
20
18
  <>
21
19
  <ScreenHeader title={ __( 'Border & Shadow' ) } />
@@ -23,9 +21,6 @@ function ScreenBorder( { name, variation = '' } ) {
23
21
  { hasBorderPanel && (
24
22
  <BorderPanel name={ name } variation={ variation } />
25
23
  ) }
26
- { hasShadowPanel && (
27
- <ShadowPanel name={ name } variation={ variation } />
28
- ) }
29
24
  </>
30
25
  );
31
26
  }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import ScreenHeader from './header';
10
+ import BlockPreviewPanel from './block-preview-panel';
11
+ import { getVariationClassName } from './utils';
12
+ import ShadowPanel, { useHasShadowControl } from './shadow-panel';
13
+
14
+ function ScreenEffects( { name, variation = '' } ) {
15
+ const variationClassName = getVariationClassName( variation );
16
+ const hasShadowPanel = useHasShadowControl( name );
17
+ return (
18
+ <>
19
+ <ScreenHeader title={ __( 'Shadow' ) } />
20
+ <BlockPreviewPanel name={ name } variation={ variationClassName } />
21
+ { hasShadowPanel && (
22
+ <ShadowPanel name={ name } variation={ variation } />
23
+ ) }
24
+ </>
25
+ );
26
+ }
27
+
28
+ export default ScreenEffects;
@@ -129,7 +129,7 @@ function ShadowPopoverContainer( { shadow, onShadowChange } ) {
129
129
  return (
130
130
  <div className="edit-site-global-styles__shadow-panel">
131
131
  <VStack spacing={ 4 }>
132
- <Heading level={ 5 }>{ __( 'Shadows' ) }</Heading>
132
+ <Heading level={ 5 }>{ __( 'Shadow' ) }</Heading>
133
133
  <ShadowPresets
134
134
  presets={ shadows }
135
135
  activeShadow={ shadow }
@@ -1,6 +1,3 @@
1
- // Variables
2
- $block-preview-height: 150px;
3
-
4
1
  .edit-site-global-styles-preview {
5
2
  display: flex;
6
3
  align-items: center;
@@ -130,7 +127,6 @@ $block-preview-height: 150px;
130
127
  .edit-site-global-styles__block-preview-panel {
131
128
  position: relative;
132
129
  width: 100%;
133
- height: $block-preview-height + 2 * $border-width;
134
130
  overflow: auto;
135
131
  border: $gray-200 $border-width solid;
136
132
  border-radius: $radius-block-ui;