@wordpress/block-editor 14.0.0 → 14.1.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.
- package/CHANGELOG.md +2 -0
- package/README.md +9 -14
- package/build/autocompleters/block.js +1 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +2 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +11 -4
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +28 -34
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +14 -3
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -1
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +8 -4
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/border-radius-control/index.js +1 -0
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +1 -1
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +2 -0
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +3 -0
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +3 -0
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +114 -42
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +3 -1
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build/components/global-styles/hooks.js +0 -7
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +0 -6
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +3 -3
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +8 -24
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +20 -5
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/height-control/index.js +1 -0
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/iframe/index.js +4 -2
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +11 -7
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +8 -8
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +7 -25
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +9 -11
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/library.js +4 -2
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +30 -12
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -0
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/line-height-control/index.js +3 -0
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/media-placeholder/index.js +9 -4
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +4 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +12 -12
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/text-alignment-control/index.js +13 -8
- package/build/components/text-alignment-control/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +13 -8
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +13 -8
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +2 -0
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +14 -2
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/writing-mode-control/index.js +13 -8
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/background.js +19 -23
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-bindings.js +37 -79
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/layouts/constrained.js +1 -0
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +2 -0
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/grid.js +3 -0
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +3 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/private-selectors.js +30 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +10 -1
- package/build/store/reducer.js.map +1 -1
- package/build/utils/block-bindings.js +112 -0
- package/build/utils/block-bindings.js.map +1 -0
- package/build-module/autocompleters/block.js +1 -1
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +2 -2
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +11 -4
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js +29 -34
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +14 -3
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -1
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +8 -4
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +1 -0
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +1 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -0
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +3 -0
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +3 -0
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +117 -45
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +3 -1
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +0 -6
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +1 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +5 -5
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +8 -23
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +20 -5
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/height-control/index.js +1 -0
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +4 -2
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +12 -8
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +7 -6
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +6 -23
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +9 -11
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/library.js +4 -2
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +30 -12
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +5 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/line-height-control/index.js +3 -0
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +9 -4
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +4 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +12 -12
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +13 -8
- package/build-module/components/text-alignment-control/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +13 -8
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +13 -8
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +2 -0
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +14 -2
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +13 -8
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/background.js +19 -23
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-bindings.js +38 -80
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/layouts/constrained.js +1 -0
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +2 -0
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/grid.js +3 -0
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +3 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-selectors.js +27 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +9 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/utils/block-bindings.js +105 -0
- package/build-module/utils/block-bindings.js.map +1 -0
- package/build-style/content-rtl.css +7 -14
- package/build-style/content.css +7 -14
- package/build-style/default-editor-styles-rtl.css +2 -2
- package/build-style/default-editor-styles.css +2 -2
- package/build-style/style-rtl.css +36 -38
- package/build-style/style.css +36 -38
- package/package.json +32 -32
- package/src/autocompleters/block.js +2 -1
- package/src/components/block-list/content.scss +5 -13
- package/src/components/block-list/use-block-props/index.js +2 -2
- package/src/components/block-list/use-in-between-inserter.js +17 -5
- package/src/components/block-settings-menu/block-mode-toggle.js +28 -31
- package/src/components/block-settings-menu/test/block-mode-toggle.js +26 -23
- package/src/components/block-tools/insertion-point.js +11 -0
- package/src/components/block-tools/style.scss +1 -1
- package/src/components/block-tools/use-show-block-tools.js +4 -1
- package/src/components/block-tools/zoom-out-mode-inserters.js +7 -1
- package/src/components/block-variation-transforms/style.scss +1 -1
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/style.scss +0 -10
- package/src/components/convert-to-group-buttons/index.js +1 -1
- package/src/components/date-format-picker/index.js +2 -0
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/font-family/README.md +11 -2
- package/src/components/font-family/index.js +3 -0
- package/src/components/global-styles/background-panel.js +132 -53
- package/src/components/global-styles/get-global-styles-changes.js +4 -1
- package/src/components/global-styles/hooks.js +0 -5
- package/src/components/global-styles/index.js +0 -1
- package/src/components/global-styles/style.scss +13 -2
- package/src/components/global-styles/test/use-global-styles-output.js +20 -4
- package/src/components/global-styles/use-global-styles-output.js +5 -6
- package/src/components/global-styles/utils.js +7 -29
- package/src/components/grid/grid-visualizer.js +22 -7
- package/src/components/height-control/index.js +1 -0
- package/src/components/iframe/index.js +4 -2
- package/src/components/image-editor/zoom-dropdown.js +17 -9
- package/src/components/inner-blocks/button-block-appender.js +5 -7
- package/src/components/inner-blocks/default-block-appender.js +4 -23
- package/src/components/inner-blocks/index.js +10 -9
- package/src/components/inserter/library.js +2 -0
- package/src/components/inserter/menu.js +32 -27
- package/src/components/inserter/quick-inserter.js +4 -1
- package/src/components/inserter/style.scss +1 -1
- package/src/components/inserter-list-item/style.scss +1 -0
- package/src/components/line-height-control/README.md +7 -0
- package/src/components/line-height-control/index.js +3 -0
- package/src/components/link-control/style.scss +1 -1
- package/src/components/media-placeholder/index.js +12 -7
- package/src/components/media-upload/README.md +2 -0
- package/src/components/media-upload/index.native.js +2 -0
- package/src/components/multi-selection-inspector/index.js +8 -9
- package/src/components/responsive-block-control/README.md +1 -0
- package/src/components/responsive-block-control/test/index.js +1 -0
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -4
- package/src/components/spacing-sizes-control/style.scss +16 -16
- package/src/components/text-alignment-control/index.js +20 -8
- package/src/components/text-decoration-control/index.js +20 -8
- package/src/components/text-decoration-control/stories/index.story.js +0 -4
- package/src/components/text-transform-control/index.js +20 -8
- package/src/components/text-transform-control/stories/index.story.js +0 -4
- package/src/components/url-input/style.scss +2 -2
- package/src/components/url-popover/image-url-input-ui.js +2 -0
- package/src/components/use-block-drop-zone/index.js +21 -3
- package/src/components/writing-mode-control/index.js +20 -8
- package/src/hooks/background.js +21 -27
- package/src/hooks/block-bindings.js +27 -84
- package/src/hooks/block-bindings.scss +1 -1
- package/src/hooks/test/background.js +60 -0
- package/src/layouts/constrained.js +1 -0
- package/src/layouts/flex.js +2 -0
- package/src/layouts/grid.js +3 -0
- package/src/private-apis.js +2 -0
- package/src/store/private-selectors.js +36 -0
- package/src/store/reducer.js +7 -0
- package/src/store/test/private-selectors.js +89 -0
- package/src/style.scss +0 -1
- package/src/utils/block-bindings.js +98 -0
- package/src/utils/test/transform-styles.js +49 -0
- package/build/components/global-styles/theme-file-uri-utils.js +0 -21
- package/build/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build/components/inner-blocks/with-client-id.js +0 -28
- package/build/components/inner-blocks/with-client-id.js.map +0 -1
- package/build/components/segmented-text-control/index.js +0 -63
- package/build/components/segmented-text-control/index.js.map +0 -1
- package/build-module/components/global-styles/theme-file-uri-utils.js +0 -15
- package/build-module/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build-module/components/inner-blocks/with-client-id.js +0 -21
- package/build-module/components/inner-blocks/with-client-id.js.map +0 -1
- package/build-module/components/segmented-text-control/index.js +0 -58
- package/build-module/components/segmented-text-control/index.js.map +0 -1
- package/src/components/global-styles/test/theme-file-uri-utils.js +0 -41
- package/src/components/global-styles/theme-file-uri-utils.js +0 -18
- package/src/components/inner-blocks/with-client-id.js +0 -19
- package/src/components/segmented-text-control/index.js +0 -63
- package/src/components/segmented-text-control/style.scss +0 -15
|
@@ -25,6 +25,7 @@ export function useInBetweenInserter() {
|
|
|
25
25
|
getBlockIndex,
|
|
26
26
|
isMultiSelecting,
|
|
27
27
|
getSelectedBlockClientIds,
|
|
28
|
+
getSettings,
|
|
28
29
|
getTemplateLock,
|
|
29
30
|
__unstableIsWithinBlockOverlay,
|
|
30
31
|
getBlockEditingMode,
|
|
@@ -88,9 +89,11 @@ export function useInBetweenInserter() {
|
|
|
88
89
|
return;
|
|
89
90
|
}
|
|
90
91
|
|
|
92
|
+
const blockListSettings = getBlockListSettings( rootClientId );
|
|
91
93
|
const orientation =
|
|
92
|
-
|
|
93
|
-
|
|
94
|
+
blockListSettings?.orientation || 'vertical';
|
|
95
|
+
const captureToolbars =
|
|
96
|
+
!! blockListSettings?.__experimentalCaptureToolbars;
|
|
94
97
|
const offsetTop = event.clientY;
|
|
95
98
|
const offsetLeft = event.clientX;
|
|
96
99
|
|
|
@@ -135,9 +138,18 @@ export function useInBetweenInserter() {
|
|
|
135
138
|
return;
|
|
136
139
|
}
|
|
137
140
|
|
|
138
|
-
// Don't show the inserter
|
|
139
|
-
//
|
|
140
|
-
|
|
141
|
+
// Don't show the inserter if the following conditions are met,
|
|
142
|
+
// as it conflicts with the block toolbar:
|
|
143
|
+
// 1. when hovering above or inside selected block(s)
|
|
144
|
+
// 2. when the orientation is vertical
|
|
145
|
+
// 3. when the __experimentalCaptureToolbars is not enabled
|
|
146
|
+
// 4. when the Top Toolbar is not disabled
|
|
147
|
+
if (
|
|
148
|
+
getSelectedBlockClientIds().includes( clientId ) &&
|
|
149
|
+
orientation === 'vertical' &&
|
|
150
|
+
! captureToolbars &&
|
|
151
|
+
! getSettings().hasFixedToolbar
|
|
152
|
+
) {
|
|
141
153
|
return;
|
|
142
154
|
}
|
|
143
155
|
const elementRect = element.getBoundingClientRect();
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
import { MenuItem } from '@wordpress/components';
|
|
6
6
|
import { getBlockType, hasBlockSupport } from '@wordpress/blocks';
|
|
7
|
-
import {
|
|
8
|
-
import { compose } from '@wordpress/compose';
|
|
7
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* Internal dependencies
|
|
@@ -14,13 +13,23 @@ import { store as blockEditorStore } from '../../store';
|
|
|
14
13
|
|
|
15
14
|
const noop = () => {};
|
|
16
15
|
|
|
17
|
-
export function BlockModeToggle( {
|
|
18
|
-
blockType,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
export default function BlockModeToggle( { clientId, onToggle = noop } ) {
|
|
17
|
+
const { blockType, mode, isCodeEditingEnabled } = useSelect(
|
|
18
|
+
( select ) => {
|
|
19
|
+
const { getBlock, getBlockMode, getSettings } =
|
|
20
|
+
select( blockEditorStore );
|
|
21
|
+
const block = getBlock( clientId );
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
mode: getBlockMode( clientId ),
|
|
25
|
+
blockType: block ? getBlockType( block.name ) : null,
|
|
26
|
+
isCodeEditingEnabled: getSettings().codeEditingEnabled,
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
[ clientId ]
|
|
30
|
+
);
|
|
31
|
+
const { toggleBlockMode } = useDispatch( blockEditorStore );
|
|
32
|
+
|
|
24
33
|
if (
|
|
25
34
|
! blockType ||
|
|
26
35
|
! hasBlockSupport( blockType, 'html', true ) ||
|
|
@@ -32,26 +41,14 @@ export function BlockModeToggle( {
|
|
|
32
41
|
const label =
|
|
33
42
|
mode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );
|
|
34
43
|
|
|
35
|
-
return
|
|
44
|
+
return (
|
|
45
|
+
<MenuItem
|
|
46
|
+
onClick={ () => {
|
|
47
|
+
toggleBlockMode( clientId );
|
|
48
|
+
onToggle();
|
|
49
|
+
} }
|
|
50
|
+
>
|
|
51
|
+
{ label }
|
|
52
|
+
</MenuItem>
|
|
53
|
+
);
|
|
36
54
|
}
|
|
37
|
-
|
|
38
|
-
export default compose( [
|
|
39
|
-
withSelect( ( select, { clientId } ) => {
|
|
40
|
-
const { getBlock, getBlockMode, getSettings } =
|
|
41
|
-
select( blockEditorStore );
|
|
42
|
-
const block = getBlock( clientId );
|
|
43
|
-
const isCodeEditingEnabled = getSettings().codeEditingEnabled;
|
|
44
|
-
|
|
45
|
-
return {
|
|
46
|
-
mode: getBlockMode( clientId ),
|
|
47
|
-
blockType: block ? getBlockType( block.name ) : null,
|
|
48
|
-
isCodeEditingEnabled,
|
|
49
|
-
};
|
|
50
|
-
} ),
|
|
51
|
-
withDispatch( ( dispatch, { onToggle = noop, clientId } ) => ( {
|
|
52
|
-
onToggleMode() {
|
|
53
|
-
dispatch( blockEditorStore ).toggleBlockMode( clientId );
|
|
54
|
-
onToggle();
|
|
55
|
-
},
|
|
56
|
-
} ) ),
|
|
57
|
-
] )( BlockModeToggle );
|
|
@@ -3,16 +3,32 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { render, screen } from '@testing-library/react';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useSelect } from '@wordpress/data';
|
|
10
|
+
|
|
6
11
|
/**
|
|
7
12
|
* Internal dependencies
|
|
8
13
|
*/
|
|
9
|
-
import
|
|
14
|
+
import BlockModeToggle from '../block-mode-toggle';
|
|
15
|
+
|
|
16
|
+
jest.mock( '@wordpress/data/src/components/use-select', () => jest.fn() );
|
|
17
|
+
|
|
18
|
+
function setupUseSelectMock( mode, blockType, codeEditingEnabled = true ) {
|
|
19
|
+
useSelect.mockImplementation( () => {
|
|
20
|
+
return {
|
|
21
|
+
mode,
|
|
22
|
+
blockType,
|
|
23
|
+
isCodeEditingEnabled: codeEditingEnabled,
|
|
24
|
+
};
|
|
25
|
+
} );
|
|
26
|
+
}
|
|
10
27
|
|
|
11
28
|
describe( 'BlockModeToggle', () => {
|
|
12
29
|
it( "should not render the HTML mode button if the block doesn't support it", () => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
);
|
|
30
|
+
setupUseSelectMock( undefined, { supports: { html: false } } );
|
|
31
|
+
render( <BlockModeToggle /> );
|
|
16
32
|
|
|
17
33
|
expect(
|
|
18
34
|
screen.queryByRole( 'menuitem', { name: 'Edit as HTML' } )
|
|
@@ -20,12 +36,8 @@ describe( 'BlockModeToggle', () => {
|
|
|
20
36
|
} );
|
|
21
37
|
|
|
22
38
|
it( 'should render the HTML mode button', () => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
blockType={ { supports: { html: true } } }
|
|
26
|
-
mode="visual"
|
|
27
|
-
/>
|
|
28
|
-
);
|
|
39
|
+
setupUseSelectMock( 'visual', { supports: { html: true } } );
|
|
40
|
+
render( <BlockModeToggle /> );
|
|
29
41
|
|
|
30
42
|
expect(
|
|
31
43
|
screen.getByRole( 'menuitem', { name: 'Edit as HTML' } )
|
|
@@ -33,12 +45,8 @@ describe( 'BlockModeToggle', () => {
|
|
|
33
45
|
} );
|
|
34
46
|
|
|
35
47
|
it( 'should render the Visual mode button', () => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
blockType={ { supports: { html: true } } }
|
|
39
|
-
mode="html"
|
|
40
|
-
/>
|
|
41
|
-
);
|
|
48
|
+
setupUseSelectMock( 'html', { supports: { html: true } } );
|
|
49
|
+
render( <BlockModeToggle /> );
|
|
42
50
|
|
|
43
51
|
expect(
|
|
44
52
|
screen.getByRole( 'menuitem', { name: 'Edit visually' } )
|
|
@@ -46,13 +54,8 @@ describe( 'BlockModeToggle', () => {
|
|
|
46
54
|
} );
|
|
47
55
|
|
|
48
56
|
it( 'should not render the Visual mode button if code editing is disabled', () => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
blockType={ { supports: { html: true } } }
|
|
52
|
-
mode="html"
|
|
53
|
-
isCodeEditingEnabled={ false }
|
|
54
|
-
/>
|
|
55
|
-
);
|
|
57
|
+
setupUseSelectMock( 'html', { supports: { html: true } }, false );
|
|
58
|
+
render( <BlockModeToggle /> );
|
|
56
59
|
|
|
57
60
|
expect(
|
|
58
61
|
screen.queryByRole( 'menuitem', { name: 'Edit visually' } )
|
|
@@ -38,6 +38,7 @@ function InbetweenInsertionPointPopover( {
|
|
|
38
38
|
isInserterShown,
|
|
39
39
|
isDistractionFree,
|
|
40
40
|
isNavigationMode,
|
|
41
|
+
isZoomOutMode,
|
|
41
42
|
} = useSelect( ( select ) => {
|
|
42
43
|
const {
|
|
43
44
|
getBlockOrder,
|
|
@@ -48,6 +49,7 @@ function InbetweenInsertionPointPopover( {
|
|
|
48
49
|
getNextBlockClientId,
|
|
49
50
|
getSettings,
|
|
50
51
|
isNavigationMode: _isNavigationMode,
|
|
52
|
+
__unstableGetEditorMode,
|
|
51
53
|
} = select( blockEditorStore );
|
|
52
54
|
const insertionPoint = getBlockInsertionPoint();
|
|
53
55
|
const order = getBlockOrder( insertionPoint.rootClientId );
|
|
@@ -79,6 +81,7 @@ function InbetweenInsertionPointPopover( {
|
|
|
79
81
|
isNavigationMode: _isNavigationMode(),
|
|
80
82
|
isDistractionFree: settings.isDistractionFree,
|
|
81
83
|
isInserterShown: insertionPoint?.__unstableWithInserter,
|
|
84
|
+
isZoomOutMode: __unstableGetEditorMode() === 'zoom-out',
|
|
82
85
|
};
|
|
83
86
|
}, [] );
|
|
84
87
|
const { getBlockEditingMode } = useSelect( blockEditorStore );
|
|
@@ -145,6 +148,14 @@ function InbetweenInsertionPointPopover( {
|
|
|
145
148
|
return null;
|
|
146
149
|
}
|
|
147
150
|
|
|
151
|
+
// Zoom out mode should only show the insertion point for the insert operation.
|
|
152
|
+
// Other operations such as "group" are when the editor tries to create a row
|
|
153
|
+
// block by grouping the block being dragged with the block it's being dropped
|
|
154
|
+
// onto.
|
|
155
|
+
if ( isZoomOutMode && operation !== 'insert' ) {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
|
|
148
159
|
const orientationClassname =
|
|
149
160
|
orientation === 'horizontal' || operation === 'group'
|
|
150
161
|
? 'is-horizontal'
|
|
@@ -20,6 +20,7 @@ export function useShowBlockTools() {
|
|
|
20
20
|
getSelectedBlockClientId,
|
|
21
21
|
getFirstMultiSelectedBlockClientId,
|
|
22
22
|
getBlock,
|
|
23
|
+
getBlockMode,
|
|
23
24
|
getSettings,
|
|
24
25
|
hasMultiSelection,
|
|
25
26
|
__unstableGetEditorMode,
|
|
@@ -33,7 +34,9 @@ export function useShowBlockTools() {
|
|
|
33
34
|
const editorMode = __unstableGetEditorMode();
|
|
34
35
|
const hasSelectedBlock = !! clientId && !! block;
|
|
35
36
|
const isEmptyDefaultBlock =
|
|
36
|
-
hasSelectedBlock &&
|
|
37
|
+
hasSelectedBlock &&
|
|
38
|
+
isUnmodifiedDefaultBlock( block ) &&
|
|
39
|
+
getBlockMode( clientId ) !== 'html';
|
|
37
40
|
const _showEmptyBlockSideInserter =
|
|
38
41
|
clientId &&
|
|
39
42
|
! isTyping() &&
|
|
@@ -23,6 +23,7 @@ function ZoomOutModeInserters() {
|
|
|
23
23
|
sectionRootClientId,
|
|
24
24
|
selectedBlockClientId,
|
|
25
25
|
hoveredBlockClientId,
|
|
26
|
+
inserterSearchInputRef,
|
|
26
27
|
} = useSelect( ( select ) => {
|
|
27
28
|
const {
|
|
28
29
|
getSettings,
|
|
@@ -32,8 +33,11 @@ function ZoomOutModeInserters() {
|
|
|
32
33
|
getSelectedBlockClientId,
|
|
33
34
|
getHoveredBlockClientId,
|
|
34
35
|
isBlockInsertionPointVisible,
|
|
35
|
-
|
|
36
|
+
getInserterSearchInputRef,
|
|
37
|
+
} = unlock( select( blockEditorStore ) );
|
|
38
|
+
|
|
36
39
|
const { sectionRootClientId: root } = unlock( getSettings() );
|
|
40
|
+
|
|
37
41
|
return {
|
|
38
42
|
hasSelection: !! getSelectionStart().clientId,
|
|
39
43
|
blockInsertionPoint: getBlockInsertionPoint(),
|
|
@@ -44,6 +48,7 @@ function ZoomOutModeInserters() {
|
|
|
44
48
|
getSettings().__experimentalSetIsInserterOpened,
|
|
45
49
|
selectedBlockClientId: getSelectedBlockClientId(),
|
|
46
50
|
hoveredBlockClientId: getHoveredBlockClientId(),
|
|
51
|
+
inserterSearchInputRef: getInserterSearchInputRef(),
|
|
47
52
|
};
|
|
48
53
|
}, [] );
|
|
49
54
|
|
|
@@ -110,6 +115,7 @@ function ZoomOutModeInserters() {
|
|
|
110
115
|
showInsertionPoint( sectionRootClientId, index, {
|
|
111
116
|
operation: 'insert',
|
|
112
117
|
} );
|
|
118
|
+
inserterSearchInputRef?.current?.focus();
|
|
113
119
|
} }
|
|
114
120
|
/>
|
|
115
121
|
) }
|
|
@@ -104,6 +104,7 @@ export default function BorderRadiusControl( { onChange, values } ) {
|
|
|
104
104
|
units={ units }
|
|
105
105
|
/>
|
|
106
106
|
<RangeControl
|
|
107
|
+
__next40pxDefaultSize
|
|
107
108
|
label={ __( 'Border radius' ) }
|
|
108
109
|
hideLabelFromVision
|
|
109
110
|
className="components-border-radius-control__range-control"
|
|
@@ -82,7 +82,7 @@ function ConvertToGroupButton( {
|
|
|
82
82
|
>
|
|
83
83
|
{ _x(
|
|
84
84
|
'Ungroup',
|
|
85
|
-
'Ungrouping blocks from within a grouping block back into individual blocks within the Editor
|
|
85
|
+
'Ungrouping blocks from within a grouping block back into individual blocks within the Editor'
|
|
86
86
|
) }
|
|
87
87
|
</MenuItem>
|
|
88
88
|
) }
|
|
@@ -129,6 +129,7 @@ function NonDefaultControls( { format, onChange } ) {
|
|
|
129
129
|
return (
|
|
130
130
|
<VStack>
|
|
131
131
|
<CustomSelectControl
|
|
132
|
+
__next40pxDefaultSize
|
|
132
133
|
label={ __( 'Choose a format' ) }
|
|
133
134
|
options={ [ ...suggestedOptions, customOption ] }
|
|
134
135
|
value={
|
|
@@ -149,6 +150,7 @@ function NonDefaultControls( { format, onChange } ) {
|
|
|
149
150
|
/>
|
|
150
151
|
{ isCustom && (
|
|
151
152
|
<TextControl
|
|
153
|
+
__next40pxDefaultSize
|
|
152
154
|
__nextHasNoMarginBottom
|
|
153
155
|
label={ __( 'Custom format' ) }
|
|
154
156
|
hideLabelFromVision
|
|
@@ -39,6 +39,8 @@ const getFontAppearanceLabel = ( hasFontStyles, hasFontWeights ) => {
|
|
|
39
39
|
*/
|
|
40
40
|
export default function FontAppearanceControl( props ) {
|
|
41
41
|
const {
|
|
42
|
+
/** Start opting into the larger default height that will become the default size in a future version. */
|
|
43
|
+
__next40pxDefaultSize = false,
|
|
42
44
|
onChange,
|
|
43
45
|
hasFontStyles = true,
|
|
44
46
|
hasFontWeights = true,
|
|
@@ -150,6 +152,7 @@ export default function FontAppearanceControl( props ) {
|
|
|
150
152
|
<CustomSelectControl
|
|
151
153
|
{ ...otherProps }
|
|
152
154
|
className="components-font-appearance-control"
|
|
155
|
+
__next40pxDefaultSize={ __next40pxDefaultSize }
|
|
153
156
|
label={ label }
|
|
154
157
|
describedBy={ getDescribedBy() }
|
|
155
158
|
options={ selectOptions }
|
|
@@ -71,9 +71,18 @@ The current font family value.
|
|
|
71
71
|
|
|
72
72
|
The rest of the props are passed down to the underlying `<SelectControl />` instance.
|
|
73
73
|
|
|
74
|
+
#### `__next40pxDefaultSize`
|
|
75
|
+
|
|
76
|
+
- Type: `boolean`
|
|
77
|
+
- Required: No
|
|
78
|
+
- Default: `false`
|
|
79
|
+
|
|
80
|
+
Start opting into the larger default height that will become the default size in a future version.
|
|
81
|
+
|
|
74
82
|
#### `__nextHasNoMarginBottom`
|
|
75
83
|
|
|
76
|
-
-
|
|
77
|
-
-
|
|
84
|
+
- Type: `boolean`
|
|
85
|
+
- Required: No
|
|
86
|
+
- Default: `false`
|
|
78
87
|
|
|
79
88
|
Start opting into the new margin-free styles that will become the default in a future version.
|
|
@@ -11,6 +11,8 @@ import { __ } from '@wordpress/i18n';
|
|
|
11
11
|
import { useSettings } from '../use-settings';
|
|
12
12
|
|
|
13
13
|
export default function FontFamilyControl( {
|
|
14
|
+
/** Start opting into the larger default height that will become the default size in a future version. */
|
|
15
|
+
__next40pxDefaultSize = false,
|
|
14
16
|
/** Start opting into the new margin-free styles that will become the default in a future version. */
|
|
15
17
|
__nextHasNoMarginBottom = false,
|
|
16
18
|
value = '',
|
|
@@ -50,6 +52,7 @@ export default function FontFamilyControl( {
|
|
|
50
52
|
|
|
51
53
|
return (
|
|
52
54
|
<SelectControl
|
|
55
|
+
__next40pxDefaultSize={ __next40pxDefaultSize }
|
|
53
56
|
__nextHasNoMarginBottom={ __nextHasNoMarginBottom }
|
|
54
57
|
label={ __( 'Font' ) }
|
|
55
58
|
options={ options }
|