@wordpress/edit-post 5.0.1 → 5.0.5

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 (162) hide show
  1. package/README.md +2 -5
  2. package/build/components/header/fullscreen-mode-close/index.js +19 -3
  3. package/build/components/header/fullscreen-mode-close/index.js.map +1 -1
  4. package/build/components/header/header-toolbar/index.native.js +10 -3
  5. package/build/components/header/header-toolbar/index.native.js.map +1 -1
  6. package/build/components/header/more-menu/index.js +3 -14
  7. package/build/components/header/more-menu/index.js.map +1 -1
  8. package/build/components/header/template-title/index.js +1 -1
  9. package/build/components/header/template-title/index.js.map +1 -1
  10. package/build/components/header/writing-menu/index.js +7 -10
  11. package/build/components/header/writing-menu/index.js.map +1 -1
  12. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +1 -1
  13. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  14. package/build/components/keyboard-shortcut-help-modal/index.js +1 -3
  15. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  16. package/build/components/keyboard-shortcuts/index.js +1 -8
  17. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  18. package/build/components/layout/index.js +3 -5
  19. package/build/components/layout/index.js.map +1 -1
  20. package/build/components/layout/index.native.js +5 -1
  21. package/build/components/layout/index.native.js.map +1 -1
  22. package/build/components/meta-boxes/index.js +37 -20
  23. package/build/components/meta-boxes/index.js.map +1 -1
  24. package/build/components/preferences-modal/index.js +56 -18
  25. package/build/components/preferences-modal/index.js.map +1 -1
  26. package/build/components/secondary-sidebar/inserter-sidebar.js +2 -1
  27. package/build/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
  28. package/build/components/secondary-sidebar/list-view-sidebar.js +1 -0
  29. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  30. package/build/components/sidebar/plugin-sidebar/index.js +1 -1
  31. package/build/components/sidebar/plugin-sidebar/index.js.map +1 -1
  32. package/build/components/sidebar/post-link/index.js +1 -1
  33. package/build/components/sidebar/post-link/index.js.map +1 -1
  34. package/build/components/sidebar/template/actions.js +6 -1
  35. package/build/components/sidebar/template/actions.js.map +1 -1
  36. package/build/components/sidebar/template/index.js +5 -2
  37. package/build/components/sidebar/template/index.js.map +1 -1
  38. package/build/components/sidebar/template-summary/index.js +2 -1
  39. package/build/components/sidebar/template-summary/index.js.map +1 -1
  40. package/build/components/visual-editor/index.js +6 -4
  41. package/build/components/visual-editor/index.js.map +1 -1
  42. package/build/editor.js +17 -5
  43. package/build/editor.js.map +1 -1
  44. package/build/hooks/validate-multiple-use/index.js +1 -1
  45. package/build/hooks/validate-multiple-use/index.js.map +1 -1
  46. package/build/index.js +28 -12
  47. package/build/index.js.map +1 -1
  48. package/build/plugins/welcome-guide-menu-item/index.js +6 -7
  49. package/build/plugins/welcome-guide-menu-item/index.js.map +1 -1
  50. package/build/store/actions.js +68 -59
  51. package/build/store/actions.js.map +1 -1
  52. package/build/store/defaults.js +0 -9
  53. package/build/store/defaults.js.map +1 -1
  54. package/build/store/reducer.js +20 -11
  55. package/build/store/reducer.js.map +1 -1
  56. package/build/store/selectors.js +24 -10
  57. package/build/store/selectors.js.map +1 -1
  58. package/build-module/components/header/fullscreen-mode-close/index.js +19 -4
  59. package/build-module/components/header/fullscreen-mode-close/index.js.map +1 -1
  60. package/build-module/components/header/header-toolbar/index.native.js +11 -4
  61. package/build-module/components/header/header-toolbar/index.native.js.map +1 -1
  62. package/build-module/components/header/more-menu/index.js +5 -15
  63. package/build-module/components/header/more-menu/index.js.map +1 -1
  64. package/build-module/components/header/template-title/index.js +1 -1
  65. package/build-module/components/header/template-title/index.js.map +1 -1
  66. package/build-module/components/header/writing-menu/index.js +7 -8
  67. package/build-module/components/header/writing-menu/index.js.map +1 -1
  68. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +1 -1
  69. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  70. package/build-module/components/keyboard-shortcut-help-modal/index.js +1 -3
  71. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  72. package/build-module/components/keyboard-shortcuts/index.js +1 -8
  73. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  74. package/build-module/components/layout/index.js +4 -6
  75. package/build-module/components/layout/index.js.map +1 -1
  76. package/build-module/components/layout/index.native.js +5 -1
  77. package/build-module/components/layout/index.native.js.map +1 -1
  78. package/build-module/components/meta-boxes/index.js +38 -20
  79. package/build-module/components/meta-boxes/index.js.map +1 -1
  80. package/build-module/components/preferences-modal/index.js +57 -20
  81. package/build-module/components/preferences-modal/index.js.map +1 -1
  82. package/build-module/components/secondary-sidebar/inserter-sidebar.js +2 -1
  83. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
  84. package/build-module/components/secondary-sidebar/list-view-sidebar.js +1 -0
  85. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  86. package/build-module/components/sidebar/plugin-sidebar/index.js +1 -1
  87. package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -1
  88. package/build-module/components/sidebar/post-link/index.js +1 -1
  89. package/build-module/components/sidebar/post-link/index.js.map +1 -1
  90. package/build-module/components/sidebar/template/actions.js +6 -1
  91. package/build-module/components/sidebar/template/actions.js.map +1 -1
  92. package/build-module/components/sidebar/template/index.js +5 -2
  93. package/build-module/components/sidebar/template/index.js.map +1 -1
  94. package/build-module/components/sidebar/template-summary/index.js +2 -1
  95. package/build-module/components/sidebar/template-summary/index.js.map +1 -1
  96. package/build-module/components/visual-editor/index.js +6 -4
  97. package/build-module/components/visual-editor/index.js.map +1 -1
  98. package/build-module/editor.js +17 -6
  99. package/build-module/editor.js.map +1 -1
  100. package/build-module/hooks/validate-multiple-use/index.js +1 -1
  101. package/build-module/hooks/validate-multiple-use/index.js.map +1 -1
  102. package/build-module/index.js +18 -5
  103. package/build-module/index.js.map +1 -1
  104. package/build-module/plugins/welcome-guide-menu-item/index.js +7 -8
  105. package/build-module/plugins/welcome-guide-menu-item/index.js.map +1 -1
  106. package/build-module/store/actions.js +66 -59
  107. package/build-module/store/actions.js.map +1 -1
  108. package/build-module/store/defaults.js +0 -9
  109. package/build-module/store/defaults.js.map +1 -1
  110. package/build-module/store/reducer.js +20 -11
  111. package/build-module/store/reducer.js.map +1 -1
  112. package/build-module/store/selectors.js +20 -7
  113. package/build-module/store/selectors.js.map +1 -1
  114. package/build-style/style-rtl.css +68 -69
  115. package/build-style/style.css +68 -69
  116. package/package.json +27 -27
  117. package/src/components/header/fullscreen-mode-close/index.js +37 -15
  118. package/src/components/header/fullscreen-mode-close/style.scss +2 -2
  119. package/src/components/header/header-toolbar/index.native.js +8 -2
  120. package/src/components/header/more-menu/index.js +8 -13
  121. package/src/components/header/template-title/index.js +3 -1
  122. package/src/components/header/writing-menu/index.js +7 -8
  123. package/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +15 -12
  124. package/src/components/keyboard-shortcut-help-modal/index.js +1 -3
  125. package/src/components/keyboard-shortcut-help-modal/test/__snapshots__/index.js.snap +2 -2
  126. package/src/components/keyboard-shortcuts/index.js +19 -32
  127. package/src/components/layout/index.js +4 -10
  128. package/src/components/layout/index.native.js +7 -1
  129. package/src/components/meta-boxes/index.js +35 -14
  130. package/src/components/preferences-modal/index.js +93 -30
  131. package/src/components/preferences-modal/style.scss +6 -56
  132. package/src/components/preferences-modal/test/__snapshots__/index.js.snap +334 -136
  133. package/src/components/secondary-sidebar/inserter-sidebar.js +1 -0
  134. package/src/components/secondary-sidebar/list-view-sidebar.js +1 -0
  135. package/src/components/sidebar/plugin-sidebar/index.js +1 -1
  136. package/src/components/sidebar/post-link/index.js +5 -1
  137. package/src/components/sidebar/template/actions.js +6 -1
  138. package/src/components/sidebar/template/index.js +5 -3
  139. package/src/components/sidebar/template-summary/index.js +1 -1
  140. package/src/components/sidebar/template-summary/style.scss +2 -1
  141. package/src/components/text-editor/style.scss +12 -22
  142. package/src/components/visual-editor/index.js +16 -10
  143. package/src/components/visual-editor/style.scss +4 -7
  144. package/src/components/welcome-guide/style.scss +5 -0
  145. package/src/editor.js +101 -79
  146. package/src/hooks/validate-multiple-use/index.js +1 -1
  147. package/src/index.js +18 -5
  148. package/src/plugins/welcome-guide-menu-item/index.js +7 -12
  149. package/src/store/actions.js +99 -80
  150. package/src/store/defaults.js +0 -9
  151. package/src/store/reducer.js +17 -10
  152. package/src/store/selectors.js +27 -7
  153. package/src/store/test/actions.js +0 -11
  154. package/src/store/test/reducer.js +0 -12
  155. package/src/store/test/selectors.js +0 -46
  156. package/build/components/header/feature-toggle/index.js +0 -76
  157. package/build/components/header/feature-toggle/index.js.map +0 -1
  158. package/build-module/components/header/feature-toggle/index.js +0 -60
  159. package/build-module/components/header/feature-toggle/index.js.map +0 -1
  160. package/src/components/header/feature-toggle/index.js +0 -61
  161. package/src/components/header/more-menu/test/__snapshots__/index.js.snap +0 -129
  162. package/src/components/header/more-menu/test/index.js +0 -17
@@ -15,7 +15,7 @@ import {
15
15
  EditorSnackbars,
16
16
  store as editorStore,
17
17
  } from '@wordpress/editor';
18
- import { AsyncModeProvider, useSelect, useDispatch } from '@wordpress/data';
18
+ import { useSelect, useDispatch } from '@wordpress/data';
19
19
  import { BlockBreadcrumb } from '@wordpress/block-editor';
20
20
  import { Button, ScrollLock, Popover } from '@wordpress/components';
21
21
  import { useViewportMatch } from '@wordpress/compose';
@@ -112,12 +112,10 @@ function Layout( { styles } ) {
112
112
  hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),
113
113
  previousShortcut: select(
114
114
  keyboardShortcutsStore
115
- ).getAllShortcutRawKeyCombinations(
116
- 'core/edit-post/previous-region'
117
- ),
115
+ ).getAllShortcutKeyCombinations( 'core/edit-post/previous-region' ),
118
116
  nextShortcut: select(
119
117
  keyboardShortcutsStore
120
- ).getAllShortcutRawKeyCombinations( 'core/edit-post/next-region' ),
118
+ ).getAllShortcutKeyCombinations( 'core/edit-post/next-region' ),
121
119
  showIconLabels: select( editPostStore ).isFeatureActive(
122
120
  'showIconLabels'
123
121
  ),
@@ -175,11 +173,7 @@ function Layout( { styles } ) {
175
173
  return <InserterSidebar />;
176
174
  }
177
175
  if ( mode === 'visual' && isListViewOpened ) {
178
- return (
179
- <AsyncModeProvider value="true">
180
- <ListViewSidebar />
181
- </AsyncModeProvider>
182
- );
176
+ return <ListViewSidebar />;
183
177
  }
184
178
  return null;
185
179
  };
@@ -91,7 +91,13 @@ class Layout extends Component {
91
91
  }
92
92
 
93
93
  renderHTML() {
94
- return <HTMLTextInput parentHeight={ this.state.rootViewHeight } />;
94
+ const { globalStyles } = this.props;
95
+ return (
96
+ <HTMLTextInput
97
+ parentHeight={ this.state.rootViewHeight }
98
+ style={ globalStyles }
99
+ />
100
+ );
95
101
  }
96
102
 
97
103
  renderVisual() {
@@ -6,7 +6,9 @@ import { map } from 'lodash';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { withSelect } from '@wordpress/data';
9
+ import { useSelect, useRegistry } from '@wordpress/data';
10
+ import { useEffect } from '@wordpress/element';
11
+ import { store as editorStore } from '@wordpress/editor';
10
12
 
11
13
  /**
12
14
  * Internal dependencies
@@ -15,24 +17,43 @@ import MetaBoxesArea from './meta-boxes-area';
15
17
  import MetaBoxVisibility from './meta-box-visibility';
16
18
  import { store as editPostStore } from '../../store';
17
19
 
18
- function MetaBoxes( { location, isVisible, metaBoxes } ) {
20
+ export default function MetaBoxes( { location } ) {
21
+ const registry = useRegistry();
22
+ const { metaBoxes, areMetaBoxesInitialized, isEditorReady } = useSelect(
23
+ ( select ) => {
24
+ const { __unstableIsEditorReady } = select( editorStore );
25
+ const {
26
+ getMetaBoxesPerLocation,
27
+ areMetaBoxesInitialized: _areMetaBoxesInitialized,
28
+ } = select( editPostStore );
29
+ return {
30
+ metaBoxes: getMetaBoxesPerLocation( location ),
31
+ areMetaBoxesInitialized: _areMetaBoxesInitialized(),
32
+ isEditorReady: __unstableIsEditorReady(),
33
+ };
34
+ },
35
+ [ location ]
36
+ );
37
+
38
+ // When editor is ready, initialize postboxes (wp core script) and metabox
39
+ // saving. This initializes all meta box locations, not just this specific
40
+ // one.
41
+ useEffect( () => {
42
+ if ( isEditorReady && ! areMetaBoxesInitialized ) {
43
+ registry.dispatch( editPostStore ).initializeMetaBoxes();
44
+ }
45
+ }, [ isEditorReady, areMetaBoxesInitialized ] );
46
+
47
+ if ( ! areMetaBoxesInitialized ) {
48
+ return null;
49
+ }
50
+
19
51
  return (
20
52
  <>
21
53
  { map( metaBoxes, ( { id } ) => (
22
54
  <MetaBoxVisibility key={ id } id={ id } />
23
55
  ) ) }
24
- { isVisible && <MetaBoxesArea location={ location } /> }
56
+ <MetaBoxesArea location={ location } />
25
57
  </>
26
58
  );
27
59
  }
28
-
29
- export default withSelect( ( select, { location } ) => {
30
- const { isMetaBoxLocationVisible, getMetaBoxesPerLocation } = select(
31
- editPostStore
32
- );
33
-
34
- return {
35
- metaBoxes: getMetaBoxesPerLocation( location ),
36
- isVisible: isMetaBoxLocationVisible( location ),
37
- };
38
- } )( MetaBoxes );
@@ -7,13 +7,23 @@ import { get } from 'lodash';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import {
10
- __experimentalNavigation as Navigation,
11
- __experimentalNavigationMenu as NavigationMenu,
12
- __experimentalNavigationItem as NavigationItem,
10
+ __experimentalNavigatorProvider as NavigatorProvider,
11
+ __experimentalNavigatorScreen as NavigatorScreen,
12
+ __experimentalUseNavigator as useNavigator,
13
+ __experimentalItemGroup as ItemGroup,
14
+ __experimentalItem as Item,
15
+ __experimentalHStack as HStack,
16
+ __experimentalText as Text,
17
+ __experimentalTruncate as Truncate,
18
+ FlexItem,
13
19
  Modal,
14
20
  TabPanel,
21
+ Button,
22
+ Card,
23
+ CardHeader,
24
+ CardBody,
15
25
  } from '@wordpress/components';
16
- import { __ } from '@wordpress/i18n';
26
+ import { isRTL, __ } from '@wordpress/i18n';
17
27
  import { useViewportMatch } from '@wordpress/compose';
18
28
  import { useSelect, useDispatch } from '@wordpress/data';
19
29
  import { useMemo, useCallback, useState } from '@wordpress/element';
@@ -26,6 +36,7 @@ import {
26
36
  store as editorStore,
27
37
  } from '@wordpress/editor';
28
38
  import { store as coreStore } from '@wordpress/core-data';
39
+ import { chevronLeft, chevronRight, Icon } from '@wordpress/icons';
29
40
 
30
41
  /**
31
42
  * Internal dependencies
@@ -44,6 +55,21 @@ import BlockManager from '../block-manager';
44
55
  const MODAL_NAME = 'edit-post/preferences';
45
56
  const PREFERENCES_MENU = 'preferences-menu';
46
57
 
58
+ function NavigationButton( {
59
+ as: Tag = Button,
60
+ path,
61
+ isBack = false,
62
+ ...props
63
+ } ) {
64
+ const navigator = useNavigator();
65
+ return (
66
+ <Tag
67
+ onClick={ () => navigator.push( path, { isBack } ) }
68
+ { ...props }
69
+ />
70
+ );
71
+ }
72
+
47
73
  export default function PreferencesModal() {
48
74
  const isLargeViewport = useViewportMatch( 'medium' );
49
75
  const { closeModal } = useDispatch( editPostStore );
@@ -243,14 +269,12 @@ export default function PreferencesModal() {
243
269
  />
244
270
  </PageAttributesCheck>
245
271
  </Section>
246
- <Section
272
+ <MetaBoxesSection
247
273
  title={ __( 'Additional' ) }
248
274
  description={ __(
249
275
  'Add extra areas to the editor.'
250
276
  ) }
251
- >
252
- <MetaBoxesSection />
253
- </Section>
277
+ />
254
278
  </>
255
279
  ),
256
280
  },
@@ -303,34 +327,73 @@ export default function PreferencesModal() {
303
327
  );
304
328
  } else {
305
329
  modalContent = (
306
- <Navigation
307
- activeMenu={ activeMenu }
308
- onActivateMenu={ setActiveMenu }
309
- >
310
- <NavigationMenu menu={ PREFERENCES_MENU }>
311
- { tabs.map( ( tab ) => {
312
- return (
313
- <NavigationItem
314
- key={ tab.name }
315
- title={ tab.title }
316
- navigateToMenu={ tab.name }
317
- />
318
- );
319
- } ) }
320
- </NavigationMenu>
330
+ <NavigatorProvider initialPath="/">
331
+ <NavigatorScreen path="/">
332
+ <Card isBorderless size="small">
333
+ <CardBody>
334
+ <ItemGroup>
335
+ { tabs.map( ( tab ) => {
336
+ return (
337
+ <NavigationButton
338
+ key={ tab.name }
339
+ path={ tab.name }
340
+ as={ Item }
341
+ isAction
342
+ >
343
+ <HStack justify="space-between">
344
+ <FlexItem>
345
+ <Truncate>
346
+ { tab.title }
347
+ </Truncate>
348
+ </FlexItem>
349
+ <FlexItem>
350
+ <Icon
351
+ icon={
352
+ isRTL()
353
+ ? chevronLeft
354
+ : chevronRight
355
+ }
356
+ />
357
+ </FlexItem>
358
+ </HStack>
359
+ </NavigationButton>
360
+ );
361
+ } ) }
362
+ </ItemGroup>
363
+ </CardBody>
364
+ </Card>
365
+ </NavigatorScreen>
321
366
  { sections.map( ( section ) => {
322
367
  return (
323
- <NavigationMenu
368
+ <NavigatorScreen
324
369
  key={ `${ section.name }-menu` }
325
- menu={ section.name }
326
- title={ section.tabLabel }
327
- parentMenu={ PREFERENCES_MENU }
370
+ path={ section.name }
328
371
  >
329
- <NavigationItem>{ section.content }</NavigationItem>
330
- </NavigationMenu>
372
+ <Card isBorderless size="large">
373
+ <CardHeader
374
+ isBorderless={ false }
375
+ justify="left"
376
+ size="small"
377
+ gap="6"
378
+ >
379
+ <NavigationButton
380
+ path="/"
381
+ icon={
382
+ isRTL() ? chevronRight : chevronLeft
383
+ }
384
+ isBack
385
+ aria-label={ __(
386
+ 'Navigate to the previous view'
387
+ ) }
388
+ />
389
+ <Text size="16">{ section.tabLabel }</Text>
390
+ </CardHeader>
391
+ <CardBody>{ section.content }</CardBody>
392
+ </Card>
393
+ </NavigatorScreen>
331
394
  );
332
395
  } ) }
333
- </Navigation>
396
+ </NavigatorProvider>
334
397
  );
335
398
  }
336
399
  return (
@@ -14,7 +14,7 @@ $vertical-tabs-width: 160px;
14
14
  height: 70%;
15
15
  }
16
16
 
17
- // Clears spacing to flush fit the navigation component to the modal edges.
17
+ // Clears spacing to flush fit the navigator component to the modal edges.
18
18
  @media (max-width: #{ ($break-medium - 1) }) {
19
19
  .components-modal__content {
20
20
  padding: 0;
@@ -23,61 +23,10 @@ $vertical-tabs-width: 160px;
23
23
  content: none;
24
24
  }
25
25
  }
26
- }
27
-
28
- .components-navigation {
29
- background-color: $white;
30
- padding: 0;
31
- max-height: 100%;
32
- overflow-y: auto;
33
-
34
- > * {
35
- // Matches spacing cleared from the modal content element.
36
- padding: $grid-unit-30 $grid-unit-40;
37
- }
38
-
39
- .components-navigation__menu {
40
- margin: 0;
41
- color: $gray-900;
42
-
43
- .components-navigation__item {
44
- color: $gray-900; // The inheritance of some items is quite strong, so we have to duplicate this one.
45
-
46
- & > button {
47
- color: inherit;
48
- padding: 3px $grid-unit-20;
49
- height: $grid-unit-60;
50
- // Aligns button text instead of button box.
51
- margin: 0 #{-$grid-unit-20};
52
- width: calc(#{$grid-unit-40} + 100%);
53
- &:focus {
54
- background: $gray-100;
55
- font-weight: 500;
56
- }
57
- &:hover {
58
- color: var(--wp-admin-theme-color);
59
- }
60
- }
61
- .components-toggle-control__label {
62
- color: inherit;
63
- }
64
- }
65
- .components-navigation__menu-title-heading {
66
- color: inherit;
67
- border-bottom: 1px solid $gray-300;
68
- padding-left: 0;
69
- padding-right: 0;
70
- }
71
- .components-navigation__back-button {
72
- color: inherit;
73
- padding-left: 0;
74
- &:hover {
75
- color: var(--wp-admin-theme-color);
76
- }
77
- }
78
- .edit-post-preferences-modal__custom-fields-confirmation-button {
79
- width: auto;
80
- }
26
+ // Keep the navigator component from overflowing the modal content area
27
+ // to ensure that sticky position elements stick where intended.
28
+ .components-navigator-provider {
29
+ height: 100%;
81
30
  }
82
31
  }
83
32
 
@@ -118,6 +67,7 @@ $vertical-tabs-width: 160px;
118
67
  &__section-title {
119
68
  font-size: 0.9rem;
120
69
  font-weight: 600;
70
+ margin-top: 0;
121
71
  }
122
72
 
123
73
  &__option {