@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.
Files changed (252) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-template/{add-custom-generic-template-modal.js → add-custom-generic-template-modal-content.js} +7 -22
  3. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -0
  4. package/build/components/add-new-template/{add-custom-template-modal.js → add-custom-template-modal-content.js} +11 -21
  5. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -0
  6. package/build/components/add-new-template/new-template.js +98 -65
  7. package/build/components/add-new-template/new-template.js.map +1 -1
  8. package/build/components/block-editor/index.js +1 -3
  9. package/build/components/block-editor/index.js.map +1 -1
  10. package/build/components/create-template-part-modal/index.js +6 -7
  11. package/build/components/create-template-part-modal/index.js.map +1 -1
  12. package/build/components/editor/index.js +15 -40
  13. package/build/components/editor/index.js.map +1 -1
  14. package/build/components/editor-canvas-container/index.js +10 -3
  15. package/build/components/editor-canvas-container/index.js.map +1 -1
  16. package/build/components/global-styles/screen-block.js +80 -3
  17. package/build/components/global-styles/screen-block.js.map +1 -1
  18. package/build/components/global-styles/screen-revisions/index.js +3 -10
  19. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  20. package/build/components/global-styles/screen-revisions/revisions-buttons.js +16 -18
  21. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  22. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -24
  23. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  24. package/build/components/global-styles/screen-root.js +4 -4
  25. package/build/components/global-styles/screen-root.js.map +1 -1
  26. package/build/components/global-styles/style-variations-container.js +6 -10
  27. package/build/components/global-styles/style-variations-container.js.map +1 -1
  28. package/build/components/global-styles/ui.js +9 -9
  29. package/build/components/global-styles/ui.js.map +1 -1
  30. package/build/components/header-edit-mode/document-actions/index.js +28 -103
  31. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  32. package/build/components/header-edit-mode/index.js +14 -1
  33. package/build/components/header-edit-mode/index.js.map +1 -1
  34. package/build/components/layout/hooks.js +54 -0
  35. package/build/components/layout/hooks.js.map +1 -0
  36. package/build/components/layout/index.js +45 -98
  37. package/build/components/layout/index.js.map +1 -1
  38. package/build/components/list/actions/index.js +5 -2
  39. package/build/components/list/actions/index.js.map +1 -1
  40. package/build/components/resizable-frame/index.js +242 -0
  41. package/build/components/resizable-frame/index.js.map +1 -0
  42. package/build/components/revisions/index.js +2 -1
  43. package/build/components/revisions/index.js.map +1 -1
  44. package/build/components/secondary-sidebar/list-view-sidebar.js +4 -3
  45. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  46. package/build/components/sidebar/index.js +4 -4
  47. package/build/components/sidebar/index.js.map +1 -1
  48. package/build/components/sidebar-edit-mode/template-revisions/index.js +1 -1
  49. package/build/components/sidebar-edit-mode/template-revisions/index.js.map +1 -1
  50. package/build/components/sidebar-navigation-screen-global-styles/index.js +75 -11
  51. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  52. package/build/components/sidebar-navigation-screen-main/index.js +24 -33
  53. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  54. package/build/components/sidebar-navigation-screen-navigation-menu/index.js +162 -0
  55. package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -0
  56. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js +17 -0
  57. package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -0
  58. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +53 -103
  59. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  60. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +87 -0
  61. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -0
  62. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +14 -71
  63. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  64. package/build/components/sidebar-navigation-screen-navigation-menus/navigator-button.js +53 -0
  65. package/build/components/sidebar-navigation-screen-navigation-menus/navigator-button.js.map +1 -0
  66. package/build/components/sidebar-navigation-screen-templates/index.js +36 -11
  67. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  68. package/build/components/site-hub/index.js +1 -3
  69. package/build/components/site-hub/index.js.map +1 -1
  70. package/build/components/style-book/index.js +93 -19
  71. package/build/components/style-book/index.js.map +1 -1
  72. package/build/components/use-edited-entity-record/index.js +8 -4
  73. package/build/components/use-edited-entity-record/index.js.map +1 -1
  74. package/build/hooks/commands/use-edit-mode-commands.js +105 -0
  75. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -0
  76. package/build/store/actions.js +5 -3
  77. package/build/store/actions.js.map +1 -1
  78. package/build-module/components/add-new-template/{add-custom-generic-template-modal.js → add-custom-generic-template-modal-content.js} +8 -20
  79. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -0
  80. package/build-module/components/add-new-template/{add-custom-template-modal.js → add-custom-template-modal-content.js} +13 -22
  81. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -0
  82. package/build-module/components/add-new-template/new-template.js +98 -67
  83. package/build-module/components/add-new-template/new-template.js.map +1 -1
  84. package/build-module/components/block-editor/index.js +1 -3
  85. package/build-module/components/block-editor/index.js.map +1 -1
  86. package/build-module/components/create-template-part-modal/index.js +7 -8
  87. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  88. package/build-module/components/editor/index.js +16 -43
  89. package/build-module/components/editor/index.js.map +1 -1
  90. package/build-module/components/editor-canvas-container/index.js +7 -3
  91. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  92. package/build-module/components/global-styles/screen-block.js +82 -4
  93. package/build-module/components/global-styles/screen-block.js.map +1 -1
  94. package/build-module/components/global-styles/screen-revisions/index.js +3 -10
  95. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  96. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +16 -19
  97. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  98. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -24
  99. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  100. package/build-module/components/global-styles/screen-root.js +4 -4
  101. package/build-module/components/global-styles/screen-root.js.map +1 -1
  102. package/build-module/components/global-styles/style-variations-container.js +7 -11
  103. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  104. package/build-module/components/global-styles/ui.js +10 -10
  105. package/build-module/components/global-styles/ui.js.map +1 -1
  106. package/build-module/components/header-edit-mode/document-actions/index.js +31 -107
  107. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  108. package/build-module/components/header-edit-mode/index.js +14 -2
  109. package/build-module/components/header-edit-mode/index.js.map +1 -1
  110. package/build-module/components/layout/hooks.js +41 -0
  111. package/build-module/components/layout/hooks.js.map +1 -0
  112. package/build-module/components/layout/index.js +46 -101
  113. package/build-module/components/layout/index.js.map +1 -1
  114. package/build-module/components/list/actions/index.js +6 -3
  115. package/build-module/components/list/actions/index.js.map +1 -1
  116. package/build-module/components/resizable-frame/index.js +228 -0
  117. package/build-module/components/resizable-frame/index.js.map +1 -0
  118. package/build-module/components/revisions/index.js +2 -1
  119. package/build-module/components/revisions/index.js.map +1 -1
  120. package/build-module/components/secondary-sidebar/list-view-sidebar.js +3 -3
  121. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  122. package/build-module/components/sidebar/index.js +3 -3
  123. package/build-module/components/sidebar/index.js.map +1 -1
  124. package/build-module/components/sidebar-edit-mode/template-revisions/index.js +1 -1
  125. package/build-module/components/sidebar-edit-mode/template-revisions/index.js.map +1 -1
  126. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +70 -14
  127. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  128. package/build-module/components/sidebar-navigation-screen-main/index.js +21 -32
  129. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  130. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +141 -0
  131. package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -0
  132. package/build-module/components/sidebar-navigation-screen-navigation-menus/constants.js +10 -0
  133. package/build-module/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -0
  134. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +52 -103
  135. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  136. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +71 -0
  137. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -0
  138. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +12 -71
  139. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  140. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigator-button.js +40 -0
  141. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigator-button.js.map +1 -0
  142. package/build-module/components/sidebar-navigation-screen-templates/index.js +35 -11
  143. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  144. package/build-module/components/site-hub/index.js +1 -3
  145. package/build-module/components/site-hub/index.js.map +1 -1
  146. package/build-module/components/style-book/index.js +93 -20
  147. package/build-module/components/style-book/index.js.map +1 -1
  148. package/build-module/components/use-edited-entity-record/index.js +8 -4
  149. package/build-module/components/use-edited-entity-record/index.js.map +1 -1
  150. package/build-module/hooks/commands/use-edit-mode-commands.js +86 -0
  151. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -0
  152. package/build-module/store/actions.js +5 -3
  153. package/build-module/store/actions.js.map +1 -1
  154. package/build-style/style-rtl.css +233 -210
  155. package/build-style/style.css +234 -210
  156. package/package.json +37 -37
  157. package/src/components/add-new-template/add-custom-generic-template-modal-content.js +82 -0
  158. package/src/components/add-new-template/{add-custom-template-modal.js → add-custom-template-modal-content.js} +13 -26
  159. package/src/components/add-new-template/new-template.js +139 -153
  160. package/src/components/add-new-template/style.scss +79 -66
  161. package/src/components/block-editor/index.js +2 -3
  162. package/src/components/create-template-part-modal/index.js +19 -25
  163. package/src/components/editor/index.js +16 -45
  164. package/src/components/editor/style.scss +21 -6
  165. package/src/components/editor-canvas-container/index.js +28 -19
  166. package/src/components/global-styles/screen-block.js +74 -3
  167. package/src/components/global-styles/screen-revisions/index.js +3 -11
  168. package/src/components/global-styles/screen-revisions/revisions-buttons.js +33 -25
  169. package/src/components/global-styles/screen-revisions/style.scss +3 -2
  170. package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +16 -3
  171. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -19
  172. package/src/components/global-styles/screen-root.js +5 -3
  173. package/src/components/global-styles/style-variations-container.js +13 -18
  174. package/src/components/global-styles/style.scss +3 -0
  175. package/src/components/global-styles/ui.js +11 -9
  176. package/src/components/header-edit-mode/document-actions/index.js +26 -129
  177. package/src/components/header-edit-mode/document-actions/style.scss +28 -59
  178. package/src/components/header-edit-mode/index.js +18 -0
  179. package/src/components/header-edit-mode/style.scss +1 -0
  180. package/src/components/layout/hooks.js +46 -0
  181. package/src/components/layout/index.js +56 -125
  182. package/src/components/layout/style.scss +8 -2
  183. package/src/components/list/actions/index.js +12 -5
  184. package/src/components/list/style.scss +1 -0
  185. package/src/components/resizable-frame/index.js +253 -0
  186. package/src/components/resizable-frame/style.scss +69 -0
  187. package/src/components/revisions/index.js +1 -0
  188. package/src/components/secondary-sidebar/list-view-sidebar.js +2 -1
  189. package/src/components/sidebar/index.js +4 -4
  190. package/src/components/sidebar-edit-mode/template-revisions/index.js +1 -2
  191. package/src/components/sidebar-navigation-item/style.scss +9 -0
  192. package/src/components/sidebar-navigation-screen/style.scss +1 -2
  193. package/src/components/sidebar-navigation-screen-global-styles/index.js +106 -21
  194. package/src/components/sidebar-navigation-screen-main/index.js +35 -52
  195. package/src/components/sidebar-navigation-screen-navigation-menu/index.js +157 -0
  196. package/src/components/sidebar-navigation-screen-navigation-menus/constants.js +9 -0
  197. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +63 -117
  198. package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +83 -0
  199. package/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +6 -72
  200. package/src/components/sidebar-navigation-screen-navigation-menus/navigator-button.js +47 -0
  201. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +6 -20
  202. package/src/components/sidebar-navigation-screen-templates/index.js +53 -14
  203. package/src/components/site-hub/index.js +8 -9
  204. package/src/components/start-template-options/style.scss +20 -21
  205. package/src/components/style-book/index.js +132 -43
  206. package/src/components/style-book/style.scss +19 -0
  207. package/src/components/use-edited-entity-record/index.js +12 -3
  208. package/src/hooks/commands/use-edit-mode-commands.js +79 -0
  209. package/src/store/actions.js +4 -5
  210. package/src/store/test/utils.js +15 -5
  211. package/src/style.scss +1 -1
  212. package/build/components/add-new-template/add-custom-generic-template-modal.js.map +0 -1
  213. package/build/components/add-new-template/add-custom-template-modal.js.map +0 -1
  214. package/build/components/global-styles/border-panel.js +0 -135
  215. package/build/components/global-styles/border-panel.js.map +0 -1
  216. package/build/components/navigate-to-link/index.js +0 -51
  217. package/build/components/navigate-to-link/index.js.map +0 -1
  218. package/build/components/sidebar-navigation-screen-navigation-menus/loader.js +0 -19
  219. package/build/components/sidebar-navigation-screen-navigation-menus/loader.js.map +0 -1
  220. package/build/components/template-details/edit-template-title.js +0 -42
  221. package/build/components/template-details/edit-template-title.js.map +0 -1
  222. package/build/components/template-details/index.js +0 -103
  223. package/build/components/template-details/index.js.map +0 -1
  224. package/build/components/template-details/template-areas.js +0 -166
  225. package/build/components/template-details/template-areas.js.map +0 -1
  226. package/build/components/template-details/template-part-area-selector.js +0 -48
  227. package/build/components/template-details/template-part-area-selector.js.map +0 -1
  228. package/build-module/components/add-new-template/add-custom-generic-template-modal.js.map +0 -1
  229. package/build-module/components/add-new-template/add-custom-template-modal.js.map +0 -1
  230. package/build-module/components/global-styles/border-panel.js +0 -125
  231. package/build-module/components/global-styles/border-panel.js.map +0 -1
  232. package/build-module/components/navigate-to-link/index.js +0 -39
  233. package/build-module/components/navigate-to-link/index.js.map +0 -1
  234. package/build-module/components/sidebar-navigation-screen-navigation-menus/loader.js +0 -11
  235. package/build-module/components/sidebar-navigation-screen-navigation-menus/loader.js.map +0 -1
  236. package/build-module/components/template-details/edit-template-title.js +0 -33
  237. package/build-module/components/template-details/edit-template-title.js.map +0 -1
  238. package/build-module/components/template-details/index.js +0 -83
  239. package/build-module/components/template-details/index.js.map +0 -1
  240. package/build-module/components/template-details/template-areas.js +0 -145
  241. package/build-module/components/template-details/template-areas.js.map +0 -1
  242. package/build-module/components/template-details/template-part-area-selector.js +0 -36
  243. package/build-module/components/template-details/template-part-area-selector.js.map +0 -1
  244. package/src/components/add-new-template/add-custom-generic-template-modal.js +0 -101
  245. package/src/components/global-styles/border-panel.js +0 -114
  246. package/src/components/navigate-to-link/index.js +0 -46
  247. package/src/components/sidebar-navigation-screen-navigation-menus/loader.js +0 -9
  248. package/src/components/template-details/edit-template-title.js +0 -41
  249. package/src/components/template-details/index.js +0 -113
  250. package/src/components/template-details/style.scss +0 -72
  251. package/src/components/template-details/template-areas.js +0 -167
  252. package/src/components/template-details/template-part-area-selector.js +0 -39
@@ -9,29 +9,21 @@ exports.default = DocumentActions;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
- var _classnames = _interopRequireDefault(require("classnames"));
13
-
14
12
  var _i18n = require("@wordpress/i18n");
15
13
 
16
- var _blocks = require("@wordpress/blocks");
17
-
18
14
  var _data = require("@wordpress/data");
19
15
 
20
16
  var _components = require("@wordpress/components");
21
17
 
22
- var _icons = require("@wordpress/icons");
23
-
24
18
  var _blockEditor = require("@wordpress/block-editor");
25
19
 
26
- var _preferences = require("@wordpress/preferences");
20
+ var _commands = require("@wordpress/commands");
27
21
 
28
- var _templateDetails = _interopRequireDefault(require("../../template-details"));
22
+ var _keycodes = require("@wordpress/keycodes");
29
23
 
30
24
  var _useEditedEntityRecord = _interopRequireDefault(require("../../use-edited-entity-record"));
31
25
 
32
- /**
33
- * External dependencies
34
- */
26
+ var _privateApis = require("../../../private-apis");
35
27
 
36
28
  /**
37
29
  * WordPress dependencies
@@ -40,120 +32,53 @@ var _useEditedEntityRecord = _interopRequireDefault(require("../../use-edited-en
40
32
  /**
41
33
  * Internal dependencies
42
34
  */
43
- function getBlockDisplayText(block) {
44
- if (block) {
45
- const blockType = (0, _blocks.getBlockType)(block.name);
46
- return blockType ? (0, _blocks.__experimentalGetBlockLabel)(blockType, block.attributes) : null;
47
- }
48
-
49
- return null;
50
- }
51
-
52
- function useSecondaryText() {
53
- const {
54
- getBlock
55
- } = (0, _data.useSelect)(_blockEditor.store);
56
- const activeEntityBlockId = (0, _data.useSelect)(select => select(_blockEditor.store).__experimentalGetActiveBlockIdByBlockNames(['core/template-part']), []);
57
- const blockInformation = (0, _blockEditor.useBlockDisplayInformation)(activeEntityBlockId);
58
-
59
- if (activeEntityBlockId) {
60
- return {
61
- label: getBlockDisplayText(getBlock(activeEntityBlockId)),
62
- isActive: true,
63
- icon: blockInformation === null || blockInformation === void 0 ? void 0 : blockInformation.icon
64
- };
65
- }
66
-
67
- return {};
68
- }
35
+ const {
36
+ store: commandsStore
37
+ } = (0, _privateApis.unlock)(_commands.privateApis);
69
38
 
70
39
  function DocumentActions() {
71
- const showIconLabels = (0, _data.useSelect)(select => select(_preferences.store).get('core/edit-site', 'showIconLabels'), []);
40
+ const {
41
+ open: openCommandCenter
42
+ } = (0, _data.useDispatch)(commandsStore);
72
43
  const {
73
44
  isLoaded,
74
45
  record,
75
- getTitle
76
- } = (0, _useEditedEntityRecord.default)();
77
- const {
78
- label,
46
+ getTitle,
79
47
  icon
80
- } = useSecondaryText(); // Use internal state instead of a ref to make sure that the component
81
- // re-renders when the popover's anchor updates.
82
-
83
- const [popoverAnchor, setPopoverAnchor] = (0, _element.useState)(null); // Memoize popoverProps to avoid returning a new object every time.
84
-
85
- const popoverProps = (0, _element.useMemo)(() => ({
86
- // Use the title wrapper as the popover anchor so that the dropdown is
87
- // centered over the whole title area rather than just one part of it.
88
- anchor: popoverAnchor,
89
- placement: 'bottom'
90
- }), [popoverAnchor]); // Return a simple loading indicator until we have information to show.
48
+ } = (0, _useEditedEntityRecord.default)(); // Return a simple loading indicator until we have information to show.
91
49
 
92
50
  if (!isLoaded) {
93
- return (0, _element.createElement)("div", {
94
- className: "edit-site-document-actions"
95
- }, (0, _i18n.__)('Loading…'));
51
+ return null;
96
52
  } // Return feedback that the template does not seem to exist.
97
53
 
98
54
 
99
55
  if (!record) {
100
56
  return (0, _element.createElement)("div", {
101
57
  className: "edit-site-document-actions"
102
- }, (0, _i18n.__)('Template not found'));
58
+ }, (0, _i18n.__)('Document not found'));
103
59
  }
104
60
 
105
61
  const entityLabel = record.type === 'wp_template_part' ? (0, _i18n.__)('template part') : (0, _i18n.__)('template');
106
- return (0, _element.createElement)("div", {
107
- className: (0, _classnames.default)('edit-site-document-actions', {
108
- 'has-secondary-label': !!label
109
- })
110
- }, (0, _element.createElement)("div", {
111
- ref: setPopoverAnchor,
112
- className: "edit-site-document-actions__title-wrapper"
113
- }, (0, _element.createElement)(_components.__experimentalText, {
62
+ return (0, _element.createElement)(_components.Button, {
63
+ className: "edit-site-document-actions",
64
+ onClick: () => openCommandCenter()
65
+ }, (0, _element.createElement)("span", {
66
+ className: "edit-site-document-actions__left"
67
+ }), (0, _element.createElement)(_components.__experimentalHStack, {
68
+ spacing: 1,
69
+ justify: "center",
70
+ className: "edit-site-document-actions__title"
71
+ }, (0, _element.createElement)(_blockEditor.BlockIcon, {
72
+ icon: icon
73
+ }), (0, _element.createElement)(_components.__experimentalText, {
114
74
  size: "body",
115
- className: "edit-site-document-actions__title",
116
75
  as: "h1"
117
76
  }, (0, _element.createElement)(_components.VisuallyHidden, {
118
77
  as: "span"
119
78
  }, (0, _i18n.sprintf)(
120
79
  /* translators: %s: the entity being edited, like "template"*/
121
- (0, _i18n.__)('Editing %s: '), entityLabel)), getTitle()), (0, _element.createElement)("div", {
122
- className: "edit-site-document-actions__secondary-item"
123
- }, (0, _element.createElement)(_blockEditor.BlockIcon, {
124
- icon: icon,
125
- showColors: true
126
- }), (0, _element.createElement)(_components.__experimentalText, {
127
- size: "body"
128
- }, label !== null && label !== void 0 ? label : '')), (0, _element.createElement)(_components.Dropdown, {
129
- popoverProps: popoverProps,
130
- renderToggle: _ref => {
131
- let {
132
- isOpen,
133
- onToggle
134
- } = _ref;
135
- return (0, _element.createElement)(_components.Button, {
136
- className: "edit-site-document-actions__get-info",
137
- icon: _icons.chevronDown,
138
- "aria-expanded": isOpen,
139
- "aria-haspopup": "true",
140
- onClick: onToggle,
141
- variant: showIconLabels ? 'tertiary' : undefined,
142
- label: (0, _i18n.sprintf)(
143
- /* translators: %s: the entity to see details about, like "template"*/
144
- (0, _i18n.__)('Show %s details'), entityLabel)
145
- }, showIconLabels && (0, _i18n.__)('Details'));
146
- },
147
- contentClassName: "edit-site-document-actions__info-dropdown",
148
- renderContent: _ref2 => {
149
- let {
150
- onClose
151
- } = _ref2;
152
- return (0, _element.createElement)(_templateDetails.default, {
153
- template: record,
154
- onClose: onClose
155
- });
156
- }
157
- })));
80
+ (0, _i18n.__)('Editing %s: '), entityLabel)), getTitle())), (0, _element.createElement)("span", {
81
+ className: "edit-site-document-actions__shortcut"
82
+ }, _keycodes.displayShortcut.primary('k')));
158
83
  }
159
84
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/header-edit-mode/document-actions/index.js"],"names":["getBlockDisplayText","block","blockType","name","attributes","useSecondaryText","getBlock","blockEditorStore","activeEntityBlockId","select","__experimentalGetActiveBlockIdByBlockNames","blockInformation","label","isActive","icon","DocumentActions","showIconLabels","preferencesStore","get","isLoaded","record","getTitle","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","entityLabel","type","isOpen","onToggle","chevronDown","undefined","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { sprintf, __ } from '@wordpress/i18n';\nimport {\n\t__experimentalGetBlockLabel as getBlockLabel,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tDropdown,\n\tButton,\n\tVisuallyHidden,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { chevronDown } from '@wordpress/icons';\nimport { useState, useMemo } from '@wordpress/element';\nimport {\n\tstore as blockEditorStore,\n\tuseBlockDisplayInformation,\n\tBlockIcon,\n} from '@wordpress/block-editor';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport TemplateDetails from '../../template-details';\nimport useEditedEntityRecord from '../../use-edited-entity-record';\n\nfunction getBlockDisplayText( block ) {\n\tif ( block ) {\n\t\tconst blockType = getBlockType( block.name );\n\t\treturn blockType ? getBlockLabel( blockType, block.attributes ) : null;\n\t}\n\treturn null;\n}\n\nfunction useSecondaryText() {\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst activeEntityBlockId = useSelect(\n\t\t( select ) =>\n\t\t\tselect(\n\t\t\t\tblockEditorStore\n\t\t\t).__experimentalGetActiveBlockIdByBlockNames( [\n\t\t\t\t'core/template-part',\n\t\t\t] ),\n\t\t[]\n\t);\n\n\tconst blockInformation = useBlockDisplayInformation( activeEntityBlockId );\n\n\tif ( activeEntityBlockId ) {\n\t\treturn {\n\t\t\tlabel: getBlockDisplayText( getBlock( activeEntityBlockId ) ),\n\t\t\tisActive: true,\n\t\t\ticon: blockInformation?.icon,\n\t\t};\n\t}\n\n\treturn {};\n}\n\nexport default function DocumentActions() {\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t[]\n\t);\n\tconst { isLoaded, record, getTitle } = useEditedEntityRecord();\n\tconst { label, icon } = useSecondaryText();\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Use the title wrapper as the popover anchor so that the dropdown is\n\t\t\t// centered over the whole title area rather than just one part of it.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'bottom',\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\t// Return a simple loading indicator until we have information to show.\n\tif ( ! isLoaded ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Loading…' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Return feedback that the template does not seem to exist.\n\tif ( ! record ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Template not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst entityLabel =\n\t\trecord.type === 'wp_template_part'\n\t\t\t? __( 'template part' )\n\t\t\t: __( 'template' );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-document-actions', {\n\t\t\t\t'has-secondary-label': !! label,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\tclassName=\"edit-site-document-actions__title-wrapper\"\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tclassName=\"edit-site-document-actions__title\"\n\t\t\t\t\tas=\"h1\"\n\t\t\t\t>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: the entity being edited, like \"template\"*/\n\t\t\t\t\t\t\t__( 'Editing %s: ' ),\n\t\t\t\t\t\t\tentityLabel\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t{ getTitle() }\n\t\t\t\t</Text>\n\t\t\t\t<div className=\"edit-site-document-actions__secondary-item\">\n\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t<Text size=\"body\">{ label ?? '' }</Text>\n\t\t\t\t</div>\n\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"edit-site-document-actions__get-info\"\n\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: the entity to see details about, like \"template\"*/\n\t\t\t\t\t\t\t\t__( 'Show %s details' ),\n\t\t\t\t\t\t\t\tentityLabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ showIconLabels && __( 'Details' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\tcontentClassName=\"edit-site-document-actions__info-dropdown\"\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<TemplateDetails\n\t\t\t\t\t\t\ttemplate={ record }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/header-edit-mode/document-actions/index.js"],"names":["store","commandsStore","commandsPrivateApis","DocumentActions","open","openCommandCenter","isLoaded","record","getTitle","icon","entityLabel","type","displayShortcut","primary"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AAKA;;AACA;;AAnBA;AACA;AACA;;AAaA;AACA;AACA;AAIA,MAAM;AAAEA,EAAAA,KAAK,EAAEC;AAAT,IAA2B,yBAAQC,qBAAR,CAAjC;;AAEe,SAASC,eAAT,GAA2B;AACzC,QAAM;AAAEC,IAAAA,IAAI,EAAEC;AAAR,MAA8B,uBAAaJ,aAAb,CAApC;AACA,QAAM;AAAEK,IAAAA,QAAF;AAAYC,IAAAA,MAAZ;AAAoBC,IAAAA,QAApB;AAA8BC,IAAAA;AAA9B,MAAuC,qCAA7C,CAFyC,CAIzC;;AACA,MAAK,CAAEH,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA,GAPwC,CASzC;;;AACA,MAAK,CAAEC,MAAP,EAAgB;AACf,WACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACG,cAAI,oBAAJ,CADH,CADD;AAKA;;AAED,QAAMG,WAAW,GAChBH,MAAM,CAACI,IAAP,KAAgB,kBAAhB,GACG,cAAI,eAAJ,CADH,GAEG,cAAI,UAAJ,CAHJ;AAKA,SACC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAC,4BADX;AAEC,IAAA,OAAO,EAAG,MAAMN,iBAAiB;AAFlC,KAIC;AAAM,IAAA,SAAS,EAAC;AAAhB,IAJD,EAKC,4BAAC,gCAAD;AACC,IAAA,OAAO,EAAG,CADX;AAEC,IAAA,OAAO,EAAC,QAFT;AAGC,IAAA,SAAS,EAAC;AAHX,KAKC,4BAAC,sBAAD;AAAW,IAAA,IAAI,EAAGI;AAAlB,IALD,EAMC,4BAAC,8BAAD;AAAM,IAAA,IAAI,EAAC,MAAX;AAAkB,IAAA,EAAE,EAAC;AAArB,KACC,4BAAC,0BAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,KACG;AACD;AACA,gBAAI,cAAJ,CAFC,EAGDC,WAHC,CADH,CADD,EAQGF,QAAQ,EARX,CAND,CALD,EAsBC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGI,0BAAgBC,OAAhB,CAAyB,GAAzB,CADH,CAtBD,CADD;AA4BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tVisuallyHidden,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { privateApis as commandsPrivateApis } from '@wordpress/commands';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport useEditedEntityRecord from '../../use-edited-entity-record';\nimport { unlock } from '../../../private-apis';\n\nconst { store: commandsStore } = unlock( commandsPrivateApis );\n\nexport default function DocumentActions() {\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\tconst { isLoaded, record, getTitle, icon } = useEditedEntityRecord();\n\n\t// Return a simple loading indicator until we have information to show.\n\tif ( ! isLoaded ) {\n\t\treturn null;\n\t}\n\n\t// Return feedback that the template does not seem to exist.\n\tif ( ! record ) {\n\t\treturn (\n\t\t\t<div className=\"edit-site-document-actions\">\n\t\t\t\t{ __( 'Document not found' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst entityLabel =\n\t\trecord.type === 'wp_template_part'\n\t\t\t? __( 'template part' )\n\t\t\t: __( 'template' );\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"edit-site-document-actions\"\n\t\t\tonClick={ () => openCommandCenter() }\n\t\t>\n\t\t\t<span className=\"edit-site-document-actions__left\"></span>\n\t\t\t<HStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"edit-site-document-actions__title\"\n\t\t\t>\n\t\t\t\t<BlockIcon icon={ icon } />\n\t\t\t\t<Text size=\"body\" as=\"h1\">\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: the entity being edited, like \"template\"*/\n\t\t\t\t\t\t\t__( 'Editing %s: ' ),\n\t\t\t\t\t\t\tentityLabel\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t{ getTitle() }\n\t\t\t\t</Text>\n\t\t\t</HStack>\n\t\t\t<span className=\"edit-site-document-actions__shortcut\">\n\t\t\t\t{ displayShortcut.primary( 'k' ) }\n\t\t\t</span>\n\t\t</Button>\n\t);\n}\n"]}
@@ -58,6 +58,10 @@ var _privateApis = require("../../private-apis");
58
58
  /**
59
59
  * Internal dependencies
60
60
  */
61
+ const {
62
+ useShouldContextualToolbarShow
63
+ } = (0, _privateApis.unlock)(_blockEditor.privateApis);
64
+
61
65
  const preventDefault = event => {
62
66
  event.preventDefault();
63
67
  };
@@ -132,6 +136,14 @@ function HeaderEditMode() {
132
136
  }
133
137
  }, [isInserterOpen, setIsInserterOpened]);
134
138
  const toggleListView = (0, _element.useCallback)(() => setIsListViewOpened(!isListViewOpen), [setIsListViewOpened, isListViewOpen]);
139
+ const {
140
+ shouldShowContextualToolbar,
141
+ canFocusHiddenToolbar,
142
+ fixedToolbarCanBeFocused
143
+ } = useShouldContextualToolbarShow(); // If there's a block toolbar to be focused, disable the focus shortcut for the document toolbar.
144
+ // There's a fixed block toolbar when the fixed toolbar option is enabled or when the browser width is less than the large viewport.
145
+
146
+ const blockToolbarCanBeFocused = shouldShowContextualToolbar || canFocusHiddenToolbar || fixedToolbarCanBeFocused;
135
147
  const hasDefaultEditorCanvasView = !(0, _editorCanvasContainer.useHasEditorCanvasContainer)();
136
148
  const isFocusMode = templateType === 'wp_template_part';
137
149
  /* translators: button label text should, if possible, be under 16 characters. */
@@ -146,7 +158,8 @@ function HeaderEditMode() {
146
158
  })
147
159
  }, hasDefaultEditorCanvasView && (0, _element.createElement)(_blockEditor.NavigableToolbar, {
148
160
  className: "edit-site-header-edit-mode__start",
149
- "aria-label": (0, _i18n.__)('Document tools')
161
+ "aria-label": (0, _i18n.__)('Document tools'),
162
+ shouldUseKeyboardFocusShortcut: !blockToolbarCanBeFocused
150
163
  }, (0, _element.createElement)("div", {
151
164
  className: "edit-site-header-edit-mode__toolbar"
152
165
  }, (0, _element.createElement)(_components.ToolbarItem, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/header-edit-mode/index.js"],"names":["preventDefault","event","HeaderEditMode","inserterButton","deviceType","templateType","isInserterOpen","isListViewOpen","listViewShortcut","isVisualMode","blockEditorMode","homeUrl","showIconLabels","editorCanvasView","select","__experimentalGetPreviewDeviceType","getEditedPostType","isInserterOpened","isListViewOpened","getEditorMode","editSiteStore","getShortcutRepresentation","keyboardShortcutsStore","__unstableGetEditorMode","blockEditorStore","postType","getUnstableBase","coreStore","home","preferencesStore","get","getEditorCanvasContainerView","__experimentalSetPreviewDeviceType","setPreviewDeviceType","setIsInserterOpened","setIsListViewOpened","__unstableSetEditorMode","isLargeViewport","toggleInserter","current","focus","toggleListView","hasDefaultEditorCanvasView","isFocusMode","longLabel","shortLabel","isZoomedOutViewExperimentEnabled","window","__experimentalEnableZoomedOutView","isZoomedOutView","Button","plus","ToolSelector","undefined","UndoButton","RedoButton","listView","chevronUpDown","external"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tToolSelector,\n\t__experimentalPreviewOptions as PreviewOptions,\n\tNavigableToolbar,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { PinnedItems } from '@wordpress/interface';\nimport { _x, __ } from '@wordpress/i18n';\nimport { listView, plus, external, chevronUpDown } from '@wordpress/icons';\nimport {\n\tButton,\n\tToolbarItem,\n\tMenuGroup,\n\tMenuItem,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport MoreMenu from './more-menu';\nimport SaveButton from '../save-button';\nimport UndoButton from './undo-redo/undo';\nimport RedoButton from './undo-redo/redo';\nimport DocumentActions from './document-actions';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tgetEditorCanvasContainerTitle,\n\tuseHasEditorCanvasContainer,\n} from '../editor-canvas-container';\nimport { unlock } from '../../private-apis';\n\nconst preventDefault = ( event ) => {\n\tevent.preventDefault();\n};\n\nexport default function HeaderEditMode() {\n\tconst inserterButton = useRef();\n\tconst {\n\t\tdeviceType,\n\t\ttemplateType,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tlistViewShortcut,\n\t\tisVisualMode,\n\t\tblockEditorMode,\n\t\thomeUrl,\n\t\tshowIconLabels,\n\t\teditorCanvasView,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetPreviewDeviceType,\n\t\t\tgetEditedPostType,\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t\tgetEditorMode,\n\t\t} = select( editSiteStore );\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\n\t\tconst postType = getEditedPostType();\n\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\n\t\treturn {\n\t\t\tdeviceType: __experimentalGetPreviewDeviceType(),\n\t\t\ttemplateType: postType,\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tlistViewShortcut: getShortcutRepresentation(\n\t\t\t\t'core/edit-site/toggle-list-view'\n\t\t\t),\n\t\t\tisVisualMode: getEditorMode() === 'visual',\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\tshowIconLabels: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t\teditorCanvasView: unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t).getEditorCanvasContainerView(),\n\t\t};\n\t}, [] );\n\n\tconst {\n\t\t__experimentalSetPreviewDeviceType: setPreviewDeviceType,\n\t\tsetIsInserterOpened,\n\t\tsetIsListViewOpened,\n\t} = useDispatch( editSiteStore );\n\tconst { __unstableSetEditorMode } = useDispatch( blockEditorStore );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tconst toggleInserter = useCallback( () => {\n\t\tif ( isInserterOpen ) {\n\t\t\t// Focusing the inserter button should close the inserter popover.\n\t\t\t// However, there are some cases it won't close when the focus is lost.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/43090 for more details.\n\t\t\tinserterButton.current.focus();\n\t\t\tsetIsInserterOpened( false );\n\t\t} else {\n\t\t\tsetIsInserterOpened( true );\n\t\t}\n\t}, [ isInserterOpen, setIsInserterOpened ] );\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\tconst hasDefaultEditorCanvasView = ! useHasEditorCanvasContainer();\n\n\tconst isFocusMode = templateType === 'wp_template_part';\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst longLabel = _x(\n\t\t'Toggle block inserter',\n\t\t'Generic label for block inserter button'\n\t);\n\tconst shortLabel = ! isInserterOpen ? __( 'Add' ) : __( 'Close' );\n\n\tconst isZoomedOutViewExperimentEnabled =\n\t\twindow?.__experimentalEnableZoomedOutView && isVisualMode;\n\tconst isZoomedOutView = blockEditorMode === 'zoom-out';\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-header-edit-mode', {\n\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ hasDefaultEditorCanvasView && (\n\t\t\t\t<NavigableToolbar\n\t\t\t\t\tclassName=\"edit-site-header-edit-mode__start\"\n\t\t\t\t\taria-label={ __( 'Document tools' ) }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"edit-site-header-edit-mode__toolbar\">\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tclassName=\"edit-site-header-edit-mode__inserter-toggle\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tisPressed={ isInserterOpen }\n\t\t\t\t\t\t\tonMouseDown={ preventDefault }\n\t\t\t\t\t\t\tonClick={ toggleInserter }\n\t\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={ showIconLabels ? shortLabel : longLabel }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ ToolSelector }\n\t\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ UndoButton }\n\t\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ RedoButton }\n\t\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-header-edit-mode__list-view-toggle\"\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t! isVisualMode || isZoomedOutView\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\t\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\t\tlabel={ __( 'List View' ) }\n\t\t\t\t\t\t\t\t\tonClick={ toggleListView }\n\t\t\t\t\t\t\t\t\tshortcut={ listViewShortcut }\n\t\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ isZoomedOutViewExperimentEnabled && (\n\t\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-header-edit-mode__zoom-out-view-toggle\"\n\t\t\t\t\t\t\t\t\t\ticon={ chevronUpDown }\n\t\t\t\t\t\t\t\t\t\tisPressed={ isZoomedOutView }\n\t\t\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Zoom-out View' ) }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetPreviewDeviceType( 'desktop' );\n\t\t\t\t\t\t\t\t\t\t\t__unstableSetEditorMode(\n\t\t\t\t\t\t\t\t\t\t\t\tisZoomedOutView\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'edit'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'zoom-out'\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</NavigableToolbar>\n\t\t\t) }\n\n\t\t\t<div className=\"edit-site-header-edit-mode__center\">\n\t\t\t\t{ ! hasDefaultEditorCanvasView ? (\n\t\t\t\t\tgetEditorCanvasContainerTitle( editorCanvasView )\n\t\t\t\t) : (\n\t\t\t\t\t<DocumentActions />\n\t\t\t\t) }\n\t\t\t</div>\n\n\t\t\t<div className=\"edit-site-header-edit-mode__end\">\n\t\t\t\t<div className=\"edit-site-header-edit-mode__actions\">\n\t\t\t\t\t{ ! isFocusMode && hasDefaultEditorCanvasView && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'edit-site-header-edit-mode__preview-options',\n\t\t\t\t\t\t\t\t{ 'is-zoomed-out': isZoomedOutView }\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\t\tdeviceType={ deviceType }\n\t\t\t\t\t\t\t\tsetDeviceType={ setPreviewDeviceType }\n\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\tviewLabel={ __( 'View' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'View site' ) }\n\t\t\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</PreviewOptions>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<SaveButton />\n\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t<MoreMenu showIconLabels={ showIconLabels } />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/header-edit-mode/index.js"],"names":["useShouldContextualToolbarShow","blockEditorPrivateApis","preventDefault","event","HeaderEditMode","inserterButton","deviceType","templateType","isInserterOpen","isListViewOpen","listViewShortcut","isVisualMode","blockEditorMode","homeUrl","showIconLabels","editorCanvasView","select","__experimentalGetPreviewDeviceType","getEditedPostType","isInserterOpened","isListViewOpened","getEditorMode","editSiteStore","getShortcutRepresentation","keyboardShortcutsStore","__unstableGetEditorMode","blockEditorStore","postType","getUnstableBase","coreStore","home","preferencesStore","get","getEditorCanvasContainerView","__experimentalSetPreviewDeviceType","setPreviewDeviceType","setIsInserterOpened","setIsListViewOpened","__unstableSetEditorMode","isLargeViewport","toggleInserter","current","focus","toggleListView","shouldShowContextualToolbar","canFocusHiddenToolbar","fixedToolbarCanBeFocused","blockToolbarCanBeFocused","hasDefaultEditorCanvasView","isFocusMode","longLabel","shortLabel","isZoomedOutViewExperimentEnabled","window","__experimentalEnableZoomedOutView","isZoomedOutView","Button","plus","ToolSelector","undefined","UndoButton","RedoButton","listView","chevronUpDown","external"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tToolSelector,\n\t__experimentalPreviewOptions as PreviewOptions,\n\tNavigableToolbar,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { PinnedItems } from '@wordpress/interface';\nimport { _x, __ } from '@wordpress/i18n';\nimport { listView, plus, external, chevronUpDown } from '@wordpress/icons';\nimport {\n\tButton,\n\tToolbarItem,\n\tMenuGroup,\n\tMenuItem,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport MoreMenu from './more-menu';\nimport SaveButton from '../save-button';\nimport UndoButton from './undo-redo/undo';\nimport RedoButton from './undo-redo/redo';\nimport DocumentActions from './document-actions';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tgetEditorCanvasContainerTitle,\n\tuseHasEditorCanvasContainer,\n} from '../editor-canvas-container';\nimport { unlock } from '../../private-apis';\n\nconst { useShouldContextualToolbarShow } = unlock( blockEditorPrivateApis );\n\nconst preventDefault = ( event ) => {\n\tevent.preventDefault();\n};\n\nexport default function HeaderEditMode() {\n\tconst inserterButton = useRef();\n\tconst {\n\t\tdeviceType,\n\t\ttemplateType,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tlistViewShortcut,\n\t\tisVisualMode,\n\t\tblockEditorMode,\n\t\thomeUrl,\n\t\tshowIconLabels,\n\t\teditorCanvasView,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetPreviewDeviceType,\n\t\t\tgetEditedPostType,\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t\tgetEditorMode,\n\t\t} = select( editSiteStore );\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\n\t\tconst postType = getEditedPostType();\n\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\n\t\treturn {\n\t\t\tdeviceType: __experimentalGetPreviewDeviceType(),\n\t\t\ttemplateType: postType,\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tlistViewShortcut: getShortcutRepresentation(\n\t\t\t\t'core/edit-site/toggle-list-view'\n\t\t\t),\n\t\t\tisVisualMode: getEditorMode() === 'visual',\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\tshowIconLabels: select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'showIconLabels'\n\t\t\t),\n\t\t\teditorCanvasView: unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t).getEditorCanvasContainerView(),\n\t\t};\n\t}, [] );\n\n\tconst {\n\t\t__experimentalSetPreviewDeviceType: setPreviewDeviceType,\n\t\tsetIsInserterOpened,\n\t\tsetIsListViewOpened,\n\t} = useDispatch( editSiteStore );\n\tconst { __unstableSetEditorMode } = useDispatch( blockEditorStore );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tconst toggleInserter = useCallback( () => {\n\t\tif ( isInserterOpen ) {\n\t\t\t// Focusing the inserter button should close the inserter popover.\n\t\t\t// However, there are some cases it won't close when the focus is lost.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/43090 for more details.\n\t\t\tinserterButton.current.focus();\n\t\t\tsetIsInserterOpened( false );\n\t\t} else {\n\t\t\tsetIsInserterOpened( true );\n\t\t}\n\t}, [ isInserterOpen, setIsInserterOpened ] );\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\tconst {\n\t\tshouldShowContextualToolbar,\n\t\tcanFocusHiddenToolbar,\n\t\tfixedToolbarCanBeFocused,\n\t} = useShouldContextualToolbarShow();\n\t// If there's a block toolbar to be focused, disable the focus shortcut for the document toolbar.\n\t// There's a fixed block toolbar when the fixed toolbar option is enabled or when the browser width is less than the large viewport.\n\tconst blockToolbarCanBeFocused =\n\t\tshouldShowContextualToolbar ||\n\t\tcanFocusHiddenToolbar ||\n\t\tfixedToolbarCanBeFocused;\n\n\tconst hasDefaultEditorCanvasView = ! useHasEditorCanvasContainer();\n\n\tconst isFocusMode = templateType === 'wp_template_part';\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst longLabel = _x(\n\t\t'Toggle block inserter',\n\t\t'Generic label for block inserter button'\n\t);\n\tconst shortLabel = ! isInserterOpen ? __( 'Add' ) : __( 'Close' );\n\n\tconst isZoomedOutViewExperimentEnabled =\n\t\twindow?.__experimentalEnableZoomedOutView && isVisualMode;\n\tconst isZoomedOutView = blockEditorMode === 'zoom-out';\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-header-edit-mode', {\n\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ hasDefaultEditorCanvasView && (\n\t\t\t\t<NavigableToolbar\n\t\t\t\t\tclassName=\"edit-site-header-edit-mode__start\"\n\t\t\t\t\taria-label={ __( 'Document tools' ) }\n\t\t\t\t\tshouldUseKeyboardFocusShortcut={\n\t\t\t\t\t\t! blockToolbarCanBeFocused\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"edit-site-header-edit-mode__toolbar\">\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tclassName=\"edit-site-header-edit-mode__inserter-toggle\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tisPressed={ isInserterOpen }\n\t\t\t\t\t\t\tonMouseDown={ preventDefault }\n\t\t\t\t\t\t\tonClick={ toggleInserter }\n\t\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={ showIconLabels ? shortLabel : longLabel }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ ToolSelector }\n\t\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ UndoButton }\n\t\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ RedoButton }\n\t\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-header-edit-mode__list-view-toggle\"\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t! isVisualMode || isZoomedOutView\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\t\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\t\tlabel={ __( 'List View' ) }\n\t\t\t\t\t\t\t\t\tonClick={ toggleListView }\n\t\t\t\t\t\t\t\t\tshortcut={ listViewShortcut }\n\t\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ isZoomedOutViewExperimentEnabled && (\n\t\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-header-edit-mode__zoom-out-view-toggle\"\n\t\t\t\t\t\t\t\t\t\ticon={ chevronUpDown }\n\t\t\t\t\t\t\t\t\t\tisPressed={ isZoomedOutView }\n\t\t\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Zoom-out View' ) }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetPreviewDeviceType( 'desktop' );\n\t\t\t\t\t\t\t\t\t\t\t__unstableSetEditorMode(\n\t\t\t\t\t\t\t\t\t\t\t\tisZoomedOutView\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'edit'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'zoom-out'\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</NavigableToolbar>\n\t\t\t) }\n\n\t\t\t<div className=\"edit-site-header-edit-mode__center\">\n\t\t\t\t{ ! hasDefaultEditorCanvasView ? (\n\t\t\t\t\tgetEditorCanvasContainerTitle( editorCanvasView )\n\t\t\t\t) : (\n\t\t\t\t\t<DocumentActions />\n\t\t\t\t) }\n\t\t\t</div>\n\n\t\t\t<div className=\"edit-site-header-edit-mode__end\">\n\t\t\t\t<div className=\"edit-site-header-edit-mode__actions\">\n\t\t\t\t\t{ ! isFocusMode && hasDefaultEditorCanvasView && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'edit-site-header-edit-mode__preview-options',\n\t\t\t\t\t\t\t\t{ 'is-zoomed-out': isZoomedOutView }\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\t\tdeviceType={ deviceType }\n\t\t\t\t\t\t\t\tsetDeviceType={ setPreviewDeviceType }\n\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\tviewLabel={ __( 'View' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'View site' ) }\n\t\t\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</PreviewOptions>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<SaveButton />\n\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t<MoreMenu showIconLabels={ showIconLabels } />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useIsSiteEditorLoading = useIsSiteEditorLoading;
9
+
10
+ var _element = require("@wordpress/element");
11
+
12
+ var _data = require("@wordpress/data");
13
+
14
+ var _coreData = require("@wordpress/core-data");
15
+
16
+ var _useEditedEntityRecord = _interopRequireDefault(require("../use-edited-entity-record"));
17
+
18
+ /**
19
+ * WordPress dependencies
20
+ */
21
+
22
+ /**
23
+ * Internal dependencies
24
+ */
25
+ function useIsSiteEditorLoading() {
26
+ const {
27
+ isLoaded: hasLoadedPost
28
+ } = (0, _useEditedEntityRecord.default)();
29
+ const [loaded, setLoaded] = (0, _element.useState)(false);
30
+ const inLoadingPause = (0, _data.useSelect)(select => {
31
+ const hasResolvingSelectors = select(_coreData.store).hasResolvingSelectors();
32
+ return !loaded && !hasResolvingSelectors;
33
+ }, [loaded]);
34
+ (0, _element.useEffect)(() => {
35
+ if (inLoadingPause) {
36
+ /*
37
+ * We're using an arbitrary 1s timeout here to catch brief moments
38
+ * without any resolving selectors that would result in displaying
39
+ * brief flickers of loading state and loaded state.
40
+ *
41
+ * It's worth experimenting with different values, since this also
42
+ * adds 1s of artificial delay after loading has finished.
43
+ */
44
+ const timeout = setTimeout(() => {
45
+ setLoaded(true);
46
+ }, 1000);
47
+ return () => {
48
+ clearTimeout(timeout);
49
+ };
50
+ }
51
+ }, [inLoadingPause]);
52
+ return !loaded || !hasLoadedPost;
53
+ }
54
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/layout/hooks.js"],"names":["useIsSiteEditorLoading","isLoaded","hasLoadedPost","loaded","setLoaded","inLoadingPause","select","hasResolvingSelectors","coreStore","timeout","setTimeout","clearTimeout"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;AAGO,SAASA,sBAAT,GAAkC;AACxC,QAAM;AAAEC,IAAAA,QAAQ,EAAEC;AAAZ,MAA8B,qCAApC;AACA,QAAM,CAAEC,MAAF,EAAUC,SAAV,IAAwB,uBAAU,KAAV,CAA9B;AACA,QAAMC,cAAc,GAAG,qBACpBC,MAAF,IAAc;AACb,UAAMC,qBAAqB,GAC1BD,MAAM,CAAEE,eAAF,CAAN,CAAoBD,qBAApB,EADD;AAEA,WAAO,CAAEJ,MAAF,IAAY,CAAEI,qBAArB;AACA,GALqB,EAMtB,CAAEJ,MAAF,CANsB,CAAvB;AASA,0BAAW,MAAM;AAChB,QAAKE,cAAL,EAAsB;AACrB;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACG,YAAMI,OAAO,GAAGC,UAAU,CAAE,MAAM;AACjCN,QAAAA,SAAS,CAAE,IAAF,CAAT;AACA,OAFyB,EAEvB,IAFuB,CAA1B;AAIA,aAAO,MAAM;AACZO,QAAAA,YAAY,CAAEF,OAAF,CAAZ;AACA,OAFD;AAGA;AACD,GAlBD,EAkBG,CAAEJ,cAAF,CAlBH;AAoBA,SAAO,CAAEF,MAAF,IAAY,CAAED,aAArB;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useEditedEntityRecord from '../use-edited-entity-record';\n\nexport function useIsSiteEditorLoading() {\n\tconst { isLoaded: hasLoadedPost } = useEditedEntityRecord();\n\tconst [ loaded, setLoaded ] = useState( false );\n\tconst inLoadingPause = useSelect(\n\t\t( select ) => {\n\t\t\tconst hasResolvingSelectors =\n\t\t\t\tselect( coreStore ).hasResolvingSelectors();\n\t\t\treturn ! loaded && ! hasResolvingSelectors;\n\t\t},\n\t\t[ loaded ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( inLoadingPause ) {\n\t\t\t/*\n\t\t\t * We're using an arbitrary 1s timeout here to catch brief moments\n\t\t\t * without any resolving selectors that would result in displaying\n\t\t\t * brief flickers of loading state and loaded state.\n\t\t\t *\n\t\t\t * It's worth experimenting with different values, since this also\n\t\t\t * adds 1s of artificial delay after loading has finished.\n\t\t\t */\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetLoaded( true );\n\t\t\t}, 1000 );\n\n\t\t\treturn () => {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t};\n\t\t}\n\t}, [ inLoadingPause ] );\n\n\treturn ! loaded || ! hasLoadedPost;\n}\n"]}
@@ -51,7 +51,7 @@ var _useInitEditedEntityFromUrl = _interopRequireDefault(require("../sync-state-
51
51
 
52
52
  var _siteHub = _interopRequireDefault(require("../site-hub"));
53
53
 
54
- var _resizeHandle = _interopRequireDefault(require("../block-editor/resize-handle"));
54
+ var _resizableFrame = _interopRequireDefault(require("../resizable-frame"));
55
55
 
56
56
  var _useSyncCanvasModeWithUrl = _interopRequireDefault(require("../sync-state-with-url/use-sync-canvas-mode-with-url"));
57
57
 
@@ -63,6 +63,10 @@ var _register = _interopRequireDefault(require("../keyboard-shortcuts/register")
63
63
 
64
64
  var _global = _interopRequireDefault(require("../keyboard-shortcuts/global"));
65
65
 
66
+ var _useEditModeCommands = require("../../hooks/commands/use-edit-mode-commands");
67
+
68
+ var _hooks = require("./hooks");
69
+
66
70
  /**
67
71
  * External dependencies
68
72
  */
@@ -77,29 +81,20 @@ var _global = _interopRequireDefault(require("../keyboard-shortcuts/global"));
77
81
  const {
78
82
  useCommands
79
83
  } = (0, _privateApis.unlock)(_coreCommands.privateApis);
84
+ const {
85
+ useCommandContext
86
+ } = (0, _privateApis.unlock)(_commands.privateApis);
80
87
  const {
81
88
  useLocation
82
89
  } = (0, _privateApis.unlock)(_router.privateApis);
83
90
  const ANIMATION_DURATION = 0.5;
84
- const emptyResizeHandleStyles = {
85
- position: undefined,
86
- userSelect: undefined,
87
- cursor: undefined,
88
- width: undefined,
89
- height: undefined,
90
- top: undefined,
91
- right: undefined,
92
- bottom: undefined,
93
- left: undefined
94
- };
95
91
 
96
92
  function Layout() {
97
- var _window;
98
-
99
93
  // This ensures the edited entity id and type are initialized properly.
100
94
  (0, _useInitEditedEntityFromUrl.default)();
101
95
  (0, _useSyncCanvasModeWithUrl.default)();
102
96
  useCommands();
97
+ (0, _useEditModeCommands.useEditModeCommands)();
103
98
  const hubRef = (0, _element.useRef)();
104
99
  const {
105
100
  params
@@ -125,41 +120,35 @@ function Layout() {
125
120
  hasFixedToolbar: select(_preferences.store).get('fixedToolbar')
126
121
  };
127
122
  }, []);
123
+ const isEditing = canvasMode === 'edit';
128
124
  const navigateRegionsProps = (0, _components.__unstableUseNavigateRegions)({
129
125
  previous: previousShortcut,
130
126
  next: nextShortcut
131
127
  });
132
128
  const disableMotion = (0, _compose.useReducedMotion)();
133
129
  const isMobileViewport = (0, _compose.useViewportMatch)('medium', '<');
134
- const canvasPadding = isMobileViewport ? 0 : 24;
135
130
  const showSidebar = isMobileViewport && !isListPage || !isMobileViewport && (canvasMode === 'view' || !isEditorPage);
136
- const showCanvas = isMobileViewport && isEditorPage && canvasMode === 'edit' || !isMobileViewport || !isEditorPage;
137
- const showFrame = !isEditorPage && !isMobileViewport || !isMobileViewport && isEditorPage && canvasMode === 'view';
138
- const isFullCanvas = isMobileViewport && isListPage || isEditorPage && canvasMode === 'edit';
131
+ const showCanvas = isMobileViewport && isEditorPage && isEditing || !isMobileViewport || !isEditorPage;
132
+ const isFullCanvas = isMobileViewport && isListPage || isEditorPage && isEditing;
139
133
  const [canvasResizer, canvasSize] = (0, _compose.useResizeObserver)();
140
- const [fullResizer, fullSize] = (0, _compose.useResizeObserver)();
141
- const [forcedWidth, setForcedWidth] = (0, _element.useState)(null);
142
- const [isResizing, setIsResizing] = (0, _element.useState)(false);
143
- const isResizingEnabled = !isMobileViewport && canvasMode === 'view';
144
- const defaultSidebarWidth = isMobileViewport ? '100vw' : 360;
145
- let canvasWidth = isResizing ? '100%' : fullSize.width;
146
-
147
- if (showFrame && !isResizing) {
148
- canvasWidth = canvasSize.width - canvasPadding;
149
- } // Synchronizing the URL with the store value of canvasMode happens in an effect
134
+ const [fullResizer] = (0, _compose.useResizeObserver)();
135
+ const [isResizing] = (0, _element.useState)(false);
136
+ const isEditorLoading = (0, _hooks.useIsSiteEditorLoading)(); // Sets the right context for the command center
137
+
138
+ const commandContext = canvasMode === 'edit' && isEditorPage ? 'site-editor-edit' : 'site-editor';
139
+ useCommandContext(commandContext); // Synchronizing the URL with the store value of canvasMode happens in an effect
150
140
  // This condition ensures the component is only rendered after the synchronization happens
151
141
  // which prevents any animations due to potential canvasMode value change.
152
142
 
153
-
154
143
  if (canvasMode === 'init') {
155
144
  return null;
156
145
  }
157
146
 
158
- return (0, _element.createElement)(_element.Fragment, null, ((_window = window) === null || _window === void 0 ? void 0 : _window.__experimentalEnableCommandCenter) && (0, _element.createElement)(_commands.CommandMenu, null), (0, _element.createElement)(_register.default, null), (0, _element.createElement)(_global.default, null), fullResizer, (0, _element.createElement)("div", (0, _extends2.default)({}, navigateRegionsProps, {
147
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_commands.CommandMenu, null), (0, _element.createElement)(_register.default, null), (0, _element.createElement)(_global.default, null), fullResizer, (0, _element.createElement)("div", (0, _extends2.default)({}, navigateRegionsProps, {
159
148
  ref: navigateRegionsProps.ref,
160
149
  className: (0, _classnames.default)('edit-site-layout', navigateRegionsProps.className, {
161
150
  'is-full-canvas': isFullCanvas,
162
- 'is-edit-mode': canvasMode === 'edit',
151
+ 'is-edit-mode': isEditing,
163
152
  'has-fixed-toolbar': hasFixedToolbar
164
153
  })
165
154
  }), (0, _element.createElement)(_siteHub.default, {
@@ -167,7 +156,7 @@ function Layout() {
167
156
  className: "edit-site-layout__hub"
168
157
  }), (0, _element.createElement)(_components.__unstableAnimatePresence, {
169
158
  initial: false
170
- }, isEditorPage && canvasMode === 'edit' && (0, _element.createElement)(_interface.NavigableRegion, {
159
+ }, isEditorPage && isEditing && (0, _element.createElement)(_interface.NavigableRegion, {
171
160
  className: "edit-site-layout__header",
172
161
  ariaLabel: (0, _i18n.__)('Editor top bar'),
173
162
  as: _components.__unstableMotion.div,
@@ -185,12 +174,11 @@ function Layout() {
185
174
  duration: disableMotion ? 0 : ANIMATION_DURATION,
186
175
  ease: 'easeOut'
187
176
  }
188
- }, (0, _element.createElement)(_headerEditMode.default, null))), (0, _element.createElement)("div", {
177
+ }, isEditing && (0, _element.createElement)(_headerEditMode.default, null))), (0, _element.createElement)("div", {
189
178
  className: "edit-site-layout__content"
190
179
  }, (0, _element.createElement)(_components.__unstableAnimatePresence, {
191
180
  initial: false
192
- }, showSidebar && (0, _element.createElement)(_components.ResizableBox, {
193
- as: _components.__unstableMotion.div,
181
+ }, showSidebar && (0, _element.createElement)(_components.__unstableMotion.div, {
194
182
  initial: {
195
183
  opacity: 0
196
184
  },
@@ -202,87 +190,46 @@ function Layout() {
202
190
  },
203
191
  transition: {
204
192
  type: 'tween',
205
- duration: disableMotion || isResizing ? 0 : ANIMATION_DURATION,
193
+ duration: ANIMATION_DURATION,
206
194
  ease: 'easeOut'
207
195
  },
208
- size: {
209
- height: '100%',
210
- width: isResizingEnabled && forcedWidth ? forcedWidth : defaultSidebarWidth
211
- },
212
- className: "edit-site-layout__sidebar",
213
- enable: {
214
- right: isResizingEnabled
215
- },
216
- onResizeStop: (event, direction, elt) => {
217
- setForcedWidth(elt.clientWidth);
218
- setIsResizing(false);
219
- },
220
- onResizeStart: () => {
221
- setIsResizing(true);
222
- },
223
- onResize: (event, direction, elt) => {
224
- // This is a performance optimization
225
- // We set the width imperatively to avoid re-rendering
226
- // the whole component while resizing.
227
- hubRef.current.style.width = elt.clientWidth - 48 + 'px';
228
- },
229
- handleComponent: {
230
- right: (0, _element.createElement)(_resizeHandle.default, {
231
- direction: "right",
232
- variation: "separator",
233
- resizeWidthBy: delta => {
234
- setForcedWidth((forcedWidth !== null && forcedWidth !== void 0 ? forcedWidth : defaultSidebarWidth) + delta);
235
- }
236
- })
237
- },
238
- handleClasses: undefined,
239
- handleStyles: {
240
- right: emptyResizeHandleStyles
241
- },
242
- minWidth: isResizingEnabled ? 320 : undefined,
243
- maxWidth: isResizingEnabled && fullSize ? fullSize.width - 360 : undefined
196
+ className: "edit-site-layout__sidebar"
244
197
  }, (0, _element.createElement)(_interface.NavigableRegion, {
245
198
  ariaLabel: (0, _i18n.__)('Navigation')
246
199
  }, (0, _element.createElement)(_sidebar.default, null)))), (0, _element.createElement)(_savePanel.default, null), showCanvas && (0, _element.createElement)("div", {
247
200
  className: (0, _classnames.default)('edit-site-layout__canvas-container', {
248
201
  'is-resizing': isResizing
249
- }),
250
- style: {
251
- paddingTop: showFrame ? canvasPadding : 0,
252
- paddingBottom: showFrame ? canvasPadding : 0
253
- }
202
+ })
254
203
  }, canvasResizer, !!canvasSize.width && (0, _element.createElement)(_components.__unstableMotion.div, {
255
204
  whileHover: isEditorPage && canvasMode === 'view' ? {
256
- scale: 1.005,
205
+ scale: 1.006,
257
206
  transition: {
258
207
  duration: disableMotion || isResizing ? 0 : 0.5,
259
208
  ease: 'easeOut'
260
209
  }
261
- } : {},
262
- initial: false,
263
- layout: "position",
264
- className: "edit-site-layout__canvas",
265
- transition: {
266
- type: 'tween',
267
- duration: disableMotion || isResizing ? 0 : ANIMATION_DURATION,
268
- ease: 'easeOut'
269
- }
270
- }, (0, _element.createElement)(_components.__unstableMotion.div, {
271
- style: {
272
- position: 'absolute',
273
- top: 0,
274
- left: 0,
275
- bottom: 0
276
- },
277
- initial: false,
278
- animate: {
279
- width: canvasWidth
210
+ } : {} // Setting a transform property (in this case scale) on an element makes it act as a containing block for its descendants.
211
+ // This means that the snackbar notices inside this component are repositioned to be relative to this element.
212
+ // To avoid the snackbars jumping about we need to ensure that a transform property is always set.
213
+ // Setting a scale of 1 is interpred by framer as no change, so once the animation completes
214
+ // the transform property of this element is set to none, thus removing its role as a container block.
215
+ // Instead we set the initial scale of this element to 1.0001 so that there is always a transform property set.
216
+ // If we set the initial scale to less than 1.001 then JavaScript rounds it to 1 and the problem reoccurs.
217
+ ,
218
+ initial: {
219
+ scale: 1.001
280
220
  },
221
+ className: "edit-site-layout__canvas",
281
222
  transition: {
282
223
  type: 'tween',
283
224
  duration: disableMotion || isResizing ? 0 : ANIMATION_DURATION,
284
225
  ease: 'easeOut'
285
226
  }
286
- }, (0, _element.createElement)(_errorBoundary.default, null, isEditorPage && (0, _element.createElement)(_editor.default, null), isListPage && (0, _element.createElement)(_list.default, null))))))));
227
+ }, (0, _element.createElement)(_errorBoundary.default, null, isEditorPage && (0, _element.createElement)(_resizableFrame.default, {
228
+ isReady: !isEditorLoading,
229
+ isFullWidth: isEditing,
230
+ oversizedClassName: "edit-site-layout__resizable-frame-oversized"
231
+ }, (0, _element.createElement)(_editor.default, {
232
+ isLoading: isEditorLoading
233
+ })), isListPage && (0, _element.createElement)(_list.default, null)))))));
287
234
  }
288
235
  //# sourceMappingURL=index.js.map