@wordpress/edit-site 4.1.0-next.e230fbab09.0 → 4.2.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 (86) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-template/new-template-part.js +2 -9
  3. package/build/components/add-new-template/new-template-part.js.map +1 -1
  4. package/build/components/add-new-template/new-template.js +28 -12
  5. package/build/components/add-new-template/new-template.js.map +1 -1
  6. package/build/components/editor/index.js +9 -3
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/global-styles/border-panel.js +25 -24
  9. package/build/components/global-styles/border-panel.js.map +1 -1
  10. package/build/components/global-styles/dimensions-panel.js +1 -28
  11. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  12. package/build/components/header/document-actions/index.js +13 -11
  13. package/build/components/header/document-actions/index.js.map +1 -1
  14. package/build/components/header/index.js +5 -3
  15. package/build/components/header/index.js.map +1 -1
  16. package/build/components/header/more-menu/index.js +9 -1
  17. package/build/components/header/more-menu/index.js.map +1 -1
  18. package/build/components/header/more-menu/site-export.js +5 -2
  19. package/build/components/header/more-menu/site-export.js.map +1 -1
  20. package/build/components/header/plugin-more-menu-item/index.js +5 -0
  21. package/build/components/header/plugin-more-menu-item/index.js.map +1 -1
  22. package/build/components/list/actions/rename-menu-item.js +3 -10
  23. package/build/components/list/actions/rename-menu-item.js.map +1 -1
  24. package/build/components/preferences-modal/enable-feature.js +40 -0
  25. package/build/components/preferences-modal/enable-feature.js.map +1 -0
  26. package/build/components/preferences-modal/index.js +68 -0
  27. package/build/components/preferences-modal/index.js.map +1 -0
  28. package/build/index.js +1 -0
  29. package/build/index.js.map +1 -1
  30. package/build/store/actions.js +3 -3
  31. package/build/store/actions.js.map +1 -1
  32. package/build/store/selectors.js +3 -1
  33. package/build/store/selectors.js.map +1 -1
  34. package/build-module/components/add-new-template/new-template-part.js +3 -10
  35. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  36. package/build-module/components/add-new-template/new-template.js +27 -12
  37. package/build-module/components/add-new-template/new-template.js.map +1 -1
  38. package/build-module/components/editor/index.js +8 -3
  39. package/build-module/components/editor/index.js.map +1 -1
  40. package/build-module/components/global-styles/border-panel.js +27 -26
  41. package/build-module/components/global-styles/border-panel.js.map +1 -1
  42. package/build-module/components/global-styles/dimensions-panel.js +2 -29
  43. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  44. package/build-module/components/header/document-actions/index.js +13 -11
  45. package/build-module/components/header/document-actions/index.js.map +1 -1
  46. package/build-module/components/header/index.js +5 -3
  47. package/build-module/components/header/index.js.map +1 -1
  48. package/build-module/components/header/more-menu/index.js +8 -1
  49. package/build-module/components/header/more-menu/index.js.map +1 -1
  50. package/build-module/components/header/more-menu/site-export.js +5 -2
  51. package/build-module/components/header/more-menu/site-export.js.map +1 -1
  52. package/build-module/components/header/plugin-more-menu-item/index.js +4 -0
  53. package/build-module/components/header/plugin-more-menu-item/index.js.map +1 -1
  54. package/build-module/components/list/actions/rename-menu-item.js +4 -11
  55. package/build-module/components/list/actions/rename-menu-item.js.map +1 -1
  56. package/build-module/components/preferences-modal/enable-feature.js +27 -0
  57. package/build-module/components/preferences-modal/enable-feature.js.map +1 -0
  58. package/build-module/components/preferences-modal/index.js +57 -0
  59. package/build-module/components/preferences-modal/index.js.map +1 -0
  60. package/build-module/index.js +1 -0
  61. package/build-module/index.js.map +1 -1
  62. package/build-module/store/actions.js +3 -3
  63. package/build-module/store/actions.js.map +1 -1
  64. package/build-module/store/selectors.js +3 -1
  65. package/build-module/store/selectors.js.map +1 -1
  66. package/build-style/style-rtl.css +35 -1
  67. package/build-style/style.css +35 -1
  68. package/package.json +29 -29
  69. package/src/components/add-new-template/new-template-part.js +3 -12
  70. package/src/components/add-new-template/new-template.js +49 -12
  71. package/src/components/editor/index.js +13 -0
  72. package/src/components/global-styles/border-panel.js +32 -26
  73. package/src/components/global-styles/dimensions-panel.js +1 -34
  74. package/src/components/header/document-actions/index.js +14 -10
  75. package/src/components/header/index.js +6 -1
  76. package/src/components/header/more-menu/index.js +15 -0
  77. package/src/components/header/more-menu/site-export.js +13 -2
  78. package/src/components/header/plugin-more-menu-item/index.js +2 -0
  79. package/src/components/header/style.scss +45 -0
  80. package/src/components/list/actions/rename-menu-item.js +3 -13
  81. package/src/components/preferences-modal/enable-feature.js +24 -0
  82. package/src/components/preferences-modal/index.js +76 -0
  83. package/src/index.js +1 -0
  84. package/src/store/actions.js +4 -4
  85. package/src/store/selectors.js +10 -0
  86. package/src/store/test/selectors.js +4 -0
@@ -163,3 +163,48 @@ body.is-navigation-sidebar-open {
163
163
  }
164
164
  }
165
165
  }
166
+
167
+ // Button text label styles
168
+
169
+ .show-icon-labels .edit-site-header {
170
+ .components-button.has-icon {
171
+ width: auto;
172
+
173
+ // Hide the button icons when labels are set to display...
174
+ svg {
175
+ display: none;
176
+ }
177
+ // ... and display labels.
178
+ &::after {
179
+ content: attr(aria-label);
180
+ }
181
+ &[aria-disabled="true"] {
182
+ background-color: transparent;
183
+ }
184
+ }
185
+ .is-tertiary {
186
+ &:active {
187
+ box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);
188
+ background-color: transparent;
189
+ }
190
+ }
191
+ // Some margins and padding have to be adjusted so the buttons can still fit on smaller screens.
192
+ .edit-site-save-button__button {
193
+ padding-left: 6px;
194
+ padding-right: 6px;
195
+ margin-right: $grid-unit-05;
196
+ }
197
+ .block-editor-post-preview__button-toggle {
198
+ margin-right: $grid-unit-05;
199
+ }
200
+ // The inserter and the template details toggle have custom labels, different from their aria-label, so we don't want to display both.
201
+ .edit-site-header-toolbar__inserter-toggle.edit-site-header-toolbar__inserter-toggle,
202
+ .edit-site-document-actions__get-info.edit-site-document-actions__get-info.edit-site-document-actions__get-info {
203
+ &::after {
204
+ content: none;
205
+ }
206
+
207
+ height: 36px;
208
+ padding: 0 6px;
209
+ }
210
+ }
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
5
  import { useState } from '@wordpress/element';
6
- import { useDispatch, useSelect } from '@wordpress/data';
6
+ import { useDispatch } from '@wordpress/data';
7
7
  import {
8
8
  Button,
9
9
  Flex,
@@ -19,7 +19,6 @@ export default function RenameMenuItem( { template, onClose } ) {
19
19
  const [ title, setTitle ] = useState( () => template.title.rendered );
20
20
  const [ isModalOpen, setIsModalOpen ] = useState( false );
21
21
 
22
- const { getLastEntitySaveError } = useSelect( coreStore );
23
22
  const { editEntityRecord, saveEditedEntityRecord } = useDispatch(
24
23
  coreStore
25
24
  );
@@ -48,19 +47,10 @@ export default function RenameMenuItem( { template, onClose } ) {
48
47
  await saveEditedEntityRecord(
49
48
  'postType',
50
49
  template.type,
51
- template.id
50
+ template.id,
51
+ { throwOnError: true }
52
52
  );
53
53
 
54
- const lastError = getLastEntitySaveError(
55
- 'postType',
56
- template.type,
57
- template.id
58
- );
59
-
60
- if ( lastError ) {
61
- throw lastError;
62
- }
63
-
64
54
  createSuccessNotice( __( 'Entity renamed.' ), {
65
55
  type: 'snackbar',
66
56
  } );
@@ -0,0 +1,24 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useSelect, useDispatch } from '@wordpress/data';
5
+ import { ___unstablePreferencesModalBaseOption as BaseOption } from '@wordpress/interface';
6
+ import { store as preferencesStore } from '@wordpress/preferences';
7
+
8
+ export default function EnableFeature( props ) {
9
+ const { featureName, ...remainingProps } = props;
10
+ const isChecked = useSelect(
11
+ ( select ) =>
12
+ !! select( preferencesStore ).get( 'core/edit-site', featureName ),
13
+ [ featureName ]
14
+ );
15
+ const { toggle } = useDispatch( preferencesStore );
16
+ const onChange = () => toggle( 'core/edit-site', featureName );
17
+ return (
18
+ <BaseOption
19
+ onChange={ onChange }
20
+ isChecked={ isChecked }
21
+ { ...remainingProps }
22
+ />
23
+ );
24
+ }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import {
5
+ PreferencesModal,
6
+ PreferencesModalTabs,
7
+ PreferencesModalSection,
8
+ } from '@wordpress/interface';
9
+ import { useMemo } from '@wordpress/element';
10
+ import { __ } from '@wordpress/i18n';
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ import EnableFeature from './enable-feature';
16
+
17
+ export default function EditSitePreferencesModal( {
18
+ isModalActive,
19
+ toggleModal,
20
+ } ) {
21
+ const sections = useMemo( () => [
22
+ {
23
+ name: 'general',
24
+ tabLabel: __( 'General' ),
25
+ content: (
26
+ <PreferencesModalSection
27
+ title={ __( 'Appearance' ) }
28
+ description={ __(
29
+ 'Customize options related to the block editor interface and editing flow.'
30
+ ) }
31
+ >
32
+ <EnableFeature
33
+ featureName="focusMode"
34
+ help={ __(
35
+ 'Highlights the current block and fades other content.'
36
+ ) }
37
+ label={ __( 'Spotlight mode' ) }
38
+ />
39
+ <EnableFeature
40
+ featureName="showIconLabels"
41
+ label={ __( 'Show button text labels' ) }
42
+ help={ __( 'Show text instead of icons on buttons' ) }
43
+ />
44
+ </PreferencesModalSection>
45
+ ),
46
+ },
47
+ {
48
+ name: 'blocks',
49
+ tabLabel: __( 'Blocks' ),
50
+ content: (
51
+ <PreferencesModalSection
52
+ title={ __( 'Block interactions' ) }
53
+ description={ __(
54
+ 'Customize how you interact with blocks in the block library and editing canvas.'
55
+ ) }
56
+ >
57
+ <EnableFeature
58
+ featureName="keepCaretInsideBlock"
59
+ help={ __(
60
+ 'Aids screen readers by stopping text caret from leaving blocks.'
61
+ ) }
62
+ label={ __( 'Contain text cursor inside block' ) }
63
+ />
64
+ </PreferencesModalSection>
65
+ ),
66
+ },
67
+ ] );
68
+ if ( ! isModalActive ) {
69
+ return null;
70
+ }
71
+ return (
72
+ <PreferencesModal closeModal={ toggleModal }>
73
+ <PreferencesModalTabs sections={ sections } />
74
+ </PreferencesModal>
75
+ );
76
+ }
package/src/index.js CHANGED
@@ -61,6 +61,7 @@ export function reinitializeEditor( target, settings ) {
61
61
  editorMode: 'visual',
62
62
  fixedToolbar: false,
63
63
  focusMode: false,
64
+ keepCaretInsideBlock: false,
64
65
  welcomeGuide: true,
65
66
  welcomeGuideStyles: true,
66
67
  } );
@@ -333,11 +333,11 @@ export const revertTemplate = (
333
333
  }
334
334
 
335
335
  try {
336
- const templateEntity = registry
336
+ const templateEntityConfig = registry
337
337
  .select( coreStore )
338
- .getEntity( 'postType', template.type );
338
+ .getEntityConfig( 'postType', template.type );
339
339
 
340
- if ( ! templateEntity ) {
340
+ if ( ! templateEntityConfig ) {
341
341
  registry
342
342
  .dispatch( noticesStore )
343
343
  .createErrorNotice(
@@ -350,7 +350,7 @@ export const revertTemplate = (
350
350
  }
351
351
 
352
352
  const fileTemplatePath = addQueryArgs(
353
- `${ templateEntity.baseURL }/${ template.id }`,
353
+ `${ templateEntityConfig.baseURL }/${ template.id }`,
354
354
  { context: 'edit', source: 'theme' }
355
355
  );
356
356
 
@@ -120,6 +120,14 @@ export const getSettings = createSelector(
120
120
  state,
121
121
  'fixedToolbar'
122
122
  ),
123
+ keepCaretInsideBlock: !! __unstableGetPreference(
124
+ state,
125
+ 'keepCaretInsideBlock'
126
+ ),
127
+ showIconLabels: !! __unstableGetPreference(
128
+ state,
129
+ 'showIconLabels'
130
+ ),
123
131
  __experimentalSetIsInserterOpened: setIsInserterOpen,
124
132
  __experimentalReusableBlocks: getReusableBlocks( state ),
125
133
  __experimentalPreferPatternsOnRoot:
@@ -145,6 +153,8 @@ export const getSettings = createSelector(
145
153
  state.settings,
146
154
  __unstableGetPreference( state, 'focusMode' ),
147
155
  __unstableGetPreference( state, 'fixedToolbar' ),
156
+ __unstableGetPreference( state, 'keepCaretInsideBlock' ),
157
+ __unstableGetPreference( state, 'showIconLabels' ),
148
158
  getReusableBlocks( state ),
149
159
  getEditedPostType( state ),
150
160
  ]
@@ -79,6 +79,8 @@ describe( 'selectors', () => {
79
79
  outlineMode: true,
80
80
  focusMode: false,
81
81
  hasFixedToolbar: false,
82
+ keepCaretInsideBlock: false,
83
+ showIconLabels: false,
82
84
  __experimentalSetIsInserterOpened: setInserterOpened,
83
85
  __experimentalReusableBlocks: [],
84
86
  __experimentalPreferPatternsOnRoot: true,
@@ -102,6 +104,8 @@ describe( 'selectors', () => {
102
104
  key: 'value',
103
105
  focusMode: true,
104
106
  hasFixedToolbar: true,
107
+ keepCaretInsideBlock: false,
108
+ showIconLabels: false,
105
109
  __experimentalSetIsInserterOpened: setInserterOpened,
106
110
  __experimentalReusableBlocks: [],
107
111
  mediaUpload: expect.any( Function ),