Make WordPress Core


Ignore:
Timestamp:
09/14/2022 06:42:04 PM (21 months ago)
Author:
hellofromTonya
Message:

Editor: Backport foundation for Layout block support refactor (part 1).

Backports the following changes from the Gutenberg repository:

  • [WordPress/gutenberg/40875 gutenberg/40875] Layout: Use semantic classnames, centralize layout definitions, reduce duplication, and fix blockGap in theme.json
  • [WordPress/gutenberg/42544 gutenberg/42544] Layout: Add a disable-layout-styles theme supports flag to opt out of all layout styles gutenberg/42544
  • [WordPress/gutenberg/42087 gutenberg/42087] Theme.json: Add block support feature level selectors for blocks gutenberg/42087
  • [WordPress/gutenberg/43792 gutenberg/43792] Global Styles: Split root layout rules into a different function gutenberg/43792
  • [WordPress/gutenberg/42544 gutenberg/42544] Layout: Add a disable-layout-styles theme supports flag to opt out of all layout styles gutenberg/42544
  • [WordPress/gutenberg/42665 gutenberg/42665] Layout: Reduce specificity of fallback blockGap styles gutenberg/42665
  • [WordPress/gutenberg/42085 gutenberg/42085] Core CSS support for root padding and alignfull blocks gutenberg/42085

Notes:

  • It doesn't entirely port over PR 40875 — the remaining PHP changes for that PR will be explored in a separate PR targeting layout.php.
  • [54159] was reverted in [54160] due to PHPUnit test failures for tests added by the commit. Later, tests passed when applied on top of trunk. There were various outages today of upstream wp-env dependencies, which likely were the root cause of the earlier failures. For historical tracking and to make sure, recommitting [54159] but instead on top of current trunk. See PR 3205 for more details.
  • Giving additional props for those who did a deep dive investigation into the failed tests.

Follow-up to [54160], [54159].

Props andrewserong, aaronrobertshaw, isabel_brison, bernhard-reiter, hellofromTonya.
See #56467.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/block-editor.php

    r54160 r54162  
    210210        'disableCustomFontSizes'           => get_theme_support( 'disable-custom-font-sizes' ),
    211211        'disableCustomGradients'           => get_theme_support( 'disable-custom-gradients' ),
     212        'disableLayoutStyles'              => get_theme_support( 'disable-layout-styles' ),
    212213        'enableCustomLineHeight'           => get_theme_support( 'custom-line-height' ),
    213214        'enableCustomSpacing'              => get_theme_support( 'custom-spacing' ),
     
    418419            $global_styles[]      = $block_classes;
    419420        }
     421    } else {
     422        // If there is no `theme.json` file, ensure base layout styles are still available.
     423        $block_classes = array(
     424            'css'            => 'base-layout-styles',
     425            '__unstableType' => 'base-layout',
     426            'isGlobalStyles' => true,
     427        );
     428        $actual_css    = wp_get_global_stylesheet( array( $block_classes['css'] ) );
     429        if ( '' !== $actual_css ) {
     430            $block_classes['css'] = $actual_css;
     431            $global_styles[]  = $block_classes;
     432        }
    420433    }
    421434
     
    475488        unset( $editor_settings['__experimentalFeatures']['spacing']['padding'] );
    476489    }
     490    if ( isset( $editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'] ) ) {
     491        $editor_settings['disableCustomSpacingSizes'] = ! $editor_ettings['__experimentalFeatures']['spacing']['customSpacingSize'];
     492        unset( $editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'] );
     493    }
     494
     495    if ( isset( $editor_settings['__experimentalFeatures']['spacing']['spacingSizes'] ) ) {
     496        $spacing_sizes_by_origin  = $editor_settings['__experimentalFeatures']['spacing']['spacingSizes'];
     497        $editor_settings['spacingSizes'] = isset( $spacing_sizes_by_origin['custom'] ) ?
     498            $spacing_sizes_by_origin['custom'] : (
     499                isset( $spacing_sizes_by_origin['theme'] ) ?
     500                    $spacing_sizes_by_origin['theme'] :
     501                    $spacing_sizes_by_origin['default']
     502            );
     503    }
    477504
    478505    $editor_settings['__unstableResolvedAssets']         = _wp_get_iframed_editor_assets();
    479506    $editor_settings['localAutosaveInterval']            = 15;
     507    $editor_settings['disableLayoutStyles']              = current_theme_supports( 'disable-layout-styles' );
    480508    $editor_settings['__experimentalDiscussionSettings'] = array(
    481509        'commentOrder'         => get_option( 'comment_order' ),
Note: See TracChangeset for help on using the changeset viewer.