@wordpress/block-editor 14.7.1-next.082ed6819.0 → 14.8.1-next.a9f418477.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/build/autocompleters/block.js +2 -4
- package/build/autocompleters/block.js.map +1 -1
- package/build/autocompleters/link.js +2 -4
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/block-canvas/index.js +3 -6
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-list/block.js +6 -5
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +0 -1
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +6 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +87 -0
- package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -0
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +98 -5
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-lock/modal.js +4 -4
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-parent-selector/index.js +2 -15
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +13 -4
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-popover/inbetween.js +4 -0
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +7 -4
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +12 -22
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +0 -1
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-switcher/utils.js +0 -1
- package/build/components/block-switcher/utils.js.map +1 -1
- package/build/components/block-toolbar/index.js +17 -9
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +0 -1
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +0 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +1 -0
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +10 -0
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +17 -16
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +0 -1
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build/components/iframe/index.js +12 -216
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/iframe/use-scale-canvas.js +398 -0
- package/build/components/iframe/use-scale-canvas.js.map +1 -0
- package/build/components/image-editor/use-save-image.js +22 -3
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +0 -10
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/menu.js +2 -1
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +19 -10
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/slot.js +2 -13
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +10 -0
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +1 -0
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/media-placeholder/index.js +18 -18
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +9 -25
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/observe-typing/index.js +0 -1
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/recursion-provider/index.js +0 -1
- package/build/components/recursion-provider/index.js.map +1 -1
- package/build/components/rich-text/index.js +5 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/native/use-format-types.js +0 -1
- package/build/components/rich-text/native/use-format-types.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +0 -1
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +0 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/typewriter/index.js +0 -1
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +11 -2
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +15 -2
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +1 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/warning/index.js +2 -3
- package/build/components/warning/index.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +11 -0
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +6 -2
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/block-bindings.js +4 -3
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/gap.js +1 -1
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/generated-class-name.js +0 -1
- package/build/hooks/generated-class-name.js.map +1 -1
- package/build/hooks/use-zoom-out.js +47 -14
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/store/private-selectors.js +1 -7
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +478 -2
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +12 -55
- package/build/store/selectors.js.map +1 -1
- package/build/utils/object.js +0 -1
- package/build/utils/object.js.map +1 -1
- package/build-module/autocompleters/block.js +2 -4
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/autocompleters/link.js +2 -4
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/block-canvas/index.js +3 -6
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-list/block.js +8 -7
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +0 -1
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +6 -2
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +80 -0
- package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -0
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +97 -5
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-lock/modal.js +4 -4
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +2 -15
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +13 -4
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +4 -0
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -4
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +1 -1
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +13 -23
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +0 -1
- package/build-module/components/block-switcher/utils.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +17 -9
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +0 -1
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +0 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +1 -0
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +10 -0
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +17 -16
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +0 -1
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build-module/components/iframe/index.js +14 -218
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/iframe/use-scale-canvas.js +392 -0
- package/build-module/components/iframe/use-scale-canvas.js.map +1 -0
- package/build-module/components/image-editor/use-save-image.js +22 -3
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +1 -11
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/menu.js +2 -1
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +20 -11
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +3 -14
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +9 -0
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +1 -0
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +18 -18
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +9 -25
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/observe-typing/index.js +0 -1
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/recursion-provider/index.js +0 -1
- package/build-module/components/recursion-provider/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +5 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/native/use-format-types.js +0 -1
- package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +0 -1
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +0 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/typewriter/index.js +0 -1
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +11 -2
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +15 -2
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +1 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/warning/index.js +2 -3
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +11 -0
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +6 -2
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/block-bindings.js +4 -3
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/gap.js +1 -1
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/generated-class-name.js +0 -1
- package/build-module/hooks/generated-class-name.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +48 -15
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/store/private-selectors.js +1 -6
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +479 -3
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +12 -55
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/object.js +0 -1
- package/build-module/utils/object.js.map +1 -1
- package/build-style/content-rtl.css +25 -27
- package/build-style/content.css +25 -27
- package/build-style/style-rtl.css +55 -64
- package/build-style/style.css +55 -64
- package/package.json +32 -32
- package/src/autocompleters/block.js +2 -4
- package/src/autocompleters/link.js +2 -4
- package/src/components/alignment-control/stories/aliginment-toolbar.story.js +47 -0
- package/src/components/alignment-control/stories/index.story.js +51 -0
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +5 -5
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +4 -4
- package/src/components/block-canvas/index.js +3 -5
- package/src/components/block-canvas/style.scss +2 -1
- package/src/components/block-draggable/content.scss +11 -5
- package/src/components/block-list/block.js +7 -13
- package/src/components/block-list/content.scss +6 -0
- package/src/components/block-list/use-block-props/index.js +5 -0
- package/src/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +83 -0
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +112 -8
- package/src/components/block-lock/modal.js +4 -6
- package/src/components/block-parent-selector/index.js +1 -19
- package/src/components/block-patterns-list/index.js +12 -1
- package/src/components/block-patterns-list/stories/fixtures.js +1 -0
- package/src/components/block-patterns-list/style.scss +16 -5
- package/src/components/block-popover/inbetween.js +4 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +6 -1
- package/src/components/block-settings-menu-controls/index.js +2 -1
- package/src/components/block-switcher/index.js +19 -21
- package/src/components/block-switcher/style.scss +0 -9
- package/src/components/block-title/test/index.js +2 -0
- package/src/components/block-toolbar/index.js +17 -6
- package/src/components/block-tools/style.scss +44 -0
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
- package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
- package/src/components/dimensions-tool/stories/aspect-ratio-tool.story.js +1 -1
- package/src/components/dimensions-tool/stories/index.story.js +1 -1
- package/src/components/dimensions-tool/stories/scale-tool.story.js +1 -1
- package/src/components/dimensions-tool/stories/width-height-tool.story.js +1 -1
- package/src/components/font-appearance-control/index.js +1 -0
- package/src/components/font-family/index.js +10 -0
- package/src/components/font-family/style.scss +5 -0
- package/src/components/global-styles/dimensions-panel.js +16 -16
- package/src/components/iframe/content.scss +40 -42
- package/src/components/iframe/index.js +13 -313
- package/src/components/iframe/use-scale-canvas.js +490 -0
- package/src/components/image-editor/use-save-image.js +27 -2
- package/src/components/inserter/block-patterns-tab/index.js +1 -17
- package/src/components/inserter/menu.js +8 -1
- package/src/components/inserter-draggable-blocks/index.js +19 -29
- package/src/components/inspector-controls/slot.js +3 -22
- package/src/components/letter-spacing-control/README.md +2 -1
- package/src/components/letter-spacing-control/index.js +17 -0
- package/src/components/line-height-control/index.js +1 -0
- package/src/components/media-placeholder/index.js +25 -28
- package/src/components/multi-selection-inspector/index.js +17 -27
- package/src/components/multi-selection-inspector/style.scss +0 -12
- package/src/components/resolution-tool/stories/index.story.js +1 -1
- package/src/components/rich-text/index.js +5 -0
- package/src/components/spacing-sizes-control/style.scss +0 -29
- package/src/components/text-alignment-control/stories/index.story.js +1 -1
- package/src/components/use-block-drop-zone/index.js +18 -1
- package/src/components/use-moving-animation/index.js +15 -0
- package/src/components/use-resize-canvas/index.js +1 -1
- package/src/components/warning/index.js +3 -4
- package/src/components/warning/test/index.js +3 -1
- package/src/components/writing-flow/use-drag-selection.js +11 -0
- package/src/components/writing-flow/use-tab-nav.js +9 -6
- package/src/hooks/block-bindings.js +8 -4
- package/src/hooks/gap.js +1 -1
- package/src/hooks/use-zoom-out.js +48 -16
- package/src/store/private-selectors.js +2 -17
- package/src/store/reducer.js +639 -2
- package/src/store/selectors.js +19 -69
- package/src/store/test/private-selectors.js +1 -0
- package/src/store/test/reducer.js +849 -0
- package/src/store/test/selectors.js +4 -110
- package/src/style.scss +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -5,12 +5,15 @@ import { isTextField } from '@wordpress/dom';
|
|
|
5
5
|
import { ENTER, BACKSPACE, DELETE } from '@wordpress/keycodes';
|
|
6
6
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
7
7
|
import { useRefEffect } from '@wordpress/compose';
|
|
8
|
+
import { createRoot } from '@wordpress/element';
|
|
9
|
+
import { store as blocksStore } from '@wordpress/blocks';
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* Internal dependencies
|
|
11
13
|
*/
|
|
12
14
|
import { store as blockEditorStore } from '../../../store';
|
|
13
15
|
import { unlock } from '../../../lock-unlock';
|
|
16
|
+
import BlockDraggableChip from '../../../components/block-draggable/draggable-chip';
|
|
14
17
|
|
|
15
18
|
/**
|
|
16
19
|
* Adds block behaviour:
|
|
@@ -21,12 +24,16 @@ import { unlock } from '../../../lock-unlock';
|
|
|
21
24
|
* @param {string} clientId Block client ID.
|
|
22
25
|
*/
|
|
23
26
|
export function useEventHandlers( { clientId, isSelected } ) {
|
|
24
|
-
const {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const {
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const { getBlockType } = useSelect( blocksStore );
|
|
28
|
+
const { getBlockRootClientId, isZoomOut, hasMultiSelection, getBlockName } =
|
|
29
|
+
unlock( useSelect( blockEditorStore ) );
|
|
30
|
+
const {
|
|
31
|
+
insertAfterBlock,
|
|
32
|
+
removeBlock,
|
|
33
|
+
resetZoomLevel,
|
|
34
|
+
startDraggingBlocks,
|
|
35
|
+
stopDraggingBlocks,
|
|
36
|
+
} = unlock( useDispatch( blockEditorStore ) );
|
|
30
37
|
|
|
31
38
|
return useRefEffect(
|
|
32
39
|
( node ) => {
|
|
@@ -76,7 +83,102 @@ export function useEventHandlers( { clientId, isSelected } ) {
|
|
|
76
83
|
* @param {DragEvent} event Drag event.
|
|
77
84
|
*/
|
|
78
85
|
function onDragStart( event ) {
|
|
79
|
-
|
|
86
|
+
if (
|
|
87
|
+
node !== event.target ||
|
|
88
|
+
node.isContentEditable ||
|
|
89
|
+
node.ownerDocument.activeElement !== node ||
|
|
90
|
+
hasMultiSelection()
|
|
91
|
+
) {
|
|
92
|
+
event.preventDefault();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const data = JSON.stringify( {
|
|
96
|
+
type: 'block',
|
|
97
|
+
srcClientIds: [ clientId ],
|
|
98
|
+
srcRootClientId: getBlockRootClientId( clientId ),
|
|
99
|
+
} );
|
|
100
|
+
event.dataTransfer.effectAllowed = 'move'; // remove "+" cursor
|
|
101
|
+
event.dataTransfer.clearData();
|
|
102
|
+
event.dataTransfer.setData( 'wp-blocks', data );
|
|
103
|
+
const { ownerDocument } = node;
|
|
104
|
+
const { defaultView } = ownerDocument;
|
|
105
|
+
const selection = defaultView.getSelection();
|
|
106
|
+
selection.removeAllRanges();
|
|
107
|
+
|
|
108
|
+
const domNode = document.createElement( 'div' );
|
|
109
|
+
const root = createRoot( domNode );
|
|
110
|
+
root.render(
|
|
111
|
+
<BlockDraggableChip
|
|
112
|
+
icon={ getBlockType( getBlockName( clientId ) ).icon }
|
|
113
|
+
/>
|
|
114
|
+
);
|
|
115
|
+
document.body.appendChild( domNode );
|
|
116
|
+
domNode.style.position = 'absolute';
|
|
117
|
+
domNode.style.top = '0';
|
|
118
|
+
domNode.style.left = '0';
|
|
119
|
+
domNode.style.zIndex = '1000';
|
|
120
|
+
domNode.style.pointerEvents = 'none';
|
|
121
|
+
|
|
122
|
+
// Setting the drag chip as the drag image actually works, but
|
|
123
|
+
// the behaviour is slightly different in every browser. In
|
|
124
|
+
// Safari, it animates, in Firefox it's slightly transparent...
|
|
125
|
+
// So we set a fake drag image and have to reposition it
|
|
126
|
+
// ourselves.
|
|
127
|
+
const dragElement = ownerDocument.createElement( 'div' );
|
|
128
|
+
// Chrome will show a globe icon if the drag element does not
|
|
129
|
+
// have dimensions.
|
|
130
|
+
dragElement.style.width = '1px';
|
|
131
|
+
dragElement.style.height = '1px';
|
|
132
|
+
dragElement.style.position = 'fixed';
|
|
133
|
+
dragElement.style.visibility = 'hidden';
|
|
134
|
+
ownerDocument.body.appendChild( dragElement );
|
|
135
|
+
event.dataTransfer.setDragImage( dragElement, 0, 0 );
|
|
136
|
+
|
|
137
|
+
let offset = { x: 0, y: 0 };
|
|
138
|
+
|
|
139
|
+
if ( document !== ownerDocument ) {
|
|
140
|
+
const frame = defaultView.frameElement;
|
|
141
|
+
if ( frame ) {
|
|
142
|
+
const rect = frame.getBoundingClientRect();
|
|
143
|
+
offset = { x: rect.left, y: rect.top };
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// chip handle offset
|
|
148
|
+
offset.x -= 58;
|
|
149
|
+
|
|
150
|
+
function over( e ) {
|
|
151
|
+
domNode.style.transform = `translate( ${
|
|
152
|
+
e.clientX + offset.x
|
|
153
|
+
}px, ${ e.clientY + offset.y }px )`;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
over( event );
|
|
157
|
+
|
|
158
|
+
function end() {
|
|
159
|
+
ownerDocument.removeEventListener( 'dragover', over );
|
|
160
|
+
ownerDocument.removeEventListener( 'dragend', end );
|
|
161
|
+
domNode.remove();
|
|
162
|
+
dragElement.remove();
|
|
163
|
+
stopDraggingBlocks();
|
|
164
|
+
document.body.classList.remove(
|
|
165
|
+
'is-dragging-components-draggable'
|
|
166
|
+
);
|
|
167
|
+
ownerDocument.documentElement.classList.remove(
|
|
168
|
+
'is-dragging'
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
ownerDocument.addEventListener( 'dragover', over );
|
|
173
|
+
ownerDocument.addEventListener( 'dragend', end );
|
|
174
|
+
ownerDocument.addEventListener( 'drop', end );
|
|
175
|
+
|
|
176
|
+
startDraggingBlocks( [ clientId ] );
|
|
177
|
+
// Important because it hides the block toolbar.
|
|
178
|
+
document.body.classList.add(
|
|
179
|
+
'is-dragging-components-draggable'
|
|
180
|
+
);
|
|
181
|
+
ownerDocument.documentElement.classList.add( 'is-dragging' );
|
|
80
182
|
}
|
|
81
183
|
|
|
82
184
|
node.addEventListener( 'keydown', onKeyDown );
|
|
@@ -91,11 +193,13 @@ export function useEventHandlers( { clientId, isSelected } ) {
|
|
|
91
193
|
clientId,
|
|
92
194
|
isSelected,
|
|
93
195
|
getBlockRootClientId,
|
|
94
|
-
getBlockIndex,
|
|
95
196
|
insertAfterBlock,
|
|
96
197
|
removeBlock,
|
|
97
198
|
isZoomOut,
|
|
98
199
|
resetZoomLevel,
|
|
200
|
+
hasMultiSelection,
|
|
201
|
+
startDraggingBlocks,
|
|
202
|
+
stopDraggingBlocks,
|
|
99
203
|
]
|
|
100
204
|
);
|
|
101
205
|
}
|
|
@@ -99,9 +99,7 @@ export default function BlockLockModal( { clientId, onClose } ) {
|
|
|
99
99
|
>
|
|
100
100
|
<fieldset className="block-editor-block-lock-modal__options">
|
|
101
101
|
<legend>
|
|
102
|
-
{ __(
|
|
103
|
-
'Choose specific attributes to restrict or lock all available options.'
|
|
104
|
-
) }
|
|
102
|
+
{ __( 'Select the features you want to lock' ) }
|
|
105
103
|
</legend>
|
|
106
104
|
{ /*
|
|
107
105
|
* Disable reason: The `list` ARIA role is redundant but
|
|
@@ -137,7 +135,7 @@ export default function BlockLockModal( { clientId, onClose } ) {
|
|
|
137
135
|
<li className="block-editor-block-lock-modal__checklist-item">
|
|
138
136
|
<CheckboxControl
|
|
139
137
|
__nextHasNoMarginBottom
|
|
140
|
-
label={ __( '
|
|
138
|
+
label={ __( 'Lock editing' ) }
|
|
141
139
|
checked={ !! lock.edit }
|
|
142
140
|
onChange={ ( edit ) =>
|
|
143
141
|
setLock( ( prevLock ) => ( {
|
|
@@ -159,7 +157,7 @@ export default function BlockLockModal( { clientId, onClose } ) {
|
|
|
159
157
|
<li className="block-editor-block-lock-modal__checklist-item">
|
|
160
158
|
<CheckboxControl
|
|
161
159
|
__nextHasNoMarginBottom
|
|
162
|
-
label={ __( '
|
|
160
|
+
label={ __( 'Lock movement' ) }
|
|
163
161
|
checked={ lock.move }
|
|
164
162
|
onChange={ ( move ) =>
|
|
165
163
|
setLock( ( prevLock ) => ( {
|
|
@@ -178,7 +176,7 @@ export default function BlockLockModal( { clientId, onClose } ) {
|
|
|
178
176
|
<li className="block-editor-block-lock-modal__checklist-item">
|
|
179
177
|
<CheckboxControl
|
|
180
178
|
__nextHasNoMarginBottom
|
|
181
|
-
label={ __( '
|
|
179
|
+
label={ __( 'Lock removal' ) }
|
|
182
180
|
checked={ lock.remove }
|
|
183
181
|
onChange={ ( remove ) =>
|
|
184
182
|
setLock( ( prevLock ) => ( {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { getBlockType, store as blocksStore } from '@wordpress/blocks';
|
|
5
4
|
import { ToolbarButton } from '@wordpress/components';
|
|
6
5
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
7
6
|
import { __, sprintf } from '@wordpress/i18n';
|
|
@@ -24,31 +23,18 @@ import { unlock } from '../../lock-unlock';
|
|
|
24
23
|
*/
|
|
25
24
|
export default function BlockParentSelector() {
|
|
26
25
|
const { selectBlock } = useDispatch( blockEditorStore );
|
|
27
|
-
const { parentClientId
|
|
26
|
+
const { parentClientId } = useSelect( ( select ) => {
|
|
28
27
|
const {
|
|
29
|
-
getBlockName,
|
|
30
28
|
getBlockParents,
|
|
31
29
|
getSelectedBlockClientId,
|
|
32
|
-
getBlockEditingMode,
|
|
33
30
|
getParentSectionBlock,
|
|
34
31
|
} = unlock( select( blockEditorStore ) );
|
|
35
|
-
const { hasBlockSupport } = select( blocksStore );
|
|
36
32
|
const selectedBlockClientId = getSelectedBlockClientId();
|
|
37
33
|
const parentSection = getParentSectionBlock( selectedBlockClientId );
|
|
38
34
|
const parents = getBlockParents( selectedBlockClientId );
|
|
39
35
|
const _parentClientId = parentSection ?? parents[ parents.length - 1 ];
|
|
40
|
-
const parentBlockName = getBlockName( _parentClientId );
|
|
41
|
-
const _parentBlockType = getBlockType( parentBlockName );
|
|
42
36
|
return {
|
|
43
37
|
parentClientId: _parentClientId,
|
|
44
|
-
isVisible:
|
|
45
|
-
_parentClientId &&
|
|
46
|
-
getBlockEditingMode( _parentClientId ) !== 'disabled' &&
|
|
47
|
-
hasBlockSupport(
|
|
48
|
-
_parentBlockType,
|
|
49
|
-
'__experimentalParentSelector',
|
|
50
|
-
true
|
|
51
|
-
),
|
|
52
38
|
};
|
|
53
39
|
}, [] );
|
|
54
40
|
const blockInformation = useBlockDisplayInformation( parentClientId );
|
|
@@ -61,10 +47,6 @@ export default function BlockParentSelector() {
|
|
|
61
47
|
highlightParent: true,
|
|
62
48
|
} );
|
|
63
49
|
|
|
64
|
-
if ( ! isVisible ) {
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
50
|
return (
|
|
69
51
|
<div
|
|
70
52
|
className="block-editor-block-parent-selector"
|
|
@@ -41,6 +41,7 @@ function BlockPattern( {
|
|
|
41
41
|
onHover,
|
|
42
42
|
showTitlesAsTooltip,
|
|
43
43
|
category,
|
|
44
|
+
isSelected,
|
|
44
45
|
} ) {
|
|
45
46
|
const [ isDragging, setIsDragging ] = useState( false );
|
|
46
47
|
const { blocks, viewportWidth } = pattern;
|
|
@@ -114,6 +115,7 @@ function BlockPattern( {
|
|
|
114
115
|
pattern.type ===
|
|
115
116
|
INSERTER_PATTERN_TYPES.user &&
|
|
116
117
|
! pattern.syncStatus,
|
|
118
|
+
'is-selected': isSelected,
|
|
117
119
|
}
|
|
118
120
|
) }
|
|
119
121
|
/>
|
|
@@ -192,6 +194,7 @@ function BlockPatternsList(
|
|
|
192
194
|
ref
|
|
193
195
|
) {
|
|
194
196
|
const [ activeCompositeId, setActiveCompositeId ] = useState( undefined );
|
|
197
|
+
const [ activePattern, setActivePattern ] = useState( null ); // State to track active pattern
|
|
195
198
|
|
|
196
199
|
useEffect( () => {
|
|
197
200
|
// Reset the active composite item whenever the available patterns change,
|
|
@@ -201,6 +204,11 @@ function BlockPatternsList(
|
|
|
201
204
|
setActiveCompositeId( firstCompositeItemId );
|
|
202
205
|
}, [ blockPatterns ] );
|
|
203
206
|
|
|
207
|
+
const handleClickPattern = ( pattern, blocks ) => {
|
|
208
|
+
setActivePattern( pattern.name );
|
|
209
|
+
onClickPattern( pattern, blocks );
|
|
210
|
+
};
|
|
211
|
+
|
|
204
212
|
return (
|
|
205
213
|
<Composite
|
|
206
214
|
orientation={ orientation }
|
|
@@ -216,11 +224,14 @@ function BlockPatternsList(
|
|
|
216
224
|
key={ pattern.name }
|
|
217
225
|
id={ pattern.name }
|
|
218
226
|
pattern={ pattern }
|
|
219
|
-
onClick={
|
|
227
|
+
onClick={ handleClickPattern }
|
|
220
228
|
onHover={ onHover }
|
|
221
229
|
isDraggable={ isDraggable }
|
|
222
230
|
showTitlesAsTooltip={ showTitlesAsTooltip }
|
|
223
231
|
category={ category }
|
|
232
|
+
isSelected={
|
|
233
|
+
!! activePattern && activePattern === pattern.name
|
|
234
|
+
}
|
|
224
235
|
/>
|
|
225
236
|
) ) }
|
|
226
237
|
{ pagingProps && <BlockPatternsPaging { ...pagingProps } /> }
|
|
@@ -44,19 +44,29 @@
|
|
|
44
44
|
outline: $border-width solid rgba($black, 0.1);
|
|
45
45
|
outline-offset: -$border-width;
|
|
46
46
|
border-radius: $radius-medium;
|
|
47
|
+
|
|
48
|
+
transition: outline 0.1s linear;
|
|
49
|
+
@include reduce-motion("transition");
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
|
|
50
|
-
|
|
53
|
+
// Selected
|
|
54
|
+
&.is-selected .block-editor-block-preview__container::after {
|
|
55
|
+
outline-color: $gray-900;
|
|
56
|
+
outline-width: var(--wp-admin-border-width-focus);
|
|
57
|
+
outline-offset: calc(-1 * var(--wp-admin-border-width-focus));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Hover state
|
|
61
|
+
&:hover .block-editor-block-preview__container::after {
|
|
51
62
|
outline-color: rgba($black, 0.3);
|
|
52
63
|
}
|
|
53
64
|
|
|
54
|
-
|
|
65
|
+
// Focused state
|
|
66
|
+
&[data-focus-visible] .block-editor-block-preview__container::after {
|
|
55
67
|
outline-color: var(--wp-admin-theme-color);
|
|
56
68
|
outline-width: var(--wp-admin-border-width-focus);
|
|
57
|
-
outline-offset: calc(
|
|
58
|
-
transition: outline 0.1s linear;
|
|
59
|
-
@include reduce-motion("transition");
|
|
69
|
+
outline-offset: calc(-1 * var(--wp-admin-border-width-focus));
|
|
60
70
|
}
|
|
61
71
|
|
|
62
72
|
.block-editor-patterns__pattern-details:not(:empty) {
|
|
@@ -68,6 +78,7 @@
|
|
|
68
78
|
.block-editor-patterns__pattern-icon-wrapper {
|
|
69
79
|
min-width: 24px;
|
|
70
80
|
height: 24px;
|
|
81
|
+
|
|
71
82
|
.block-editor-patterns__pattern-icon {
|
|
72
83
|
fill: var(--wp-block-synced-color);
|
|
73
84
|
}
|
|
@@ -148,6 +148,10 @@ function BlockPopoverInbetween( {
|
|
|
148
148
|
? nextRect.left - previousRect.right
|
|
149
149
|
: 0;
|
|
150
150
|
}
|
|
151
|
+
|
|
152
|
+
// Avoid a negative width which happens when the next rect
|
|
153
|
+
// is on the next line.
|
|
154
|
+
width = Math.max( width, 0 );
|
|
151
155
|
}
|
|
152
156
|
|
|
153
157
|
return new window.DOMRect( left, top, width, height );
|
|
@@ -57,6 +57,7 @@ export function BlockSettingsDropdown( {
|
|
|
57
57
|
const currentClientId = block?.clientId;
|
|
58
58
|
const count = clientIds.length;
|
|
59
59
|
const firstBlockClientId = clientIds[ 0 ];
|
|
60
|
+
|
|
60
61
|
const {
|
|
61
62
|
firstParentClientId,
|
|
62
63
|
parentBlockType,
|
|
@@ -64,6 +65,7 @@ export function BlockSettingsDropdown( {
|
|
|
64
65
|
selectedBlockClientIds,
|
|
65
66
|
openedBlockSettingsMenu,
|
|
66
67
|
isContentOnly,
|
|
68
|
+
isZoomOut,
|
|
67
69
|
} = useSelect(
|
|
68
70
|
( select ) => {
|
|
69
71
|
const {
|
|
@@ -74,6 +76,7 @@ export function BlockSettingsDropdown( {
|
|
|
74
76
|
getBlockAttributes,
|
|
75
77
|
getOpenedBlockSettingsMenu,
|
|
76
78
|
getBlockEditingMode,
|
|
79
|
+
isZoomOut: _isZoomOut,
|
|
77
80
|
} = unlock( select( blockEditorStore ) );
|
|
78
81
|
|
|
79
82
|
const { getActiveBlockVariation } = select( blocksStore );
|
|
@@ -98,10 +101,12 @@ export function BlockSettingsDropdown( {
|
|
|
98
101
|
openedBlockSettingsMenu: getOpenedBlockSettingsMenu(),
|
|
99
102
|
isContentOnly:
|
|
100
103
|
getBlockEditingMode( firstBlockClientId ) === 'contentOnly',
|
|
104
|
+
isZoomOut: _isZoomOut(),
|
|
101
105
|
};
|
|
102
106
|
},
|
|
103
107
|
[ firstBlockClientId ]
|
|
104
108
|
);
|
|
109
|
+
|
|
105
110
|
const { getBlockOrder, getSelectedBlockClientIds } =
|
|
106
111
|
useSelect( blockEditorStore );
|
|
107
112
|
|
|
@@ -248,7 +253,7 @@ export function BlockSettingsDropdown( {
|
|
|
248
253
|
clientId={ firstBlockClientId }
|
|
249
254
|
/>
|
|
250
255
|
) }
|
|
251
|
-
{ ! isContentOnly && (
|
|
256
|
+
{ ( ! isContentOnly || isZoomOut ) && (
|
|
252
257
|
<CopyMenuItem
|
|
253
258
|
clientIds={ clientIds }
|
|
254
259
|
onCopy={ onCopy }
|
|
@@ -55,7 +55,8 @@ const BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {
|
|
|
55
55
|
const convertToGroupButtonProps =
|
|
56
56
|
useConvertToGroupButtonProps( selectedClientIds );
|
|
57
57
|
const { isGroupable, isUngroupable } = convertToGroupButtonProps;
|
|
58
|
-
const showConvertToGroupButton =
|
|
58
|
+
const showConvertToGroupButton =
|
|
59
|
+
( isGroupable || isUngroupable ) && ! isContentOnly;
|
|
59
60
|
|
|
60
61
|
return (
|
|
61
62
|
<Slot
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
} from '@wordpress/blocks';
|
|
19
19
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
20
20
|
import { copy } from '@wordpress/icons';
|
|
21
|
+
import { store as preferencesStore } from '@wordpress/preferences';
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* Internal dependencies
|
|
@@ -185,21 +186,6 @@ function BlockSwitcherDropdownMenuContents( {
|
|
|
185
186
|
);
|
|
186
187
|
}
|
|
187
188
|
|
|
188
|
-
const BlockIndicator = ( { icon, showTitle, blockTitle } ) => (
|
|
189
|
-
<>
|
|
190
|
-
<BlockIcon
|
|
191
|
-
className="block-editor-block-switcher__toggle"
|
|
192
|
-
icon={ icon }
|
|
193
|
-
showColors
|
|
194
|
-
/>
|
|
195
|
-
{ showTitle && blockTitle && (
|
|
196
|
-
<span className="block-editor-block-switcher__toggle-text">
|
|
197
|
-
{ blockTitle }
|
|
198
|
-
</span>
|
|
199
|
-
) }
|
|
200
|
-
</>
|
|
201
|
-
);
|
|
202
|
-
|
|
203
189
|
export const BlockSwitcher = ( { clientIds } ) => {
|
|
204
190
|
const {
|
|
205
191
|
hasContentOnlyLocking,
|
|
@@ -272,6 +258,11 @@ export const BlockSwitcher = ( { clientIds } ) => {
|
|
|
272
258
|
clientId: clientIds?.[ 0 ],
|
|
273
259
|
maximumLength: 35,
|
|
274
260
|
} );
|
|
261
|
+
const showIconLabels = useSelect(
|
|
262
|
+
( select ) =>
|
|
263
|
+
select( preferencesStore ).get( 'core', 'showIconLabels' ),
|
|
264
|
+
[]
|
|
265
|
+
);
|
|
275
266
|
|
|
276
267
|
if ( invalidBlocks ) {
|
|
277
268
|
return null;
|
|
@@ -282,6 +273,11 @@ export const BlockSwitcher = ( { clientIds } ) => {
|
|
|
282
273
|
? blockTitle
|
|
283
274
|
: __( 'Multiple blocks selected' );
|
|
284
275
|
|
|
276
|
+
const blockIndicatorText =
|
|
277
|
+
( isReusable || isTemplate ) && ! showIconLabels && blockTitle
|
|
278
|
+
? blockTitle
|
|
279
|
+
: undefined;
|
|
280
|
+
|
|
285
281
|
const hideDropdown =
|
|
286
282
|
isDisabled ||
|
|
287
283
|
( ! hasBlockStyles && ! canRemove ) ||
|
|
@@ -295,12 +291,13 @@ export const BlockSwitcher = ( { clientIds } ) => {
|
|
|
295
291
|
className="block-editor-block-switcher__no-switcher-icon"
|
|
296
292
|
title={ blockSwitcherLabel }
|
|
297
293
|
icon={
|
|
298
|
-
<
|
|
294
|
+
<BlockIcon
|
|
295
|
+
className="block-editor-block-switcher__toggle"
|
|
299
296
|
icon={ icon }
|
|
300
|
-
|
|
301
|
-
blockTitle={ blockTitle }
|
|
297
|
+
showColors
|
|
302
298
|
/>
|
|
303
299
|
}
|
|
300
|
+
text={ blockIndicatorText }
|
|
304
301
|
/>
|
|
305
302
|
</ToolbarGroup>
|
|
306
303
|
);
|
|
@@ -329,12 +326,13 @@ export const BlockSwitcher = ( { clientIds } ) => {
|
|
|
329
326
|
className: 'block-editor-block-switcher__popover',
|
|
330
327
|
} }
|
|
331
328
|
icon={
|
|
332
|
-
<
|
|
329
|
+
<BlockIcon
|
|
330
|
+
className="block-editor-block-switcher__toggle"
|
|
333
331
|
icon={ icon }
|
|
334
|
-
|
|
335
|
-
blockTitle={ blockTitle }
|
|
332
|
+
showColors
|
|
336
333
|
/>
|
|
337
334
|
}
|
|
335
|
+
text={ blockIndicatorText }
|
|
338
336
|
toggleProps={ {
|
|
339
337
|
description: blockSwitcherDescription,
|
|
340
338
|
...toggleProps,
|
|
@@ -26,15 +26,6 @@
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
.block-editor-block-switcher__toggle-text {
|
|
30
|
-
margin-left: $grid-unit-10;
|
|
31
|
-
|
|
32
|
-
// Account for double label when show-text-buttons is set.
|
|
33
|
-
.show-icon-labels & {
|
|
34
|
-
display: none;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
29
|
.components-button.block-editor-block-switcher__no-switcher-icon {
|
|
39
30
|
display: flex;
|
|
40
31
|
|
|
@@ -31,7 +31,9 @@ const blockLabelMap = {
|
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
jest.mock( '@wordpress/blocks', () => {
|
|
34
|
+
const actualImplementation = jest.requireActual( '@wordpress/blocks' );
|
|
34
35
|
return {
|
|
36
|
+
...actualImplementation,
|
|
35
37
|
isReusableBlock( { title } ) {
|
|
36
38
|
return title === 'Reusable Block';
|
|
37
39
|
},
|
|
@@ -74,6 +74,8 @@ export function PrivateBlockToolbar( {
|
|
|
74
74
|
showGroupButtons,
|
|
75
75
|
showLockButtons,
|
|
76
76
|
showSwitchSectionStyleButton,
|
|
77
|
+
hasFixedToolbar,
|
|
78
|
+
isNavigationMode,
|
|
77
79
|
} = useSelect( ( select ) => {
|
|
78
80
|
const {
|
|
79
81
|
getBlockName,
|
|
@@ -85,8 +87,10 @@ export function PrivateBlockToolbar( {
|
|
|
85
87
|
getBlockAttributes,
|
|
86
88
|
getBlockParentsByBlockName,
|
|
87
89
|
getTemplateLock,
|
|
90
|
+
getSettings,
|
|
88
91
|
getParentSectionBlock,
|
|
89
92
|
isZoomOut,
|
|
93
|
+
isNavigationMode: _isNavigationMode,
|
|
90
94
|
} = unlock( select( blockEditorStore ) );
|
|
91
95
|
const selectedBlockClientIds = getSelectedBlockClientIds();
|
|
92
96
|
const selectedBlockClientId = selectedBlockClientIds[ 0 ];
|
|
@@ -119,6 +123,9 @@ export function PrivateBlockToolbar( {
|
|
|
119
123
|
const _hasTemplateLock = selectedBlockClientIds.some(
|
|
120
124
|
( id ) => getTemplateLock( id ) === 'contentOnly'
|
|
121
125
|
);
|
|
126
|
+
|
|
127
|
+
const _isZoomOut = isZoomOut();
|
|
128
|
+
|
|
122
129
|
return {
|
|
123
130
|
blockClientId: selectedBlockClientId,
|
|
124
131
|
blockClientIds: selectedBlockClientIds,
|
|
@@ -127,8 +134,9 @@ export function PrivateBlockToolbar( {
|
|
|
127
134
|
shouldShowVisualToolbar: isValid && isVisual,
|
|
128
135
|
toolbarKey: `${ selectedBlockClientId }${ parentClientId }`,
|
|
129
136
|
showParentSelector:
|
|
130
|
-
!
|
|
137
|
+
! _isZoomOut &&
|
|
131
138
|
parentBlockType &&
|
|
139
|
+
editingMode !== 'contentOnly' &&
|
|
132
140
|
getBlockEditingMode( parentClientId ) !== 'disabled' &&
|
|
133
141
|
hasBlockSupport(
|
|
134
142
|
parentBlockType,
|
|
@@ -139,11 +147,13 @@ export function PrivateBlockToolbar( {
|
|
|
139
147
|
isUsingBindings: _isUsingBindings,
|
|
140
148
|
hasParentPattern: _hasParentPattern,
|
|
141
149
|
hasContentOnlyLocking: _hasTemplateLock,
|
|
142
|
-
showShuffleButton:
|
|
143
|
-
showSlots: !
|
|
144
|
-
showGroupButtons: !
|
|
145
|
-
showLockButtons: !
|
|
146
|
-
showSwitchSectionStyleButton:
|
|
150
|
+
showShuffleButton: _isZoomOut,
|
|
151
|
+
showSlots: ! _isZoomOut,
|
|
152
|
+
showGroupButtons: ! _isZoomOut,
|
|
153
|
+
showLockButtons: ! _isZoomOut,
|
|
154
|
+
showSwitchSectionStyleButton: _isZoomOut,
|
|
155
|
+
hasFixedToolbar: getSettings().hasFixedToolbar,
|
|
156
|
+
isNavigationMode: _isNavigationMode(),
|
|
147
157
|
};
|
|
148
158
|
}, [] );
|
|
149
159
|
|
|
@@ -170,6 +180,7 @@ export function PrivateBlockToolbar( {
|
|
|
170
180
|
// Shifts the toolbar to make room for the parent block selector.
|
|
171
181
|
const classes = clsx( 'block-editor-block-contextual-toolbar', {
|
|
172
182
|
'has-parent': showParentSelector,
|
|
183
|
+
'is-inverted-toolbar': isNavigationMode && ! hasFixedToolbar,
|
|
173
184
|
} );
|
|
174
185
|
|
|
175
186
|
const innerClasses = clsx( 'block-editor-block-toolbar', {
|
|
@@ -139,6 +139,50 @@
|
|
|
139
139
|
border-right-color: $gray-900;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
+
.is-inverted-toolbar {
|
|
143
|
+
background-color: $gray-900;
|
|
144
|
+
color: $gray-100;
|
|
145
|
+
|
|
146
|
+
&.block-editor-block-contextual-toolbar {
|
|
147
|
+
border-color: $gray-800;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
button {
|
|
151
|
+
color: $gray-300;
|
|
152
|
+
|
|
153
|
+
&:hover {
|
|
154
|
+
color: $white;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
&:focus::before {
|
|
158
|
+
box-shadow: inset 0 0 0 1px $gray-900, 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
&:disabled,
|
|
162
|
+
&[aria-disabled="true"] {
|
|
163
|
+
color: $gray-700;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.block-editor-block-parent-selector .block-editor-block-parent-selector__button {
|
|
168
|
+
border-color: $gray-800;
|
|
169
|
+
background-color: $gray-900;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.block-editor-block-switcher__toggle {
|
|
173
|
+
color: $gray-100;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.components-toolbar-group,
|
|
177
|
+
.components-toolbar {
|
|
178
|
+
border-right-color: $gray-800 !important;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.is-pressed {
|
|
182
|
+
color: var(--wp-admin-theme-color);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
142
186
|
// Hide the block toolbar if the insertion point is shown.
|
|
143
187
|
&.is-insertion-point-visible {
|
|
144
188
|
visibility: hidden;
|
|
@@ -42,7 +42,7 @@ exports[`BlockVerticalAlignmentUI should match snapshot when controls are visibl
|
|
|
42
42
|
<button
|
|
43
43
|
aria-label="Align top"
|
|
44
44
|
aria-pressed="true"
|
|
45
|
-
class="components-button components-toolbar__control is-pressed has-icon"
|
|
45
|
+
class="components-button components-toolbar__control is-compact is-pressed has-icon"
|
|
46
46
|
data-toolbar-item="true"
|
|
47
47
|
type="button"
|
|
48
48
|
>
|
|
@@ -64,7 +64,7 @@ exports[`BlockVerticalAlignmentUI should match snapshot when controls are visibl
|
|
|
64
64
|
<button
|
|
65
65
|
aria-label="Align middle"
|
|
66
66
|
aria-pressed="false"
|
|
67
|
-
class="components-button components-toolbar__control has-icon"
|
|
67
|
+
class="components-button components-toolbar__control is-compact has-icon"
|
|
68
68
|
data-toolbar-item="true"
|
|
69
69
|
type="button"
|
|
70
70
|
>
|
|
@@ -86,7 +86,7 @@ exports[`BlockVerticalAlignmentUI should match snapshot when controls are visibl
|
|
|
86
86
|
<button
|
|
87
87
|
aria-label="Align bottom"
|
|
88
88
|
aria-pressed="false"
|
|
89
|
-
class="components-button components-toolbar__control has-icon"
|
|
89
|
+
class="components-button components-toolbar__control is-compact has-icon"
|
|
90
90
|
data-toolbar-item="true"
|
|
91
91
|
type="button"
|
|
92
92
|
>
|