@wordpress/block-editor 10.2.0 → 10.3.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 +12 -0
- package/README.md +41 -0
- package/build/components/block-draggable/draggable-chip.js +4 -2
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-inspector/index.js +4 -4
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-compact.native.js +1 -0
- package/build/components/block-list/block-list-compact.native.js.map +1 -1
- package/build/components/block-list/block.js +72 -14
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +79 -12
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +7 -23
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +9 -6
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-parent-selector/index.js +3 -3
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +5 -4
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-popover/drop-zone.js +85 -0
- package/build/components/block-popover/drop-zone.js.map +1 -0
- package/build/components/block-popover/index.js +2 -1
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/auto.js +2 -2
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +6 -9
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-preview/live.js +3 -7
- package/build/components/block-preview/live.js.map +1 -1
- package/build/components/block-selection-clearer/index.js +9 -1
- package/build/components/block-selection-clearer/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +17 -11
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/index.js +18 -42
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +4 -4
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/back-compat.js +2 -1
- package/build/components/block-tools/back-compat.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +50 -20
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +15 -3
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/colors-gradients/control.js +1 -1
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -2
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js +256 -0
- package/build/components/font-sizes/fluid-utils.js.map +1 -0
- package/build/components/font-sizes/index.js +8 -0
- package/build/components/font-sizes/index.js.map +1 -1
- package/build/components/index.js +0 -9
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -2
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +151 -78
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/menu.js +14 -3
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +4 -2
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js +1 -14
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/preview-options/index.js +2 -3
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +35 -5
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +98 -57
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +12 -12
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-on-block-drop/types.js +6 -0
- package/build/components/use-on-block-drop/types.js.map +1 -0
- package/build/hooks/align.js +1 -3
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/align.native.js +1 -7
- package/build/hooks/align.native.js.map +1 -1
- package/build/hooks/font-size.js +60 -0
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/margin.js +6 -5
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +2 -1
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/style.js +126 -4
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/use-typography-props.js +17 -3
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/hooks/utils.js +1 -1
- package/build/hooks/utils.js.map +1 -1
- package/build/store/actions.js +59 -45
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +3 -0
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +31 -15
- package/build/store/reducer.js.map +1 -1
- package/build/utils/math.js +14 -0
- package/build/utils/math.js.map +1 -1
- package/build/utils/pre-parse-patterns.js +19 -2
- package/build/utils/pre-parse-patterns.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +7 -3
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-inspector/index.js +4 -4
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-compact.native.js +1 -0
- package/build-module/components/block-list/block-list-compact.native.js.map +1 -1
- package/build-module/components/block-list/block.js +72 -14
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +80 -13
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +8 -24
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +10 -8
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +3 -3
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +5 -4
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-popover/drop-zone.js +70 -0
- package/build-module/components/block-popover/drop-zone.js.map +1 -0
- package/build-module/components/block-popover/index.js +2 -1
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +1 -1
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +6 -9
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-preview/live.js +3 -6
- package/build-module/components/block-preview/live.js.map +1 -1
- package/build-module/components/block-selection-clearer/index.js +9 -1
- package/build-module/components/block-selection-clearer/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +18 -12
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/index.js +19 -44
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +4 -4
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/back-compat.js +2 -1
- package/build-module/components/block-tools/back-compat.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +48 -20
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +15 -3
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +2 -2
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +3 -3
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js +245 -0
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -0
- package/build-module/components/font-sizes/index.js +1 -0
- package/build-module/components/font-sizes/index.js.map +1 -1
- package/build-module/components/index.js +0 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -2
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +148 -81
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/menu.js +10 -3
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +4 -2
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js +1 -14
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/preview-options/index.js +2 -3
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +34 -5
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +98 -58
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +12 -12
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/types.js +2 -0
- package/build-module/components/use-on-block-drop/types.js.map +1 -0
- package/build-module/hooks/align.js +1 -2
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/align.native.js +1 -6
- package/build-module/hooks/align.native.js.map +1 -1
- package/build-module/hooks/font-size.js +59 -1
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/margin.js +6 -5
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +2 -1
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/style.js +124 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +17 -4
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/hooks/utils.js +2 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/store/actions.js +55 -42
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +3 -0
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +32 -16
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/utils/math.js +12 -0
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/pre-parse-patterns.js +19 -2
- package/build-module/utils/pre-parse-patterns.js.map +1 -1
- package/build-style/style-rtl.css +243 -144
- package/build-style/style.css +243 -144
- package/package.json +28 -28
- package/src/components/block-breadcrumb/test/index.js +1 -1
- package/src/components/block-draggable/draggable-chip.js +4 -2
- package/src/components/block-inspector/index.js +8 -7
- package/src/components/block-list/block-list-compact.native.js +1 -0
- package/src/components/block-list/block.js +111 -7
- package/src/components/block-list/block.native.js +123 -9
- package/src/components/block-list/style.scss +93 -126
- package/src/components/block-list/use-in-between-inserter.js +8 -19
- package/src/components/block-lock/modal.js +12 -7
- package/src/components/block-mover/style.scss +0 -1
- package/src/components/block-parent-selector/index.js +3 -3
- package/src/components/block-patterns-list/index.js +9 -5
- package/src/components/block-patterns-list/style.scss +7 -3
- package/src/components/block-popover/README.md +8 -0
- package/src/components/block-popover/drop-zone.js +63 -0
- package/src/components/block-popover/index.js +2 -1
- package/src/components/block-popover/style.scss +17 -1
- package/src/components/block-preview/auto.js +1 -1
- package/src/components/block-preview/index.js +7 -8
- package/src/components/block-preview/live.js +2 -7
- package/src/components/block-preview/test/index.js +1 -7
- package/src/components/block-selection-clearer/index.js +7 -2
- package/src/components/block-selection-clearer/test/index.js +118 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +25 -11
- package/src/components/block-settings-menu/test/block-mode-toggle.js +17 -17
- package/src/components/block-styles/index.js +26 -49
- package/src/components/block-switcher/test/index.js +2 -2
- package/src/components/block-toolbar/index.js +4 -6
- package/src/components/block-toolbar/style.scss +38 -14
- package/src/components/block-tools/back-compat.js +1 -0
- package/src/components/block-tools/insertion-point.js +42 -17
- package/src/components/block-tools/selected-block-popover.js +14 -1
- package/src/components/button-block-appender/style.scss +4 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +32 -52
- package/src/components/color-palette/test/control.js +11 -15
- package/src/components/colors-gradients/control.js +2 -2
- package/src/components/colors-gradients/panel-color-gradient-settings.js +3 -4
- package/src/components/colors-gradients/test/control.js +49 -77
- package/src/components/font-sizes/fluid-utils.js +296 -0
- package/src/components/font-sizes/index.js +1 -0
- package/src/components/font-sizes/test/fluid-utils.js +168 -0
- package/src/components/image-size-control/test/index.js +47 -60
- package/src/components/index.js +0 -1
- package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -2
- package/src/components/inserter/block-patterns-tab.js +232 -98
- package/src/components/inserter/menu.js +15 -2
- package/src/components/inserter/style.scss +94 -9
- package/src/components/inserter/test/reusable-blocks-tab.js +6 -6
- package/src/components/inserter-draggable-blocks/index.js +12 -2
- package/src/components/inserter-list-item/style.scss +20 -1
- package/src/components/link-control/test/index.js +1 -1
- package/src/components/list-view/use-list-view-drop-zone.js +4 -18
- package/src/components/panel-color-settings/test/index.js +4 -4
- package/src/components/preview-options/index.js +2 -2
- package/src/components/preview-options/style.scss +1 -1
- package/src/components/provider/test/use-block-sync.js +131 -165
- package/src/components/responsive-block-control/test/index.js +4 -4
- package/src/components/spacing-sizes-control/spacing-input-control.js +16 -2
- package/src/components/spacing-sizes-control/style.scss +26 -19
- package/src/components/use-block-drop-zone/index.js +136 -79
- package/src/components/use-block-drop-zone/test/index.js +333 -81
- package/src/components/use-on-block-drop/index.js +11 -12
- package/src/components/use-on-block-drop/types.ts +1 -0
- package/src/hooks/align.js +3 -2
- package/src/hooks/align.native.js +5 -8
- package/src/hooks/font-size.js +75 -0
- package/src/hooks/margin.js +5 -4
- package/src/hooks/padding.js +1 -0
- package/src/hooks/style.js +122 -3
- package/src/hooks/test/style.js +206 -1
- package/src/hooks/test/use-typography-props.js +22 -0
- package/src/hooks/use-typography-props.js +18 -3
- package/src/hooks/utils.js +6 -2
- package/src/store/actions.js +20 -12
- package/src/store/defaults.js +3 -0
- package/src/store/reducer.js +31 -24
- package/src/store/test/actions.js +0 -9
- package/src/utils/math.js +17 -0
- package/src/utils/pre-parse-patterns.js +12 -7
- package/build/components/inserter/pattern-panel.js +0 -87
- package/build/components/inserter/pattern-panel.js.map +0 -1
- package/build-module/components/inserter/pattern-panel.js +0 -74
- package/build-module/components/inserter/pattern-panel.js.map +0 -1
- package/src/components/inserter/pattern-panel.js +0 -93
|
@@ -11,7 +11,10 @@ import {
|
|
|
11
11
|
/**
|
|
12
12
|
* Internal dependencies
|
|
13
13
|
*/
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
getDistanceToNearestEdge,
|
|
16
|
+
isPointContainedByRect,
|
|
17
|
+
} from '../../utils/math';
|
|
15
18
|
import useOnBlockDrop from '../use-on-block-drop';
|
|
16
19
|
import { store as blockEditorStore } from '../../store';
|
|
17
20
|
|
|
@@ -48,23 +51,6 @@ import { store as blockEditorStore } from '../../store';
|
|
|
48
51
|
* 'inside' refers to nesting as an inner block.
|
|
49
52
|
*/
|
|
50
53
|
|
|
51
|
-
/**
|
|
52
|
-
* Is the point contained by the rectangle.
|
|
53
|
-
*
|
|
54
|
-
* @param {WPPoint} point The point.
|
|
55
|
-
* @param {DOMRect} rect The rectangle.
|
|
56
|
-
*
|
|
57
|
-
* @return {boolean} True if the point is contained by the rectangle, false otherwise.
|
|
58
|
-
*/
|
|
59
|
-
function isPointContainedByRect( point, rect ) {
|
|
60
|
-
return (
|
|
61
|
-
rect.left <= point.x &&
|
|
62
|
-
rect.right >= point.x &&
|
|
63
|
-
rect.top <= point.y &&
|
|
64
|
-
rect.bottom >= point.y
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
54
|
/**
|
|
69
55
|
* Determines whether the user positioning the dragged block to nest as an
|
|
70
56
|
* inner block.
|
|
@@ -31,7 +31,7 @@ describe( 'PanelColorSettings', () => {
|
|
|
31
31
|
] }
|
|
32
32
|
/>
|
|
33
33
|
);
|
|
34
|
-
expect( container
|
|
34
|
+
expect( container ).toBeEmptyDOMElement();
|
|
35
35
|
} );
|
|
36
36
|
|
|
37
37
|
it( 'should render a color panel if at least one setting supports custom colors', async () => {
|
|
@@ -55,7 +55,7 @@ describe( 'PanelColorSettings', () => {
|
|
|
55
55
|
] }
|
|
56
56
|
/>
|
|
57
57
|
);
|
|
58
|
-
expect( container
|
|
58
|
+
expect( container ).not.toBeEmptyDOMElement();
|
|
59
59
|
} );
|
|
60
60
|
|
|
61
61
|
it( 'should render a color panel if at least one setting specifies some colors to choose', async () => {
|
|
@@ -85,7 +85,7 @@ describe( 'PanelColorSettings', () => {
|
|
|
85
85
|
] }
|
|
86
86
|
/>
|
|
87
87
|
);
|
|
88
|
-
expect( container
|
|
88
|
+
expect( container ).not.toBeEmptyDOMElement();
|
|
89
89
|
} );
|
|
90
90
|
|
|
91
91
|
it( 'should not render anything if none of the setting panels has colors to choose', async () => {
|
|
@@ -112,6 +112,6 @@ describe( 'PanelColorSettings', () => {
|
|
|
112
112
|
] }
|
|
113
113
|
/>
|
|
114
114
|
);
|
|
115
|
-
expect( container
|
|
115
|
+
expect( container ).not.toBeEmptyDOMElement();
|
|
116
116
|
} );
|
|
117
117
|
} );
|
|
@@ -13,6 +13,7 @@ import { check } from '@wordpress/icons';
|
|
|
13
13
|
|
|
14
14
|
export default function PreviewOptions( {
|
|
15
15
|
children,
|
|
16
|
+
viewLabel,
|
|
16
17
|
className,
|
|
17
18
|
isEnabled = true,
|
|
18
19
|
deviceType,
|
|
@@ -32,8 +33,7 @@ export default function PreviewOptions( {
|
|
|
32
33
|
variant: 'tertiary',
|
|
33
34
|
className: 'block-editor-post-preview__button-toggle',
|
|
34
35
|
disabled: ! isEnabled,
|
|
35
|
-
|
|
36
|
-
children: __( 'View' ),
|
|
36
|
+
children: viewLabel,
|
|
37
37
|
};
|
|
38
38
|
const menuProps = {
|
|
39
39
|
'aria-label': __( 'View options' ),
|
|
@@ -6,7 +6,7 @@ import { registerBlockType } from '@wordpress/blocks';
|
|
|
6
6
|
/**
|
|
7
7
|
* External dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { render } from '@testing-library/react';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Internal dependencies
|
|
@@ -48,16 +48,13 @@ describe( 'useBlockSync hook', () => {
|
|
|
48
48
|
const onChange = jest.fn();
|
|
49
49
|
const onInput = jest.fn();
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
/>
|
|
59
|
-
);
|
|
60
|
-
} );
|
|
51
|
+
const { rerender } = render(
|
|
52
|
+
<TestWrapper
|
|
53
|
+
value={ fakeBlocks }
|
|
54
|
+
onChange={ onChange }
|
|
55
|
+
onInput={ onInput }
|
|
56
|
+
/>
|
|
57
|
+
);
|
|
61
58
|
|
|
62
59
|
// Reset blocks should be called on mount.
|
|
63
60
|
expect( onChange ).not.toHaveBeenCalled();
|
|
@@ -68,15 +65,13 @@ describe( 'useBlockSync hook', () => {
|
|
|
68
65
|
const testBlocks = [
|
|
69
66
|
{ clientId: 'a', innerBlocks: [], attributes: { foo: 1 } },
|
|
70
67
|
];
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
);
|
|
79
|
-
} );
|
|
68
|
+
rerender(
|
|
69
|
+
<TestWrapper
|
|
70
|
+
value={ testBlocks }
|
|
71
|
+
onChange={ onChange }
|
|
72
|
+
onInput={ onInput }
|
|
73
|
+
/>
|
|
74
|
+
);
|
|
80
75
|
|
|
81
76
|
// Reset blocks should be called when the incoming value changes.
|
|
82
77
|
expect( onChange ).not.toHaveBeenCalled();
|
|
@@ -95,17 +90,14 @@ describe( 'useBlockSync hook', () => {
|
|
|
95
90
|
const onChange = jest.fn();
|
|
96
91
|
const onInput = jest.fn();
|
|
97
92
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
/>
|
|
107
|
-
);
|
|
108
|
-
} );
|
|
93
|
+
const { rerender } = render(
|
|
94
|
+
<TestWrapper
|
|
95
|
+
clientId="test"
|
|
96
|
+
value={ fakeBlocks }
|
|
97
|
+
onChange={ onChange }
|
|
98
|
+
onInput={ onInput }
|
|
99
|
+
/>
|
|
100
|
+
);
|
|
109
101
|
|
|
110
102
|
expect( resetBlocks ).not.toHaveBeenCalled();
|
|
111
103
|
expect( onChange ).not.toHaveBeenCalled();
|
|
@@ -123,16 +115,14 @@ describe( 'useBlockSync hook', () => {
|
|
|
123
115
|
attributes: { foo: 1 },
|
|
124
116
|
},
|
|
125
117
|
];
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
);
|
|
135
|
-
} );
|
|
118
|
+
rerender(
|
|
119
|
+
<TestWrapper
|
|
120
|
+
clientId="test"
|
|
121
|
+
value={ testBlocks }
|
|
122
|
+
onChange={ onChange }
|
|
123
|
+
onInput={ onInput }
|
|
124
|
+
/>
|
|
125
|
+
);
|
|
136
126
|
|
|
137
127
|
// Reset blocks should be called when the incoming value changes.
|
|
138
128
|
expect( onChange ).not.toHaveBeenCalled();
|
|
@@ -158,22 +148,20 @@ describe( 'useBlockSync hook', () => {
|
|
|
158
148
|
attributes: { foo: 1 },
|
|
159
149
|
},
|
|
160
150
|
];
|
|
161
|
-
|
|
151
|
+
|
|
162
152
|
let registry;
|
|
163
153
|
const setRegistry = ( reg ) => {
|
|
164
154
|
registry = reg;
|
|
165
155
|
};
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
);
|
|
176
|
-
} );
|
|
156
|
+
const { rerender } = render(
|
|
157
|
+
<TestWrapper
|
|
158
|
+
setRegistry={ setRegistry }
|
|
159
|
+
clientId="test"
|
|
160
|
+
value={ value1 }
|
|
161
|
+
onChange={ onChange }
|
|
162
|
+
onInput={ onInput }
|
|
163
|
+
/>
|
|
164
|
+
);
|
|
177
165
|
|
|
178
166
|
registry
|
|
179
167
|
.dispatch( blockEditorStore )
|
|
@@ -188,16 +176,14 @@ describe( 'useBlockSync hook', () => {
|
|
|
188
176
|
// triggered once more.
|
|
189
177
|
expect( newBlockValue ).not.toBe( value1 );
|
|
190
178
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
);
|
|
200
|
-
} );
|
|
179
|
+
rerender(
|
|
180
|
+
<TestWrapper
|
|
181
|
+
clientId="test"
|
|
182
|
+
value={ newBlockValue }
|
|
183
|
+
onChange={ onChange }
|
|
184
|
+
onInput={ onInput }
|
|
185
|
+
/>
|
|
186
|
+
);
|
|
201
187
|
|
|
202
188
|
// replaceInnerBlocks should not be called when the controlling
|
|
203
189
|
// block value is the same as what already exists in the store.
|
|
@@ -210,16 +196,14 @@ describe( 'useBlockSync hook', () => {
|
|
|
210
196
|
'setHasControlledInnerBlocks'
|
|
211
197
|
);
|
|
212
198
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
);
|
|
222
|
-
} );
|
|
199
|
+
render(
|
|
200
|
+
<TestWrapper
|
|
201
|
+
clientId="test"
|
|
202
|
+
value={ [] }
|
|
203
|
+
onChange={ jest.fn() }
|
|
204
|
+
onInput={ jest.fn() }
|
|
205
|
+
/>
|
|
206
|
+
);
|
|
223
207
|
expect( setAsController ).toHaveBeenCalledWith( 'test', true );
|
|
224
208
|
} );
|
|
225
209
|
|
|
@@ -233,16 +217,14 @@ describe( 'useBlockSync hook', () => {
|
|
|
233
217
|
const setRegistry = ( reg ) => {
|
|
234
218
|
registry = reg;
|
|
235
219
|
};
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
);
|
|
245
|
-
} );
|
|
220
|
+
render(
|
|
221
|
+
<TestWrapper
|
|
222
|
+
setRegistry={ setRegistry }
|
|
223
|
+
value={ value1 }
|
|
224
|
+
onChange={ onChange }
|
|
225
|
+
onInput={ onInput }
|
|
226
|
+
/>
|
|
227
|
+
);
|
|
246
228
|
onChange.mockClear();
|
|
247
229
|
onInput.mockClear();
|
|
248
230
|
|
|
@@ -278,16 +260,14 @@ describe( 'useBlockSync hook', () => {
|
|
|
278
260
|
const setRegistry = ( reg ) => {
|
|
279
261
|
registry = reg;
|
|
280
262
|
};
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
);
|
|
290
|
-
} );
|
|
263
|
+
render(
|
|
264
|
+
<TestWrapper
|
|
265
|
+
setRegistry={ setRegistry }
|
|
266
|
+
value={ value1 }
|
|
267
|
+
onChange={ onChange }
|
|
268
|
+
onInput={ onInput }
|
|
269
|
+
/>
|
|
270
|
+
);
|
|
291
271
|
onChange.mockClear();
|
|
292
272
|
onInput.mockClear();
|
|
293
273
|
|
|
@@ -327,30 +307,26 @@ describe( 'useBlockSync hook', () => {
|
|
|
327
307
|
},
|
|
328
308
|
];
|
|
329
309
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
);
|
|
339
|
-
} );
|
|
310
|
+
const { rerender } = render(
|
|
311
|
+
<TestWrapper
|
|
312
|
+
clientId="test"
|
|
313
|
+
value={ value1 }
|
|
314
|
+
onChange={ onChange }
|
|
315
|
+
onInput={ onInput }
|
|
316
|
+
/>
|
|
317
|
+
);
|
|
340
318
|
onChange.mockClear();
|
|
341
319
|
onInput.mockClear();
|
|
342
320
|
replaceInnerBlocks.mockClear();
|
|
343
321
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
);
|
|
353
|
-
} );
|
|
322
|
+
rerender(
|
|
323
|
+
<TestWrapper
|
|
324
|
+
clientId="test"
|
|
325
|
+
value={ [] }
|
|
326
|
+
onChange={ onChange }
|
|
327
|
+
onInput={ onInput }
|
|
328
|
+
/>
|
|
329
|
+
);
|
|
354
330
|
|
|
355
331
|
expect( replaceInnerBlocks ).toHaveBeenCalledWith( 'test', [] );
|
|
356
332
|
expect( onChange ).not.toHaveBeenCalled();
|
|
@@ -379,16 +355,14 @@ describe( 'useBlockSync hook', () => {
|
|
|
379
355
|
const setRegistry = ( reg ) => {
|
|
380
356
|
registry = reg;
|
|
381
357
|
};
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
);
|
|
391
|
-
} );
|
|
358
|
+
render(
|
|
359
|
+
<TestWrapper
|
|
360
|
+
setRegistry={ setRegistry }
|
|
361
|
+
value={ value1 }
|
|
362
|
+
onChange={ onChange }
|
|
363
|
+
onInput={ onInput }
|
|
364
|
+
/>
|
|
365
|
+
);
|
|
392
366
|
onChange.mockClear();
|
|
393
367
|
onInput.mockClear();
|
|
394
368
|
replaceInnerBlocks.mockClear();
|
|
@@ -429,17 +403,15 @@ describe( 'useBlockSync hook', () => {
|
|
|
429
403
|
const setRegistry = ( reg ) => {
|
|
430
404
|
registry = reg;
|
|
431
405
|
};
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
);
|
|
442
|
-
} );
|
|
406
|
+
|
|
407
|
+
const { rerender } = render(
|
|
408
|
+
<TestWrapper
|
|
409
|
+
setRegistry={ setRegistry }
|
|
410
|
+
value={ fakeBlocks }
|
|
411
|
+
onChange={ onChange1 }
|
|
412
|
+
onInput={ onInput }
|
|
413
|
+
/>
|
|
414
|
+
);
|
|
443
415
|
|
|
444
416
|
// Create a persistent change.
|
|
445
417
|
registry
|
|
@@ -468,16 +440,14 @@ describe( 'useBlockSync hook', () => {
|
|
|
468
440
|
|
|
469
441
|
// Update the component to point at a "different entity" (e.g. different
|
|
470
442
|
// blocks and onChange handler.)
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
);
|
|
480
|
-
} );
|
|
443
|
+
rerender(
|
|
444
|
+
<TestWrapper
|
|
445
|
+
setRegistry={ setRegistry }
|
|
446
|
+
value={ newBlocks }
|
|
447
|
+
onChange={ onChange2 }
|
|
448
|
+
onInput={ onInput }
|
|
449
|
+
/>
|
|
450
|
+
);
|
|
481
451
|
|
|
482
452
|
// Create a persistent change.
|
|
483
453
|
registry
|
|
@@ -511,17 +481,15 @@ describe( 'useBlockSync hook', () => {
|
|
|
511
481
|
const setRegistry = ( reg ) => {
|
|
512
482
|
registry = reg;
|
|
513
483
|
};
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
);
|
|
524
|
-
} );
|
|
484
|
+
|
|
485
|
+
const { rerender } = render(
|
|
486
|
+
<TestWrapper
|
|
487
|
+
setRegistry={ setRegistry }
|
|
488
|
+
value={ fakeBlocks }
|
|
489
|
+
onChange={ onChange1 }
|
|
490
|
+
onInput={ onInput }
|
|
491
|
+
/>
|
|
492
|
+
);
|
|
525
493
|
|
|
526
494
|
const newBlocks = [
|
|
527
495
|
{ clientId: 'b', innerBlocks: [], attributes: { foo: 1 } },
|
|
@@ -531,16 +499,14 @@ describe( 'useBlockSync hook', () => {
|
|
|
531
499
|
|
|
532
500
|
// Update the component to point at a "different entity" (e.g. different
|
|
533
501
|
// blocks and onChange handler.)
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
);
|
|
543
|
-
} );
|
|
502
|
+
rerender(
|
|
503
|
+
<TestWrapper
|
|
504
|
+
setRegistry={ setRegistry }
|
|
505
|
+
value={ newBlocks }
|
|
506
|
+
onChange={ onChange2 }
|
|
507
|
+
onInput={ onInput }
|
|
508
|
+
/>
|
|
509
|
+
);
|
|
544
510
|
|
|
545
511
|
// Create a persistent change.
|
|
546
512
|
registry
|
|
@@ -90,7 +90,7 @@ describe( 'Basic rendering', () => {
|
|
|
90
90
|
'.block-editor-responsive-block-control__group.is-responsive'
|
|
91
91
|
);
|
|
92
92
|
|
|
93
|
-
expect( container
|
|
93
|
+
expect( container ).not.toBeEmptyDOMElement();
|
|
94
94
|
|
|
95
95
|
expect( defaultControlGroup ).not.toBeNull();
|
|
96
96
|
expect( responsiveControlGroup ).toBeNull();
|
|
@@ -110,7 +110,7 @@ describe( 'Basic rendering', () => {
|
|
|
110
110
|
/>
|
|
111
111
|
);
|
|
112
112
|
|
|
113
|
-
expect( container
|
|
113
|
+
expect( container ).toBeEmptyDOMElement();
|
|
114
114
|
} );
|
|
115
115
|
|
|
116
116
|
it( 'should not render without valid property', () => {
|
|
@@ -121,7 +121,7 @@ describe( 'Basic rendering', () => {
|
|
|
121
121
|
/>
|
|
122
122
|
);
|
|
123
123
|
|
|
124
|
-
expect( container
|
|
124
|
+
expect( container ).toBeEmptyDOMElement();
|
|
125
125
|
} );
|
|
126
126
|
|
|
127
127
|
it( 'should not render without valid default control render prop', () => {
|
|
@@ -129,7 +129,7 @@ describe( 'Basic rendering', () => {
|
|
|
129
129
|
<ResponsiveBlockControl title="Padding" property="padding" />
|
|
130
130
|
);
|
|
131
131
|
|
|
132
|
-
expect( container
|
|
132
|
+
expect( container ).toBeEmptyDOMElement();
|
|
133
133
|
} );
|
|
134
134
|
|
|
135
135
|
it( 'should render with custom label for toggle control when provided', () => {
|
|
@@ -34,6 +34,15 @@ import {
|
|
|
34
34
|
isValueSpacingPreset,
|
|
35
35
|
} from './utils';
|
|
36
36
|
|
|
37
|
+
const CUSTOM_VALUE_SETTINGS = {
|
|
38
|
+
px: { max: 300, steps: 1 },
|
|
39
|
+
'%': { max: 100, steps: 1 },
|
|
40
|
+
vw: { max: 100, steps: 1 },
|
|
41
|
+
vh: { max: 100, steps: 1 },
|
|
42
|
+
em: { max: 10, steps: 0.1 },
|
|
43
|
+
rm: { max: 10, steps: 0.1 },
|
|
44
|
+
};
|
|
45
|
+
|
|
37
46
|
export default function SpacingInputControl( {
|
|
38
47
|
spacingSizes,
|
|
39
48
|
value,
|
|
@@ -107,7 +116,7 @@ export default function SpacingInputControl( {
|
|
|
107
116
|
const customTooltipContent = ( newValue ) =>
|
|
108
117
|
value === undefined ? undefined : spacingSizes[ newValue ]?.name;
|
|
109
118
|
|
|
110
|
-
const customRangeValue =
|
|
119
|
+
const customRangeValue = parseFloat( currentValue, 10 );
|
|
111
120
|
|
|
112
121
|
const getNewCustomValue = ( newSize ) => {
|
|
113
122
|
const isNumeric = ! isNaN( parseFloat( newSize ) );
|
|
@@ -221,12 +230,16 @@ export default function SpacingInputControl( {
|
|
|
221
230
|
hideLabelFromVision={ true }
|
|
222
231
|
className="components-spacing-sizes-control__custom-value-input"
|
|
223
232
|
style={ { gridColumn: '1' } }
|
|
233
|
+
size={ '__unstable-large' }
|
|
224
234
|
/>
|
|
225
235
|
|
|
226
236
|
<RangeControl
|
|
227
237
|
value={ customRangeValue }
|
|
228
238
|
min={ 0 }
|
|
229
|
-
max={
|
|
239
|
+
max={ CUSTOM_VALUE_SETTINGS[ selectedUnit ]?.max ?? 10 }
|
|
240
|
+
step={
|
|
241
|
+
CUSTOM_VALUE_SETTINGS[ selectedUnit ]?.steps ?? 0.1
|
|
242
|
+
}
|
|
230
243
|
withInputField={ false }
|
|
231
244
|
onChange={ handleCustomValueSliderChange }
|
|
232
245
|
className="components-spacing-sizes-control__custom-value-range"
|
|
@@ -279,6 +292,7 @@ export default function SpacingInputControl( {
|
|
|
279
292
|
label={ ariaLabel }
|
|
280
293
|
hideLabelFromVision={ true }
|
|
281
294
|
__nextUnconstrainedWidth={ true }
|
|
295
|
+
size={ '__unstable-large' }
|
|
282
296
|
/>
|
|
283
297
|
) }
|
|
284
298
|
</>
|