mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-09-22 00:40:20 +00:00
Editor: Update WordPress packages for 6.0 RC 4
Included cherry-picked commits from the Gutenberg plugin that fix bugs discovered after WordPress 6.0 RC 3. Props zieladam. See #55567. git-svn-id: https://develop.svn.wordpress.org/trunk@53420 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -43,7 +43,7 @@ function wp_register_layout_support( $block_type ) {
|
||||
* @param boolean $should_skip_gap_serialization Whether to skip applying the user-defined value set in the editor.
|
||||
* @return string CSS style.
|
||||
*/
|
||||
function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false, $gap_value = null, $should_skip_gap_serialization = false ) {
|
||||
function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false, $gap_value = null, $should_skip_gap_serialization = false, $fallback_gap_value = '0.5em' ) {
|
||||
$layout_type = isset( $layout['type'] ) ? $layout['type'] : 'default';
|
||||
|
||||
$style = '';
|
||||
@@ -102,14 +102,14 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
|
||||
$style .= 'display: flex;';
|
||||
if ( $has_block_gap_support ) {
|
||||
if ( is_array( $gap_value ) ) {
|
||||
$gap_row = isset( $gap_value['top'] ) ? $gap_value['top'] : '0.5em';
|
||||
$gap_column = isset( $gap_value['left'] ) ? $gap_value['left'] : '0.5em';
|
||||
$gap_row = isset( $gap_value['top'] ) ? $gap_value['top'] : $fallback_gap_value;
|
||||
$gap_column = isset( $gap_value['left'] ) ? $gap_value['left'] : $fallback_gap_value;
|
||||
$gap_value = $gap_row === $gap_column ? $gap_row : $gap_row . ' ' . $gap_column;
|
||||
}
|
||||
$gap_style = $gap_value && ! $should_skip_gap_serialization ? $gap_value : 'var( --wp--style--block-gap, 0.5em )';
|
||||
$gap_style = $gap_value && ! $should_skip_gap_serialization ? $gap_value : "var( --wp--style--block-gap, $fallback_gap_value )";
|
||||
$style .= "gap: $gap_style;";
|
||||
} else {
|
||||
$style .= 'gap: 0.5em;';
|
||||
$style .= "gap: $fallback_gap_value;";
|
||||
}
|
||||
|
||||
$style .= "flex-wrap: $flex_wrap;";
|
||||
@@ -182,10 +182,12 @@ function wp_render_layout_support_flag( $block_content, $block ) {
|
||||
$gap_value = $gap_value && preg_match( '%[\\\(&=}]|/\*%', $gap_value ) ? null : $gap_value;
|
||||
}
|
||||
|
||||
$fallback_gap_value = _wp_array_get( $block_type->supports, array( 'spacing', 'blockGap', '__experimentalDefault' ), '0.5em' );
|
||||
|
||||
// If a block's block.json skips serialization for spacing or spacing.blockGap,
|
||||
// don't apply the user-defined value to the styles.
|
||||
$should_skip_gap_serialization = wp_should_skip_block_supports_serialization( $block_type, 'spacing', 'blockGap' );
|
||||
$style = wp_get_layout_style( ".$class_name", $used_layout, $has_block_gap_support, $gap_value, $should_skip_gap_serialization );
|
||||
$style = wp_get_layout_style( ".$class_name", $used_layout, $has_block_gap_support, $gap_value, $should_skip_gap_serialization, $fallback_gap_value );
|
||||
// This assumes the hook only applies to blocks with a single wrapper.
|
||||
// I think this is a reasonable limitation for that particular hook.
|
||||
$content = preg_replace(
|
||||
|
||||
@@ -28,7 +28,9 @@
|
||||
}
|
||||
},
|
||||
"spacing": {
|
||||
"blockGap": true,
|
||||
"blockGap": {
|
||||
"__experimentalDefault": "2em"
|
||||
},
|
||||
"margin": [ "top", "bottom" ],
|
||||
"padding": true,
|
||||
"__experimentalDefaultControls": {
|
||||
|
||||
@@ -48,7 +48,14 @@ function block_core_gallery_render( $attributes, $content ) {
|
||||
// Skip if gap value contains unsupported characters.
|
||||
// Regex for CSS value borrowed from `safecss_filter_attr`, and used here
|
||||
// because we only want to match against the value, not the CSS attribute.
|
||||
$gap = preg_match( '%[\\\(&=}]|/\*%', $gap ) ? null : $gap;
|
||||
if ( is_array( $gap ) ) {
|
||||
foreach ( $gap as $key => $value ) {
|
||||
$gap[ $key ] = $value && preg_match( '%[\\\(&=}]|/\*%', $value ) ? null : $value;
|
||||
}
|
||||
} else {
|
||||
$gap = $gap && preg_match( '%[\\\(&=}]|/\*%', $gap ) ? null : $gap;
|
||||
}
|
||||
|
||||
$class = wp_unique_id( 'wp-block-gallery-' );
|
||||
$content = preg_replace(
|
||||
'/' . preg_quote( 'class="', '/' ) . '/',
|
||||
@@ -56,10 +63,22 @@ function block_core_gallery_render( $attributes, $content ) {
|
||||
$content,
|
||||
1
|
||||
);
|
||||
|
||||
// --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default
|
||||
// gap on the gallery.
|
||||
$gap_value = $gap ? $gap : 'var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )';
|
||||
$style = '.' . $class . '{ --wp--style--unstable-gallery-gap: ' . $gap_value . '; gap: ' . $gap_value . '}';
|
||||
$fallback_gap = 'var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )';
|
||||
$gap_value = $gap ? $gap : $fallback_gap;
|
||||
$gap_column = $gap_value;
|
||||
|
||||
if ( is_array( $gap_value ) ) {
|
||||
$gap_row = isset( $gap_value['top'] ) ? $gap_value['top'] : $fallback_gap;
|
||||
$gap_column = isset( $gap_value['left'] ) ? $gap_value['left'] : $fallback_gap;
|
||||
$gap_value = $gap_row === $gap_column ? $gap_row : $gap_row . ' ' . $gap_column;
|
||||
}
|
||||
|
||||
// Set the CSS variable to the column value, and the `gap` property to the combined gap value.
|
||||
$style = '.' . $class . '{ --wp--style--unstable-gallery-gap: ' . $gap_column . '; gap: ' . $gap_value . '}';
|
||||
|
||||
// Ideally styles should be loaded in the head, but blocks may be parsed
|
||||
// after that, so loading in the footer for now.
|
||||
// See https://core.trac.wordpress.org/ticket/53494.
|
||||
|
||||
Reference in New Issue
Block a user