@wordpress/block-editor 10.1.1-next.4d3b314fd5.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 +14 -0
- package/README.md +41 -0
- package/build/components/block-controls/slot.js +2 -2
- package/build/components/block-controls/slot.js.map +1 -1
- 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 -5
- 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 +5 -5
- 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/inbetween.js +3 -1
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +22 -17
- 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 +22 -16
- 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/image-editor/use-transform-image.js +2 -2
- package/build/components/image-editor/use-transform-image.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/block-types-tab.js +1 -1
- package/build/components/inserter/block-types-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/search-items.js +2 -17
- package/build/components/inserter/search-items.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/inspector-controls/slot.js +2 -1
- package/build/components/inspector-controls/slot.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/rich-text/index.js +17 -0
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/index.js +10 -2
- package/build/components/spacing-sizes-control/index.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +40 -9
- 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 +36 -18
- 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-controls/slot.js +3 -3
- package/build-module/components/block-controls/slot.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 +5 -6
- 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 +5 -5
- 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/inbetween.js +3 -1
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +22 -17
- 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 +25 -19
- 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/image-editor/use-transform-image.js +2 -2
- package/build-module/components/image-editor/use-transform-image.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/block-types-tab.js +3 -3
- package/build-module/components/inserter/block-types-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/search-items.js +3 -17
- package/build-module/components/inserter/search-items.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/inspector-controls/slot.js +3 -2
- package/build-module/components/inspector-controls/slot.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/rich-text/index.js +17 -0
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/index.js +10 -3
- package/build-module/components/spacing-sizes-control/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +40 -10
- 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 +36 -19
- 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 +256 -152
- package/build-style/style.css +256 -152
- package/package.json +28 -29
- package/src/components/block-breadcrumb/test/index.js +1 -1
- package/src/components/block-controls/slot.js +3 -3
- package/src/components/block-draggable/draggable-chip.js +4 -2
- package/src/components/block-inspector/index.js +8 -11
- 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 +5 -5
- 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/inbetween.js +1 -1
- package/src/components/block-popover/index.js +39 -22
- 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 +32 -18
- 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/__snapshots__/index.js.snap +104 -33
- package/src/components/block-switcher/test/index.js +121 -61
- 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 +5 -1
- 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-editor/use-transform-image.js +2 -2
- 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/block-types-tab.js +3 -3
- package/src/components/inserter/menu.js +15 -2
- package/src/components/inserter/search-items.js +3 -15
- package/src/components/inserter/style.scss +94 -9
- package/src/components/inserter/test/reusable-blocks-tab.js +6 -6
- package/src/components/inserter/test/search-items.js +4 -0
- package/src/components/inserter-draggable-blocks/index.js +12 -2
- package/src/components/inserter-list-item/style.scss +20 -1
- package/src/components/inspector-controls/slot.js +6 -2
- 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 +77 -122
- package/src/components/rich-text/index.js +22 -0
- package/src/components/spacing-sizes-control/index.js +15 -3
- package/src/components/spacing-sizes-control/spacing-input-control.js +24 -9
- package/src/components/spacing-sizes-control/style.scss +42 -31
- 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 +35 -28
- 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
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render
|
|
5
|
-
import
|
|
4
|
+
import { render } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
10
|
import { Fragment, useState } from '@wordpress/element';
|
|
11
|
-
|
|
12
11
|
import { SelectControl } from '@wordpress/components';
|
|
13
12
|
|
|
14
13
|
/**
|
|
@@ -16,20 +15,6 @@ import { SelectControl } from '@wordpress/components';
|
|
|
16
15
|
*/
|
|
17
16
|
import ResponsiveBlockControl from '../index';
|
|
18
17
|
|
|
19
|
-
let container = null;
|
|
20
|
-
beforeEach( () => {
|
|
21
|
-
// Setup a DOM element as a render target.
|
|
22
|
-
container = document.createElement( 'div' );
|
|
23
|
-
document.body.appendChild( container );
|
|
24
|
-
} );
|
|
25
|
-
|
|
26
|
-
afterEach( () => {
|
|
27
|
-
// Cleanup on exiting.
|
|
28
|
-
unmountComponentAtNode( container );
|
|
29
|
-
container.remove();
|
|
30
|
-
container = null;
|
|
31
|
-
} );
|
|
32
|
-
|
|
33
18
|
const inputId = 'input-12345678';
|
|
34
19
|
|
|
35
20
|
const sizeOptions = [
|
|
@@ -65,16 +50,13 @@ const renderTestDefaultControlComponent = ( labelComponent, device ) => {
|
|
|
65
50
|
|
|
66
51
|
describe( 'Basic rendering', () => {
|
|
67
52
|
it( 'should render with required props', () => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
container
|
|
76
|
-
);
|
|
77
|
-
} );
|
|
53
|
+
const { container } = render(
|
|
54
|
+
<ResponsiveBlockControl
|
|
55
|
+
title="Padding"
|
|
56
|
+
property="padding"
|
|
57
|
+
renderDefaultControl={ renderTestDefaultControlComponent }
|
|
58
|
+
/>
|
|
59
|
+
);
|
|
78
60
|
|
|
79
61
|
const activePropertyLabel = Array.from(
|
|
80
62
|
container.querySelectorAll( 'legend' )
|
|
@@ -108,7 +90,7 @@ describe( 'Basic rendering', () => {
|
|
|
108
90
|
'.block-editor-responsive-block-control__group.is-responsive'
|
|
109
91
|
);
|
|
110
92
|
|
|
111
|
-
expect( container
|
|
93
|
+
expect( container ).not.toBeEmptyDOMElement();
|
|
112
94
|
|
|
113
95
|
expect( defaultControlGroup ).not.toBeNull();
|
|
114
96
|
expect( responsiveControlGroup ).toBeNull();
|
|
@@ -121,58 +103,46 @@ describe( 'Basic rendering', () => {
|
|
|
121
103
|
} );
|
|
122
104
|
|
|
123
105
|
it( 'should not render without valid legend', () => {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
container
|
|
131
|
-
);
|
|
132
|
-
} );
|
|
106
|
+
const { container } = render(
|
|
107
|
+
<ResponsiveBlockControl
|
|
108
|
+
property="padding"
|
|
109
|
+
renderDefaultControl={ renderTestDefaultControlComponent }
|
|
110
|
+
/>
|
|
111
|
+
);
|
|
133
112
|
|
|
134
|
-
expect( container
|
|
113
|
+
expect( container ).toBeEmptyDOMElement();
|
|
135
114
|
} );
|
|
136
115
|
|
|
137
116
|
it( 'should not render without valid property', () => {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
container
|
|
145
|
-
);
|
|
146
|
-
} );
|
|
117
|
+
const { container } = render(
|
|
118
|
+
<ResponsiveBlockControl
|
|
119
|
+
title="Padding"
|
|
120
|
+
renderDefaultControl={ renderTestDefaultControlComponent }
|
|
121
|
+
/>
|
|
122
|
+
);
|
|
147
123
|
|
|
148
|
-
expect( container
|
|
124
|
+
expect( container ).toBeEmptyDOMElement();
|
|
149
125
|
} );
|
|
150
126
|
|
|
151
127
|
it( 'should not render without valid default control render prop', () => {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
container
|
|
156
|
-
);
|
|
157
|
-
} );
|
|
128
|
+
const { container } = render(
|
|
129
|
+
<ResponsiveBlockControl title="Padding" property="padding" />
|
|
130
|
+
);
|
|
158
131
|
|
|
159
|
-
expect( container
|
|
132
|
+
expect( container ).toBeEmptyDOMElement();
|
|
160
133
|
} );
|
|
161
134
|
|
|
162
135
|
it( 'should render with custom label for toggle control when provided', () => {
|
|
163
136
|
const customToggleLabel =
|
|
164
137
|
'Utilise a matching padding value on all viewports';
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
container
|
|
174
|
-
);
|
|
175
|
-
} );
|
|
138
|
+
const { container } = render(
|
|
139
|
+
<ResponsiveBlockControl
|
|
140
|
+
title="Padding"
|
|
141
|
+
property="padding"
|
|
142
|
+
renderDefaultControl={ renderTestDefaultControlComponent }
|
|
143
|
+
toggleLabel={ customToggleLabel }
|
|
144
|
+
/>
|
|
145
|
+
);
|
|
176
146
|
|
|
177
147
|
const actualToggleLabel = container.querySelector(
|
|
178
148
|
'label.components-toggle-control__label'
|
|
@@ -184,17 +154,14 @@ describe( 'Basic rendering', () => {
|
|
|
184
154
|
it( 'should pass custom label for default control group to the renderDefaultControl function when provided', () => {
|
|
185
155
|
const customDefaultControlGroupLabel = 'Everything';
|
|
186
156
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
container
|
|
196
|
-
);
|
|
197
|
-
} );
|
|
157
|
+
const { container } = render(
|
|
158
|
+
<ResponsiveBlockControl
|
|
159
|
+
title="Padding"
|
|
160
|
+
property="padding"
|
|
161
|
+
renderDefaultControl={ renderTestDefaultControlComponent }
|
|
162
|
+
defaultLabel={ customDefaultControlGroupLabel }
|
|
163
|
+
/>
|
|
164
|
+
);
|
|
198
165
|
|
|
199
166
|
const defaultControlLabel = Array.from(
|
|
200
167
|
container.querySelectorAll( 'label' )
|
|
@@ -206,17 +173,14 @@ describe( 'Basic rendering', () => {
|
|
|
206
173
|
|
|
207
174
|
describe( 'Default and Responsive modes', () => {
|
|
208
175
|
it( 'should render in responsive mode when isResponsive prop is set to true', () => {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
container
|
|
218
|
-
);
|
|
219
|
-
} );
|
|
176
|
+
const { container } = render(
|
|
177
|
+
<ResponsiveBlockControl
|
|
178
|
+
title="Padding"
|
|
179
|
+
property="padding"
|
|
180
|
+
isResponsive={ true }
|
|
181
|
+
renderDefaultControl={ renderTestDefaultControlComponent }
|
|
182
|
+
/>
|
|
183
|
+
);
|
|
220
184
|
|
|
221
185
|
const defaultControlGroup = container.querySelector(
|
|
222
186
|
'.block-editor-responsive-block-control__group:not(.is-responsive)'
|
|
@@ -253,18 +217,15 @@ describe( 'Default and Responsive modes', () => {
|
|
|
253
217
|
renderTestDefaultControlComponent
|
|
254
218
|
);
|
|
255
219
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
container
|
|
266
|
-
);
|
|
267
|
-
} );
|
|
220
|
+
const { container } = render(
|
|
221
|
+
<ResponsiveBlockControl
|
|
222
|
+
title="Padding"
|
|
223
|
+
property="padding"
|
|
224
|
+
isResponsive={ true }
|
|
225
|
+
renderDefaultControl={ mockRenderDefaultControl }
|
|
226
|
+
viewports={ customViewportSet }
|
|
227
|
+
/>
|
|
228
|
+
);
|
|
268
229
|
|
|
269
230
|
const defaultRenderControlCall = 1;
|
|
270
231
|
|
|
@@ -287,7 +248,10 @@ describe( 'Default and Responsive modes', () => {
|
|
|
287
248
|
);
|
|
288
249
|
} );
|
|
289
250
|
|
|
290
|
-
it( 'should switch between default and responsive modes when interacting with toggle control', () => {
|
|
251
|
+
it( 'should switch between default and responsive modes when interacting with toggle control', async () => {
|
|
252
|
+
const user = userEvent.setup( {
|
|
253
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
254
|
+
} );
|
|
291
255
|
const ResponsiveBlockControlConsumer = () => {
|
|
292
256
|
const [ isResponsive, setIsResponsive ] = useState( false );
|
|
293
257
|
|
|
@@ -304,9 +268,7 @@ describe( 'Default and Responsive modes', () => {
|
|
|
304
268
|
);
|
|
305
269
|
};
|
|
306
270
|
|
|
307
|
-
|
|
308
|
-
render( <ResponsiveBlockControlConsumer />, container );
|
|
309
|
-
} );
|
|
271
|
+
const { container } = render( <ResponsiveBlockControlConsumer /> );
|
|
310
272
|
|
|
311
273
|
let defaultControlGroup = container.querySelector(
|
|
312
274
|
'.block-editor-responsive-block-control__group:not(.is-responsive)'
|
|
@@ -332,9 +294,7 @@ describe( 'Default and Responsive modes', () => {
|
|
|
332
294
|
expect( responsiveControlGroup ).toBeNull();
|
|
333
295
|
|
|
334
296
|
// Toggle to "responsive" mode.
|
|
335
|
-
|
|
336
|
-
Simulate.change( toggleInput, { target: { checked: false } } );
|
|
337
|
-
} );
|
|
297
|
+
await user.click( toggleInput );
|
|
338
298
|
|
|
339
299
|
defaultControlGroup = container.querySelector(
|
|
340
300
|
'.block-editor-responsive-block-control__group:not(.is-responsive)'
|
|
@@ -347,9 +307,7 @@ describe( 'Default and Responsive modes', () => {
|
|
|
347
307
|
expect( responsiveControlGroup ).not.toBeNull();
|
|
348
308
|
|
|
349
309
|
// Toggle back to "default" mode.
|
|
350
|
-
|
|
351
|
-
Simulate.change( toggleInput, { target: { checked: true } } );
|
|
352
|
-
} );
|
|
310
|
+
await user.click( toggleInput );
|
|
353
311
|
|
|
354
312
|
defaultControlGroup = container.querySelector(
|
|
355
313
|
'.block-editor-responsive-block-control__group:not(.is-responsive)'
|
|
@@ -382,18 +340,15 @@ describe( 'Default and Responsive modes', () => {
|
|
|
382
340
|
} );
|
|
383
341
|
} );
|
|
384
342
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
container
|
|
395
|
-
);
|
|
396
|
-
} );
|
|
343
|
+
const { container } = render(
|
|
344
|
+
<ResponsiveBlockControl
|
|
345
|
+
title="Padding"
|
|
346
|
+
property="padding"
|
|
347
|
+
isResponsive={ true }
|
|
348
|
+
renderDefaultControl={ spyRenderDefaultControl }
|
|
349
|
+
renderResponsiveControls={ mockRenderResponsiveControls }
|
|
350
|
+
/>
|
|
351
|
+
);
|
|
397
352
|
|
|
398
353
|
// The user should see "range" controls so we can legitimately query for them here.
|
|
399
354
|
const customControls = Array.from(
|
|
@@ -159,6 +159,8 @@ function RichTextWrapper(
|
|
|
159
159
|
// retreived from the store on merge.
|
|
160
160
|
// To do: fix this somehow.
|
|
161
161
|
const { selectionStart, selectionEnd, isSelected } = useSelect( selector );
|
|
162
|
+
const { getSelectionStart, getSelectionEnd, getBlockRootClientId } =
|
|
163
|
+
useSelect( blockEditorStore );
|
|
162
164
|
const { selectionChange } = useDispatch( blockEditorStore );
|
|
163
165
|
const multilineTag = getMultilineTag( multiline );
|
|
164
166
|
const adjustedAllowedFormats = getAllowedFormats( {
|
|
@@ -195,6 +197,18 @@ function RichTextWrapper(
|
|
|
195
197
|
const unset = start === undefined && end === undefined;
|
|
196
198
|
|
|
197
199
|
if ( typeof start === 'number' || unset ) {
|
|
200
|
+
// If we are only setting the start (or the end below), which
|
|
201
|
+
// means a partial selection, and we're not updating a selection
|
|
202
|
+
// with the same client ID, abort. This means the selected block
|
|
203
|
+
// is a parent block.
|
|
204
|
+
if (
|
|
205
|
+
end === undefined &&
|
|
206
|
+
getBlockRootClientId( clientId ) !==
|
|
207
|
+
getBlockRootClientId( getSelectionEnd().clientId )
|
|
208
|
+
) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
|
|
198
212
|
selection.start = {
|
|
199
213
|
clientId,
|
|
200
214
|
attributeKey: identifier,
|
|
@@ -203,6 +217,14 @@ function RichTextWrapper(
|
|
|
203
217
|
}
|
|
204
218
|
|
|
205
219
|
if ( typeof end === 'number' || unset ) {
|
|
220
|
+
if (
|
|
221
|
+
start === undefined &&
|
|
222
|
+
getBlockRootClientId( clientId ) !==
|
|
223
|
+
getBlockRootClientId( getSelectionStart().clientId )
|
|
224
|
+
) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
|
|
206
228
|
selection.end = {
|
|
207
229
|
clientId,
|
|
208
230
|
attributeKey: identifier,
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import classnames from 'classnames';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* WordPress dependencies
|
|
3
8
|
*/
|
|
4
9
|
import { useState } from '@wordpress/element';
|
|
5
10
|
import { __ } from '@wordpress/i18n';
|
|
6
|
-
import {
|
|
11
|
+
import { BaseControl } from '@wordpress/components';
|
|
7
12
|
|
|
8
13
|
/**
|
|
9
14
|
* Internal dependencies
|
|
@@ -68,8 +73,15 @@ export default function SpacingSizesControl( {
|
|
|
68
73
|
};
|
|
69
74
|
|
|
70
75
|
return (
|
|
71
|
-
<fieldset
|
|
72
|
-
|
|
76
|
+
<fieldset
|
|
77
|
+
role="region"
|
|
78
|
+
className={ classnames( 'component-spacing-sizes-control', {
|
|
79
|
+
'is-unlinked': ! isLinked,
|
|
80
|
+
} ) }
|
|
81
|
+
>
|
|
82
|
+
<BaseControl.VisualLabel as="legend">
|
|
83
|
+
{ label }
|
|
84
|
+
</BaseControl.VisualLabel>
|
|
73
85
|
{ ! hasOneSide && (
|
|
74
86
|
<LinkedButton onClick={ toggleLinked } isLinked={ isLinked } />
|
|
75
87
|
) }
|
|
@@ -9,12 +9,12 @@ import classnames from 'classnames';
|
|
|
9
9
|
import { useState, useMemo } from '@wordpress/element';
|
|
10
10
|
import { useSelect } from '@wordpress/data';
|
|
11
11
|
import {
|
|
12
|
+
BaseControl,
|
|
12
13
|
Button,
|
|
13
14
|
RangeControl,
|
|
14
15
|
CustomSelectControl,
|
|
15
16
|
__experimentalUnitControl as UnitControl,
|
|
16
17
|
__experimentalHStack as HStack,
|
|
17
|
-
__experimentalText as Text,
|
|
18
18
|
__experimentalUseCustomUnits as useCustomUnits,
|
|
19
19
|
__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,
|
|
20
20
|
} from '@wordpress/components';
|
|
@@ -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 ) );
|
|
@@ -167,21 +176,21 @@ export default function SpacingInputControl( {
|
|
|
167
176
|
<>
|
|
168
177
|
{ side !== 'all' && (
|
|
169
178
|
<HStack className="components-spacing-sizes-control__side-labels">
|
|
170
|
-
<
|
|
179
|
+
<BaseControl.VisualLabel className="components-spacing-sizes-control__side-label">
|
|
171
180
|
{ LABELS[ side ] }
|
|
172
|
-
</
|
|
181
|
+
</BaseControl.VisualLabel>
|
|
173
182
|
|
|
174
183
|
{ showHint && (
|
|
175
|
-
<
|
|
184
|
+
<BaseControl.VisualLabel className="components-spacing-sizes-control__hint-single">
|
|
176
185
|
{ currentValueHint }
|
|
177
|
-
</
|
|
186
|
+
</BaseControl.VisualLabel>
|
|
178
187
|
) }
|
|
179
188
|
</HStack>
|
|
180
189
|
) }
|
|
181
190
|
{ side === 'all' && showHint && (
|
|
182
|
-
<
|
|
191
|
+
<BaseControl.VisualLabel className="components-spacing-sizes-control__hint-all">
|
|
183
192
|
{ currentValueHint }
|
|
184
|
-
</
|
|
193
|
+
</BaseControl.VisualLabel>
|
|
185
194
|
) }
|
|
186
195
|
|
|
187
196
|
{ ! disableCustomSpacingSizes && (
|
|
@@ -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"
|
|
@@ -256,6 +269,7 @@ export default function SpacingInputControl( {
|
|
|
256
269
|
marks={ marks }
|
|
257
270
|
label={ ariaLabel }
|
|
258
271
|
hideLabelFromVision={ true }
|
|
272
|
+
__nextHasNoMarginBottom={ true }
|
|
259
273
|
/>
|
|
260
274
|
) }
|
|
261
275
|
{ ! showRangeControl && ! showCustomValueControl && (
|
|
@@ -278,6 +292,7 @@ export default function SpacingInputControl( {
|
|
|
278
292
|
label={ ariaLabel }
|
|
279
293
|
hideLabelFromVision={ true }
|
|
280
294
|
__nextUnconstrainedWidth={ true }
|
|
295
|
+
size={ '__unstable-large' }
|
|
281
296
|
/>
|
|
282
297
|
) }
|
|
283
298
|
</>
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
.tools-panel-item-spacing {
|
|
2
2
|
display: grid;
|
|
3
3
|
grid-template-columns: auto 1fr auto;
|
|
4
|
-
|
|
4
|
+
align-items: center;
|
|
5
|
+
grid-template-rows: 16px auto;
|
|
5
6
|
}
|
|
6
7
|
|
|
7
8
|
.component-spacing-sizes-control {
|
|
@@ -17,21 +18,35 @@
|
|
|
17
18
|
align-self: center;
|
|
18
19
|
}
|
|
19
20
|
|
|
21
|
+
.components-base-control__label {
|
|
22
|
+
margin-bottom: 0;
|
|
23
|
+
height: $grid-unit-20;
|
|
24
|
+
}
|
|
25
|
+
|
|
20
26
|
.components-spacing-sizes-control__side-labels {
|
|
21
27
|
grid-column: 1 / 1;
|
|
22
|
-
min-height: 30px;
|
|
23
28
|
justify-content: left;
|
|
29
|
+
height: $grid-unit-20;
|
|
30
|
+
margin-top: $grid-unit-20;
|
|
24
31
|
}
|
|
25
32
|
|
|
26
|
-
.components-spacing-sizes-
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
.components-spacing-sizes-control__side-label {
|
|
34
|
+
grid-column: 1 / 1;
|
|
35
|
+
justify-self: left;
|
|
36
|
+
margin-bottom: 0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&.is-unlinked {
|
|
40
|
+
.components-range-control.components-spacing-sizes-control__range-control,
|
|
41
|
+
.components-spacing-sizes-control__custom-value-input {
|
|
42
|
+
margin-top: $grid-unit-10;
|
|
43
|
+
}
|
|
29
44
|
}
|
|
30
45
|
|
|
31
46
|
.components-spacing-sizes-control__hint-single,
|
|
32
47
|
.components-spacing-sizes-control__hint-all {
|
|
33
48
|
color: $gray-700;
|
|
34
|
-
|
|
49
|
+
margin-bottom: 0;
|
|
35
50
|
}
|
|
36
51
|
|
|
37
52
|
.components-spacing-sizes-control__hint-all {
|
|
@@ -46,7 +61,7 @@
|
|
|
46
61
|
grid-column: 2 / 2;
|
|
47
62
|
grid-row: 1 / 1;
|
|
48
63
|
justify-self: end;
|
|
49
|
-
|
|
64
|
+
margin-top: -4px;
|
|
50
65
|
}
|
|
51
66
|
|
|
52
67
|
.component-spacing-sizes-control__linked-button ~ .components-spacing-sizes-control__custom-toggle-all {
|
|
@@ -56,41 +71,43 @@
|
|
|
56
71
|
.components-spacing-sizes-control__custom-toggle-single {
|
|
57
72
|
grid-column: 3 / 3;
|
|
58
73
|
justify-self: end;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
.components-spacing-sizes-control__custom-toggle-all,
|
|
62
|
-
.components-spacing-sizes-control__custom-toggle-single {
|
|
63
|
-
&.is-small.has-icon {
|
|
64
|
-
padding: 0;
|
|
65
|
-
min-width: $icon-size;
|
|
66
|
-
}
|
|
74
|
+
margin-top: $grid-unit-15;
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
.component-spacing-sizes-control__linked-button {
|
|
70
78
|
grid-column: 3 / 3;
|
|
71
79
|
grid-row: 1 / 1;
|
|
72
80
|
justify-self: end;
|
|
81
|
+
line-height: 0;
|
|
82
|
+
margin-top: -4px;
|
|
73
83
|
}
|
|
74
84
|
|
|
75
85
|
.components-spacing-sizes-control__custom-value-range {
|
|
76
86
|
grid-column: span 2;
|
|
77
|
-
margin-left: $grid-unit-
|
|
78
|
-
|
|
79
|
-
height: 30px;
|
|
87
|
+
margin-left: $grid-unit-20;
|
|
88
|
+
margin-top: 8px;
|
|
80
89
|
}
|
|
81
90
|
|
|
82
91
|
.components-spacing-sizes-control__custom-value-input {
|
|
83
92
|
width: 124px;
|
|
93
|
+
margin-top: 8px;
|
|
84
94
|
}
|
|
85
95
|
|
|
86
|
-
.components-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
96
|
+
.components-range-control {
|
|
97
|
+
height: 40px;
|
|
98
|
+
/* Vertically center the RangeControl until it has true 40px height. */
|
|
99
|
+
display: flex;
|
|
100
|
+
align-items: center;
|
|
101
|
+
|
|
102
|
+
> .components-base-control__field {
|
|
103
|
+
/* Fixes RangeControl contents when the outer wrapper is flex */
|
|
104
|
+
flex: 1;
|
|
105
|
+
}
|
|
90
106
|
}
|
|
91
107
|
|
|
92
|
-
.components-
|
|
93
|
-
|
|
108
|
+
.components-spacing-sizes-control__range-control {
|
|
109
|
+
grid-column: span 3;
|
|
110
|
+
margin-top: 8px;
|
|
94
111
|
}
|
|
95
112
|
|
|
96
113
|
.components-range-control__mark {
|
|
@@ -112,14 +129,8 @@
|
|
|
112
129
|
z-index: 3;
|
|
113
130
|
}
|
|
114
131
|
|
|
115
|
-
.components-spacing-sizes-control__side-label {
|
|
116
|
-
margin-right: $grid-unit-05;
|
|
117
|
-
grid-column: 1 / 1;
|
|
118
|
-
justify-self: left;
|
|
119
|
-
font-size: 12px;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
132
|
.components-spacing-sizes-control__custom-select-control {
|
|
123
133
|
grid-column: span 3;
|
|
134
|
+
margin-top: $grid-unit-10;
|
|
124
135
|
}
|
|
125
136
|
}
|