@wordpress/block-editor 8.5.4 → 9.0.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 +9 -0
- package/README.md +4 -2
- package/build/components/block-alignment-control/constants.js +48 -0
- package/build/components/block-alignment-control/constants.js.map +1 -0
- package/build/components/block-alignment-control/ui.js +9 -40
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +92 -0
- package/build/components/block-alignment-control/ui.native.js.map +1 -0
- package/build/components/block-content-overlay/index.js +13 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-list/block.native.js +3 -1
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +1 -7
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-lock/modal.js +34 -4
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +2 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js +4 -1
- package/build/components/block-lock/use-block-lock.js.map +1 -1
- package/build/components/block-mover/button.js +4 -4
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +39 -65
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +11 -5
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-popover/inbetween.js +183 -0
- package/build/components/block-popover/inbetween.js.map +1 -0
- package/build/components/block-popover/index.js +97 -0
- package/build/components/block-popover/index.js.map +1 -0
- package/build/components/{block-tools → block-popover}/use-popover-scroll.js +4 -1
- package/build/components/block-popover/use-popover-scroll.js.map +1 -0
- package/build/components/block-styles/index.js +1 -10
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-tools/back-compat.js +2 -2
- package/build/components/block-tools/back-compat.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +4 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +5 -5
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +14 -121
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/{block-popover.js → selected-block-popover.js} +25 -108
- package/build/components/block-tools/selected-block-popover.js.map +1 -0
- package/build/components/color-style-selector/index.js +9 -0
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/duotone-control/index.js +5 -1
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/index.js +0 -9
- package/build/components/index.js.map +1 -1
- package/build/components/inserter/index.native.js +30 -8
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/list-view/block.js +15 -15
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +9 -13
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/context.js +1 -4
- package/build/components/list-view/context.js.map +1 -1
- package/build/components/list-view/index.js +15 -32
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/rich-text/index.js +0 -5
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +0 -4
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/url-input/index.js +7 -3
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +3 -1
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-setting/index.js +42 -18
- package/build/components/use-setting/index.js.map +1 -1
- package/build/hooks/border.js +468 -44
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/dimensions.js +2 -2
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/index.js +3 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/margin.js +64 -12
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +60 -12
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/settings.js +32 -0
- package/build/hooks/settings.js.map +1 -0
- package/build/hooks/use-border-props.js +22 -32
- package/build/hooks/use-border-props.js.map +1 -1
- package/build/store/actions.js +14 -2
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +0 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +0 -26
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +47 -15
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-alignment-control/constants.js +36 -0
- package/build-module/components/block-alignment-control/constants.js.map +1 -0
- package/build-module/components/block-alignment-control/ui.js +4 -35
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +78 -0
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -0
- package/build-module/components/block-content-overlay/index.js +13 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-list/block.native.js +3 -1
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -7
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-lock/modal.js +34 -5
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +2 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js +4 -1
- package/build-module/components/block-lock/use-block-lock.js.map +1 -1
- package/build-module/components/block-mover/button.js +5 -5
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +38 -63
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +10 -5
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +165 -0
- package/build-module/components/block-popover/inbetween.js.map +1 -0
- package/build-module/components/block-popover/index.js +83 -0
- package/build-module/components/block-popover/index.js.map +1 -0
- package/build-module/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
- package/build-module/components/block-popover/use-popover-scroll.js.map +1 -0
- package/build-module/components/block-styles/index.js +1 -9
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-tools/back-compat.js +1 -1
- package/build-module/components/block-tools/back-compat.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +3 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +3 -3
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +16 -121
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/{block-popover.js → selected-block-popover.js} +25 -105
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -0
- package/build-module/components/color-style-selector/index.js +6 -0
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/duotone-control/index.js +4 -1
- package/build-module/components/duotone-control/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/inserter/index.native.js +31 -10
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/list-view/block.js +15 -16
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +9 -13
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/context.js +1 -4
- package/build-module/components/list-view/context.js.map +1 -1
- package/build-module/components/list-view/index.js +15 -31
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +0 -4
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +0 -4
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/url-input/index.js +7 -3
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +3 -1
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-setting/index.js +43 -19
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/hooks/border.js +458 -44
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/dimensions.js +5 -5
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/index.js +2 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/margin.js +61 -13
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +57 -13
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/settings.js +29 -0
- package/build-module/hooks/settings.js.map +1 -0
- package/build-module/hooks/use-border-props.js +21 -30
- package/build-module/hooks/use-border-props.js.map +1 -1
- package/build-module/store/actions.js +14 -2
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +0 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +0 -24
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +44 -15
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +128 -276
- package/build-style/style.css +128 -276
- package/package.json +28 -28
- package/src/components/block-alignment-control/constants.js +45 -0
- package/src/components/block-alignment-control/ui.js +69 -109
- package/src/components/block-alignment-control/ui.native.js +86 -0
- package/src/components/block-content-overlay/index.js +19 -2
- package/src/components/block-list/block.native.js +2 -0
- package/src/components/block-list/style.scss +7 -18
- package/src/components/block-list/use-block-props/use-block-class-names.js +1 -11
- package/src/components/block-lock/modal.js +42 -3
- package/src/components/block-lock/toolbar.js +2 -2
- package/src/components/block-lock/use-block-lock.js +4 -1
- package/src/components/block-mover/button.js +5 -7
- package/src/components/block-mover/index.js +37 -60
- package/src/components/block-mover/stories/index.js +110 -0
- package/src/components/block-mover/style.scss +48 -138
- package/src/components/block-navigation/dropdown.js +12 -8
- package/src/components/block-popover/README.md +41 -0
- package/src/components/block-popover/inbetween.js +180 -0
- package/src/components/block-popover/index.js +90 -0
- package/src/components/block-popover/style.scss +27 -0
- package/src/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
- package/src/components/block-styles/index.js +1 -12
- package/src/components/block-switcher/style.scss +0 -4
- package/src/components/block-toolbar/style.scss +0 -12
- package/src/components/block-tools/back-compat.js +1 -1
- package/src/components/block-tools/block-selection-button.js +3 -1
- package/src/components/block-tools/index.js +6 -4
- package/src/components/block-tools/insertion-point.js +19 -152
- package/src/components/block-tools/{block-popover.js → selected-block-popover.js} +24 -116
- package/src/components/block-tools/style.scss +11 -123
- package/src/components/border-radius-control/style.scss +5 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/color-style-selector/index.js +18 -9
- package/src/components/default-block-appender/style.scss +1 -2
- package/src/components/duotone-control/index.js +8 -1
- package/src/components/gradients/README.md +29 -0
- package/src/components/image-size-control/README.md +1 -1
- package/src/components/index.js +0 -1
- package/src/components/inserter/index.native.js +60 -25
- package/src/components/inserter/style.native.scss +25 -3
- package/src/components/list-view/block.js +24 -34
- package/src/components/list-view/branch.js +10 -20
- package/src/components/list-view/context.js +1 -4
- package/src/components/list-view/index.js +11 -41
- package/src/components/navigable-toolbar/README.md +16 -0
- package/src/components/rich-text/index.js +0 -2
- package/src/components/rich-text/index.native.js +0 -4
- package/src/components/url-input/index.js +6 -3
- package/src/components/use-block-display-information/index.js +2 -0
- package/src/components/use-setting/index.js +57 -21
- package/src/hooks/border.js +438 -72
- package/src/hooks/border.scss +48 -0
- package/src/hooks/dimensions.js +44 -38
- package/src/hooks/index.js +2 -1
- package/src/hooks/margin.js +64 -15
- package/src/hooks/padding.js +60 -15
- package/src/hooks/padding.scss +12 -0
- package/src/hooks/settings.js +32 -0
- package/src/hooks/test/settings.js +48 -0
- package/src/hooks/use-border-props.js +15 -32
- package/src/store/actions.js +14 -2
- package/src/store/defaults.js +0 -1
- package/src/store/reducer.js +0 -21
- package/src/store/selectors.js +46 -15
- package/src/store/test/actions.js +0 -18
- package/src/store/test/reducer.js +0 -19
- package/src/store/test/selectors.js +17 -19
- package/src/style.scss +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-mobile-toolbar/index.js +0 -42
- package/build/components/block-mobile-toolbar/index.js.map +0 -1
- package/build/components/block-tools/block-popover.js.map +0 -1
- package/build/components/block-tools/use-popover-scroll.js.map +0 -1
- package/build/components/border-style-control/index.js +0 -60
- package/build/components/border-style-control/index.js.map +0 -1
- package/build/components/list-view/appender.js +0 -93
- package/build/components/list-view/appender.js.map +0 -1
- package/build/components/list-view/list-item.js +0 -62
- package/build/components/list-view/list-item.js.map +0 -1
- package/build/components/rich-text/use-caret-in-format.js +0 -43
- package/build/components/rich-text/use-caret-in-format.js.map +0 -1
- package/build/hooks/border-color.js +0 -302
- package/build/hooks/border-color.js.map +0 -1
- package/build/hooks/border-style.js +0 -96
- package/build/hooks/border-style.js.map +0 -1
- package/build/hooks/border-width.js +0 -162
- package/build/hooks/border-width.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/index.js +0 -31
- package/build-module/components/block-mobile-toolbar/index.js.map +0 -1
- package/build-module/components/block-tools/block-popover.js.map +0 -1
- package/build-module/components/block-tools/use-popover-scroll.js.map +0 -1
- package/build-module/components/border-style-control/index.js +0 -50
- package/build-module/components/border-style-control/index.js.map +0 -1
- package/build-module/components/list-view/appender.js +0 -76
- package/build-module/components/list-view/appender.js.map +0 -1
- package/build-module/components/list-view/list-item.js +0 -47
- package/build-module/components/list-view/list-item.js.map +0 -1
- package/build-module/components/rich-text/use-caret-in-format.js +0 -33
- package/build-module/components/rich-text/use-caret-in-format.js.map +0 -1
- package/build-module/hooks/border-color.js +0 -276
- package/build-module/hooks/border-color.js.map +0 -1
- package/build-module/hooks/border-style.js +0 -78
- package/build-module/hooks/border-style.js.map +0 -1
- package/build-module/hooks/border-width.js +0 -143
- package/build-module/hooks/border-width.js.map +0 -1
- package/src/components/block-mobile-toolbar/index.js +0 -24
- package/src/components/block-mobile-toolbar/style.scss +0 -29
- package/src/components/border-style-control/index.js +0 -47
- package/src/components/border-style-control/style.scss +0 -18
- package/src/components/list-view/appender.js +0 -82
- package/src/components/list-view/list-item.js +0 -59
- package/src/components/rich-text/use-caret-in-format.js +0 -28
- package/src/hooks/border-color.js +0 -315
- package/src/hooks/border-style.js +0 -64
- package/src/hooks/border-width.js +0 -139
package/src/hooks/border.scss
CHANGED
|
@@ -3,3 +3,51 @@
|
|
|
3
3
|
grid-column: span 1;
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
+
|
|
7
|
+
.block-editor__border-box-control__popover,
|
|
8
|
+
.block-editor__border-box-control__popover-top,
|
|
9
|
+
.block-editor__border-box-control__popover-right,
|
|
10
|
+
.block-editor__border-box-control__popover-bottom,
|
|
11
|
+
.block-editor__border-box-control__popover-left {
|
|
12
|
+
.components-popover__content {
|
|
13
|
+
width: 282px;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
$split-border-control-offset: 55px;
|
|
18
|
+
|
|
19
|
+
@include break-medium() {
|
|
20
|
+
.block-editor__border-box-control__popover,
|
|
21
|
+
.block-editor__border-box-control__popover-left {
|
|
22
|
+
.components-popover__content {
|
|
23
|
+
margin-right: #{ $grid-unit-50 + $grid-unit-15 } !important;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.block-editor__border-box-control__popover-top,
|
|
28
|
+
.block-editor__border-box-control__popover-bottom {
|
|
29
|
+
.components-popover__content {
|
|
30
|
+
margin-right: #{ $grid-unit-50 + $grid-unit-15 + $split-border-control-offset } !important;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.block-editor__border-box-control__popover-right {
|
|
35
|
+
.components-popover__content {
|
|
36
|
+
margin-right: #{ $grid-unit-50 + $grid-unit-15 + ( $split-border-control-offset * 2 )} !important;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.block-editor__border-box-control__popover,
|
|
41
|
+
.block-editor__border-box-control__popover-top,
|
|
42
|
+
.block-editor__border-box-control__popover-right,
|
|
43
|
+
.block-editor__border-box-control__popover-bottom,
|
|
44
|
+
.block-editor__border-box-control__popover-left {
|
|
45
|
+
&.is-from-top .components-popover__content {
|
|
46
|
+
margin-top: #{ -($grid-unit-50 + $grid-unit-15) } !important;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&.is-from-bottom .components-popover__content {
|
|
50
|
+
margin-bottom: #{ -($grid-unit-50 + $grid-unit-15) } !important;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
package/src/hooks/dimensions.js
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
} from './gap';
|
|
20
20
|
import {
|
|
21
21
|
MarginEdit,
|
|
22
|
+
MarginVisualizer,
|
|
22
23
|
hasMarginSupport,
|
|
23
24
|
hasMarginValue,
|
|
24
25
|
resetMargin,
|
|
@@ -26,6 +27,7 @@ import {
|
|
|
26
27
|
} from './margin';
|
|
27
28
|
import {
|
|
28
29
|
PaddingEdit,
|
|
30
|
+
PaddingVisualizer,
|
|
29
31
|
hasPaddingSupport,
|
|
30
32
|
hasPaddingValue,
|
|
31
33
|
resetPadding,
|
|
@@ -71,44 +73,48 @@ export function DimensionsPanel( props ) {
|
|
|
71
73
|
} );
|
|
72
74
|
|
|
73
75
|
return (
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
76
|
+
<>
|
|
77
|
+
<InspectorControls __experimentalGroup="dimensions">
|
|
78
|
+
{ ! isPaddingDisabled && (
|
|
79
|
+
<ToolsPanelItem
|
|
80
|
+
hasValue={ () => hasPaddingValue( props ) }
|
|
81
|
+
label={ __( 'Padding' ) }
|
|
82
|
+
onDeselect={ () => resetPadding( props ) }
|
|
83
|
+
resetAllFilter={ createResetAllFilter( 'padding' ) }
|
|
84
|
+
isShownByDefault={ defaultSpacingControls?.padding }
|
|
85
|
+
panelId={ props.clientId }
|
|
86
|
+
>
|
|
87
|
+
<PaddingEdit { ...props } />
|
|
88
|
+
</ToolsPanelItem>
|
|
89
|
+
) }
|
|
90
|
+
{ ! isMarginDisabled && (
|
|
91
|
+
<ToolsPanelItem
|
|
92
|
+
hasValue={ () => hasMarginValue( props ) }
|
|
93
|
+
label={ __( 'Margin' ) }
|
|
94
|
+
onDeselect={ () => resetMargin( props ) }
|
|
95
|
+
resetAllFilter={ createResetAllFilter( 'margin' ) }
|
|
96
|
+
isShownByDefault={ defaultSpacingControls?.margin }
|
|
97
|
+
panelId={ props.clientId }
|
|
98
|
+
>
|
|
99
|
+
<MarginEdit { ...props } />
|
|
100
|
+
</ToolsPanelItem>
|
|
101
|
+
) }
|
|
102
|
+
{ ! isGapDisabled && (
|
|
103
|
+
<ToolsPanelItem
|
|
104
|
+
hasValue={ () => hasGapValue( props ) }
|
|
105
|
+
label={ __( 'Block spacing' ) }
|
|
106
|
+
onDeselect={ () => resetGap( props ) }
|
|
107
|
+
resetAllFilter={ createResetAllFilter( 'blockGap' ) }
|
|
108
|
+
isShownByDefault={ defaultSpacingControls?.blockGap }
|
|
109
|
+
panelId={ props.clientId }
|
|
110
|
+
>
|
|
111
|
+
<GapEdit { ...props } />
|
|
112
|
+
</ToolsPanelItem>
|
|
113
|
+
) }
|
|
114
|
+
</InspectorControls>
|
|
115
|
+
{ ! isPaddingDisabled && <PaddingVisualizer { ...props } /> }
|
|
116
|
+
{ ! isMarginDisabled && <MarginVisualizer { ...props } /> }
|
|
117
|
+
</>
|
|
112
118
|
);
|
|
113
119
|
}
|
|
114
120
|
|
package/src/hooks/index.js
CHANGED
|
@@ -8,10 +8,11 @@ import './anchor';
|
|
|
8
8
|
import './custom-class-name';
|
|
9
9
|
import './generated-class-name';
|
|
10
10
|
import './style';
|
|
11
|
+
import './settings';
|
|
11
12
|
import './color';
|
|
12
13
|
import './duotone';
|
|
13
14
|
import './font-size';
|
|
14
|
-
import './border
|
|
15
|
+
import './border';
|
|
15
16
|
import './layout';
|
|
16
17
|
|
|
17
18
|
export { useCustomSides } from './dimensions';
|
package/src/hooks/margin.js
CHANGED
|
@@ -2,12 +2,19 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
Platform,
|
|
7
|
+
useMemo,
|
|
8
|
+
useRef,
|
|
9
|
+
useState,
|
|
10
|
+
useEffect,
|
|
11
|
+
} from '@wordpress/element';
|
|
6
12
|
import { getBlockSupport } from '@wordpress/blocks';
|
|
7
13
|
import {
|
|
8
14
|
__experimentalUseCustomUnits as useCustomUnits,
|
|
9
15
|
__experimentalBoxControl as BoxControl,
|
|
10
16
|
} from '@wordpress/components';
|
|
17
|
+
import isShallowEqual from '@wordpress/is-shallow-equal';
|
|
11
18
|
|
|
12
19
|
/**
|
|
13
20
|
* Internal dependencies
|
|
@@ -20,6 +27,7 @@ import {
|
|
|
20
27
|
useIsDimensionsSupportValid,
|
|
21
28
|
} from './dimensions';
|
|
22
29
|
import { cleanEmptyObject } from './utils';
|
|
30
|
+
import BlockPopover from '../components/block-popover';
|
|
23
31
|
|
|
24
32
|
/**
|
|
25
33
|
* Determines if there is margin support.
|
|
@@ -124,26 +132,12 @@ export function MarginEdit( props ) {
|
|
|
124
132
|
} );
|
|
125
133
|
};
|
|
126
134
|
|
|
127
|
-
const onChangeShowVisualizer = ( next ) => {
|
|
128
|
-
const newStyle = {
|
|
129
|
-
...style,
|
|
130
|
-
visualizers: {
|
|
131
|
-
margin: next,
|
|
132
|
-
},
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
setAttributes( {
|
|
136
|
-
style: cleanEmptyObject( newStyle ),
|
|
137
|
-
} );
|
|
138
|
-
};
|
|
139
|
-
|
|
140
135
|
return Platform.select( {
|
|
141
136
|
web: (
|
|
142
137
|
<>
|
|
143
138
|
<BoxControl
|
|
144
139
|
values={ style?.spacing?.margin }
|
|
145
140
|
onChange={ onChange }
|
|
146
|
-
onChangeShowVisualizer={ onChangeShowVisualizer }
|
|
147
141
|
label={ __( 'Margin' ) }
|
|
148
142
|
sides={ sides }
|
|
149
143
|
units={ units }
|
|
@@ -155,3 +149,58 @@ export function MarginEdit( props ) {
|
|
|
155
149
|
native: null,
|
|
156
150
|
} );
|
|
157
151
|
}
|
|
152
|
+
|
|
153
|
+
export function MarginVisualizer( { clientId, attributes } ) {
|
|
154
|
+
const margin = attributes?.style?.spacing?.margin;
|
|
155
|
+
const style = useMemo( () => {
|
|
156
|
+
return {
|
|
157
|
+
borderTopWidth: margin?.top ?? 0,
|
|
158
|
+
borderRightWidth: margin?.right ?? 0,
|
|
159
|
+
borderBottomWidth: margin?.bottom ?? 0,
|
|
160
|
+
borderLeftWidth: margin?.left ?? 0,
|
|
161
|
+
top: margin?.top ? `-${ margin.top }` : 0,
|
|
162
|
+
right: margin?.right ? `-${ margin.right }` : 0,
|
|
163
|
+
bottom: margin?.bottom ? `-${ margin.bottom }` : 0,
|
|
164
|
+
left: margin?.left ? `-${ margin.left }` : 0,
|
|
165
|
+
};
|
|
166
|
+
}, [ margin ] );
|
|
167
|
+
|
|
168
|
+
const [ isActive, setIsActive ] = useState( false );
|
|
169
|
+
const valueRef = useRef( margin );
|
|
170
|
+
const timeoutRef = useRef();
|
|
171
|
+
|
|
172
|
+
const clearTimer = () => {
|
|
173
|
+
if ( timeoutRef.current ) {
|
|
174
|
+
window.clearTimeout( timeoutRef.current );
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
useEffect( () => {
|
|
179
|
+
if ( ! isShallowEqual( margin, valueRef.current ) ) {
|
|
180
|
+
setIsActive( true );
|
|
181
|
+
valueRef.current = margin;
|
|
182
|
+
|
|
183
|
+
clearTimer();
|
|
184
|
+
|
|
185
|
+
timeoutRef.current = setTimeout( () => {
|
|
186
|
+
setIsActive( false );
|
|
187
|
+
}, 400 );
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return () => clearTimer();
|
|
191
|
+
}, [ margin ] );
|
|
192
|
+
|
|
193
|
+
if ( ! isActive ) {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
return (
|
|
198
|
+
<BlockPopover
|
|
199
|
+
clientId={ clientId }
|
|
200
|
+
__unstableCoverTarget
|
|
201
|
+
__unstableRefreshSize={ margin }
|
|
202
|
+
>
|
|
203
|
+
<div className="block-editor__padding-visualizer" style={ style } />
|
|
204
|
+
</BlockPopover>
|
|
205
|
+
);
|
|
206
|
+
}
|
package/src/hooks/padding.js
CHANGED
|
@@ -2,12 +2,19 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
Platform,
|
|
7
|
+
useState,
|
|
8
|
+
useRef,
|
|
9
|
+
useEffect,
|
|
10
|
+
useMemo,
|
|
11
|
+
} from '@wordpress/element';
|
|
6
12
|
import { getBlockSupport } from '@wordpress/blocks';
|
|
7
13
|
import {
|
|
8
14
|
__experimentalUseCustomUnits as useCustomUnits,
|
|
9
15
|
__experimentalBoxControl as BoxControl,
|
|
10
16
|
} from '@wordpress/components';
|
|
17
|
+
import isShallowEqual from '@wordpress/is-shallow-equal';
|
|
11
18
|
|
|
12
19
|
/**
|
|
13
20
|
* Internal dependencies
|
|
@@ -20,6 +27,7 @@ import {
|
|
|
20
27
|
useIsDimensionsSupportValid,
|
|
21
28
|
} from './dimensions';
|
|
22
29
|
import { cleanEmptyObject } from './utils';
|
|
30
|
+
import BlockPopover from '../components/block-popover';
|
|
23
31
|
|
|
24
32
|
/**
|
|
25
33
|
* Determines if there is padding support.
|
|
@@ -124,26 +132,12 @@ export function PaddingEdit( props ) {
|
|
|
124
132
|
} );
|
|
125
133
|
};
|
|
126
134
|
|
|
127
|
-
const onChangeShowVisualizer = ( next ) => {
|
|
128
|
-
const newStyle = {
|
|
129
|
-
...style,
|
|
130
|
-
visualizers: {
|
|
131
|
-
padding: next,
|
|
132
|
-
},
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
setAttributes( {
|
|
136
|
-
style: cleanEmptyObject( newStyle ),
|
|
137
|
-
} );
|
|
138
|
-
};
|
|
139
|
-
|
|
140
135
|
return Platform.select( {
|
|
141
136
|
web: (
|
|
142
137
|
<>
|
|
143
138
|
<BoxControl
|
|
144
139
|
values={ style?.spacing?.padding }
|
|
145
140
|
onChange={ onChange }
|
|
146
|
-
onChangeShowVisualizer={ onChangeShowVisualizer }
|
|
147
141
|
label={ __( 'Padding' ) }
|
|
148
142
|
sides={ sides }
|
|
149
143
|
units={ units }
|
|
@@ -155,3 +149,54 @@ export function PaddingEdit( props ) {
|
|
|
155
149
|
native: null,
|
|
156
150
|
} );
|
|
157
151
|
}
|
|
152
|
+
|
|
153
|
+
export function PaddingVisualizer( { clientId, attributes } ) {
|
|
154
|
+
const padding = attributes?.style?.spacing?.padding;
|
|
155
|
+
const style = useMemo( () => {
|
|
156
|
+
return {
|
|
157
|
+
borderTopWidth: padding?.top ?? 0,
|
|
158
|
+
borderRightWidth: padding?.right ?? 0,
|
|
159
|
+
borderBottomWidth: padding?.bottom ?? 0,
|
|
160
|
+
borderLeftWidth: padding?.left ?? 0,
|
|
161
|
+
};
|
|
162
|
+
}, [ padding ] );
|
|
163
|
+
|
|
164
|
+
const [ isActive, setIsActive ] = useState( false );
|
|
165
|
+
const valueRef = useRef( padding );
|
|
166
|
+
const timeoutRef = useRef();
|
|
167
|
+
|
|
168
|
+
const clearTimer = () => {
|
|
169
|
+
if ( timeoutRef.current ) {
|
|
170
|
+
window.clearTimeout( timeoutRef.current );
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
useEffect( () => {
|
|
175
|
+
if ( ! isShallowEqual( padding, valueRef.current ) ) {
|
|
176
|
+
setIsActive( true );
|
|
177
|
+
valueRef.current = padding;
|
|
178
|
+
|
|
179
|
+
clearTimer();
|
|
180
|
+
|
|
181
|
+
timeoutRef.current = setTimeout( () => {
|
|
182
|
+
setIsActive( false );
|
|
183
|
+
}, 400 );
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return () => clearTimer();
|
|
187
|
+
}, [ padding ] );
|
|
188
|
+
|
|
189
|
+
if ( ! isActive ) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return (
|
|
194
|
+
<BlockPopover
|
|
195
|
+
clientId={ clientId }
|
|
196
|
+
__unstableCoverTarget
|
|
197
|
+
__unstableRefreshSize={ padding }
|
|
198
|
+
>
|
|
199
|
+
<div className="block-editor__padding-visualizer" style={ style } />
|
|
200
|
+
</BlockPopover>
|
|
201
|
+
);
|
|
202
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { addFilter } from '@wordpress/hooks';
|
|
5
|
+
import { hasBlockSupport } from '@wordpress/blocks';
|
|
6
|
+
|
|
7
|
+
const hasSettingsSupport = ( blockType ) =>
|
|
8
|
+
hasBlockSupport( blockType, '__experimentalSettings', false );
|
|
9
|
+
|
|
10
|
+
function addAttribute( settings ) {
|
|
11
|
+
if ( ! hasSettingsSupport( settings ) ) {
|
|
12
|
+
return settings;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Allow blocks to specify their own attribute definition with default values if needed.
|
|
16
|
+
if ( ! settings?.attributes?.settings ) {
|
|
17
|
+
settings.attributes = {
|
|
18
|
+
...settings.attributes,
|
|
19
|
+
settings: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return settings;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
addFilter(
|
|
29
|
+
'blocks.registerBlockType',
|
|
30
|
+
'core/settings/addAttribute',
|
|
31
|
+
addAttribute
|
|
32
|
+
);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { applyFilters } from '@wordpress/hooks';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import '../settings';
|
|
10
|
+
|
|
11
|
+
describe( 'with settings', () => {
|
|
12
|
+
const blockSettings = {
|
|
13
|
+
save: () => <div className="default" />,
|
|
14
|
+
category: 'text',
|
|
15
|
+
title: 'block title',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
describe( 'addAttribute', () => {
|
|
19
|
+
const addAttribute = applyFilters.bind(
|
|
20
|
+
null,
|
|
21
|
+
'blocks.registerBlockType'
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
it( 'does not have settings att if settings block support is not enabled', () => {
|
|
25
|
+
const settings = addAttribute( {
|
|
26
|
+
...blockSettings,
|
|
27
|
+
supports: {
|
|
28
|
+
__experimentalSettings: false,
|
|
29
|
+
},
|
|
30
|
+
} );
|
|
31
|
+
|
|
32
|
+
expect( settings.attributes ).toBe( undefined );
|
|
33
|
+
} );
|
|
34
|
+
|
|
35
|
+
it( 'has settings att if settings block supports is enabled', () => {
|
|
36
|
+
const settings = addAttribute( {
|
|
37
|
+
...blockSettings,
|
|
38
|
+
supports: {
|
|
39
|
+
__experimentalSettings: true,
|
|
40
|
+
},
|
|
41
|
+
} );
|
|
42
|
+
|
|
43
|
+
expect( settings.attributes ).toStrictEqual( {
|
|
44
|
+
settings: { type: 'object' },
|
|
45
|
+
} );
|
|
46
|
+
} );
|
|
47
|
+
} );
|
|
48
|
+
} );
|
|
@@ -1,46 +1,28 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import classnames from 'classnames';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* Internal dependencies
|
|
8
3
|
*/
|
|
9
4
|
import { getInlineStyles } from './style';
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
getColorObjectByAttributeValues,
|
|
13
|
-
} from '../components/colors';
|
|
14
|
-
import useSetting from '../components/use-setting';
|
|
5
|
+
import { getBorderClasses, getMultiOriginColor } from './border';
|
|
6
|
+
import useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';
|
|
15
7
|
|
|
16
8
|
// This utility is intended to assist where the serialization of the border
|
|
17
9
|
// block support is being skipped for a block but the border related CSS classes
|
|
18
10
|
// & styles still need to be generated so they can be applied to inner elements.
|
|
19
11
|
|
|
20
|
-
const EMPTY_ARRAY = [];
|
|
21
|
-
|
|
22
12
|
/**
|
|
23
13
|
* Provides the CSS class names and inline styles for a block's border support
|
|
24
14
|
* attributes.
|
|
25
15
|
*
|
|
26
|
-
* @param {Object} attributes
|
|
27
|
-
* @param {string} attributes.borderColor Selected named border color.
|
|
28
|
-
* @param {Object} attributes.style Block's styles attribute.
|
|
29
|
-
*
|
|
16
|
+
* @param {Object} attributes Block attributes.
|
|
30
17
|
* @return {Object} Border block support derived CSS classes & styles.
|
|
31
18
|
*/
|
|
32
|
-
export function getBorderClassesAndStyles(
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
const className = classnames( {
|
|
37
|
-
[ borderClass ]: !! borderClass,
|
|
38
|
-
'has-border-color': borderColor || style?.border?.color,
|
|
39
|
-
} );
|
|
19
|
+
export function getBorderClassesAndStyles( attributes ) {
|
|
20
|
+
const border = attributes.style?.border || {};
|
|
21
|
+
const className = getBorderClasses( attributes );
|
|
40
22
|
|
|
41
23
|
return {
|
|
42
24
|
className: className || undefined,
|
|
43
|
-
style: getInlineStyles( { border
|
|
25
|
+
style: getInlineStyles( { border } ),
|
|
44
26
|
};
|
|
45
27
|
}
|
|
46
28
|
|
|
@@ -56,16 +38,17 @@ export function getBorderClassesAndStyles( { borderColor, style } ) {
|
|
|
56
38
|
* @return {Object} ClassName & style props from border block support.
|
|
57
39
|
*/
|
|
58
40
|
export function useBorderProps( attributes ) {
|
|
59
|
-
const colors =
|
|
41
|
+
const { colors } = useMultipleOriginColorsAndGradients();
|
|
60
42
|
const borderProps = getBorderClassesAndStyles( attributes );
|
|
43
|
+
const { borderColor } = attributes;
|
|
61
44
|
|
|
62
|
-
// Force inline
|
|
63
|
-
// color stylesheets in the editor.
|
|
64
|
-
if (
|
|
65
|
-
const borderColorObject =
|
|
45
|
+
// Force inline styles to apply named border colors when themes do not load
|
|
46
|
+
// their color stylesheets in the editor.
|
|
47
|
+
if ( borderColor ) {
|
|
48
|
+
const borderColorObject = getMultiOriginColor( {
|
|
66
49
|
colors,
|
|
67
|
-
|
|
68
|
-
);
|
|
50
|
+
namedColor: borderColor,
|
|
51
|
+
} );
|
|
69
52
|
|
|
70
53
|
borderProps.style.borderColor = borderColorObject.color;
|
|
71
54
|
}
|
package/src/store/actions.js
CHANGED
|
@@ -1261,22 +1261,34 @@ export function stopDraggingBlocks() {
|
|
|
1261
1261
|
/**
|
|
1262
1262
|
* Returns an action object used in signalling that the caret has entered formatted text.
|
|
1263
1263
|
*
|
|
1264
|
+
* @deprecated
|
|
1265
|
+
*
|
|
1264
1266
|
* @return {Object} Action object.
|
|
1265
1267
|
*/
|
|
1266
1268
|
export function enterFormattedText() {
|
|
1269
|
+
deprecated( 'wp.data.dispatch( "core/block-editor" ).enterFormattedText', {
|
|
1270
|
+
since: '6.1',
|
|
1271
|
+
version: '6.3',
|
|
1272
|
+
} );
|
|
1267
1273
|
return {
|
|
1268
|
-
type: '
|
|
1274
|
+
type: 'DO_NOTHING',
|
|
1269
1275
|
};
|
|
1270
1276
|
}
|
|
1271
1277
|
|
|
1272
1278
|
/**
|
|
1273
1279
|
* Returns an action object used in signalling that the user caret has exited formatted text.
|
|
1274
1280
|
*
|
|
1281
|
+
* @deprecated
|
|
1282
|
+
*
|
|
1275
1283
|
* @return {Object} Action object.
|
|
1276
1284
|
*/
|
|
1277
1285
|
export function exitFormattedText() {
|
|
1286
|
+
deprecated( 'wp.data.dispatch( "core/block-editor" ).exitFormattedText', {
|
|
1287
|
+
since: '6.1',
|
|
1288
|
+
version: '6.3',
|
|
1289
|
+
} );
|
|
1278
1290
|
return {
|
|
1279
|
-
type: '
|
|
1291
|
+
type: 'DO_NOTHING',
|
|
1280
1292
|
};
|
|
1281
1293
|
}
|
|
1282
1294
|
|
package/src/store/defaults.js
CHANGED
|
@@ -160,7 +160,6 @@ export const SETTINGS_DEFAULTS = {
|
|
|
160
160
|
__mobileEnablePageTemplates: false,
|
|
161
161
|
__experimentalBlockPatterns: [],
|
|
162
162
|
__experimentalBlockPatternCategories: [],
|
|
163
|
-
__experimentalSpotlightEntityBlocks: [],
|
|
164
163
|
__unstableGalleryWithImageBlocks: false,
|
|
165
164
|
|
|
166
165
|
generateAnchors: false,
|
package/src/store/reducer.js
CHANGED
|
@@ -1181,26 +1181,6 @@ export function draggedBlocks( state = [], action ) {
|
|
|
1181
1181
|
return state;
|
|
1182
1182
|
}
|
|
1183
1183
|
|
|
1184
|
-
/**
|
|
1185
|
-
* Reducer returning whether the caret is within formatted text.
|
|
1186
|
-
*
|
|
1187
|
-
* @param {boolean} state Current state.
|
|
1188
|
-
* @param {Object} action Dispatched action.
|
|
1189
|
-
*
|
|
1190
|
-
* @return {boolean} Updated state.
|
|
1191
|
-
*/
|
|
1192
|
-
export function isCaretWithinFormattedText( state = false, action ) {
|
|
1193
|
-
switch ( action.type ) {
|
|
1194
|
-
case 'ENTER_FORMATTED_TEXT':
|
|
1195
|
-
return true;
|
|
1196
|
-
|
|
1197
|
-
case 'EXIT_FORMATTED_TEXT':
|
|
1198
|
-
return false;
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
|
-
return state;
|
|
1202
|
-
}
|
|
1203
|
-
|
|
1204
1184
|
/**
|
|
1205
1185
|
* Internal helper reducer for selectionStart and selectionEnd. Can hold a block
|
|
1206
1186
|
* selection, represented by an object with property clientId.
|
|
@@ -1765,7 +1745,6 @@ export default combineReducers( {
|
|
|
1765
1745
|
blocks,
|
|
1766
1746
|
isTyping,
|
|
1767
1747
|
draggedBlocks,
|
|
1768
|
-
isCaretWithinFormattedText,
|
|
1769
1748
|
selection,
|
|
1770
1749
|
isMultiSelecting,
|
|
1771
1750
|
isSelectionEnabled,
|