get_block_editor_settings

The timeline below displays how wordpress function get_block_editor_settings has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.4

/**
 * Returns the contextualized block editor settings for a selected editor context.
 *
 * @since 5.8.0
 *
 * @param array                   $custom_settings      Custom settings to use with the given editor type.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 *
 * @return array The contextualized block editor settings.
 */
function get_block_editor_settings(array $custom_settings, $block_editor_context)
{
    $editor_settings = array_merge(get_default_block_editor_settings(), array('allowedBlockTypes' => get_allowed_block_types($block_editor_context), 'blockCategories' => get_block_categories($block_editor_context)), $custom_settings);
    $global_styles = array();
    $presets = array(array('css' => 'variables', '__unstableType' => 'presets', 'isGlobalStyles' => true), array('css' => 'presets', '__unstableType' => 'presets', 'isGlobalStyles' => true));
    foreach ($presets as $preset_style) {
        $actual_css = wp_get_global_stylesheet(array($preset_style['css']));
        if ('' !== $actual_css) {
            $preset_style['css'] = $actual_css;
            $global_styles[] = $preset_style;
        }
    }
    if (wp_theme_has_theme_json()) {
        $block_classes = array('css' => 'styles', '__unstableType' => 'theme', 'isGlobalStyles' => true);
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $global_styles[] = $block_classes;
        }
        /*
         * Add the custom CSS as a separate stylesheet so any invalid CSS
         * entered by users does not break other global styles.
         */
        $global_styles[] = array('css' => wp_get_global_styles_custom_css(), '__unstableType' => 'user', 'isGlobalStyles' => true);
    } else {
        // If there is no `theme.json` file, ensure base layout styles are still available.
        $block_classes = array('css' => 'base-layout-styles', '__unstableType' => 'base-layout', 'isGlobalStyles' => true);
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $global_styles[] = $block_classes;
        }
    }
    $editor_settings['styles'] = array_merge($global_styles, get_block_editor_theme_styles());
    $editor_settings['__experimentalFeatures'] = wp_get_global_settings();
    // These settings may need to be updated based on data coming from theme.json sources.
    if (isset($editor_settings['__experimentalFeatures']['color']['palette'])) {
        $colors_by_origin = $editor_settings['__experimentalFeatures']['color']['palette'];
        $editor_settings['colors'] = isset($colors_by_origin['custom']) ? $colors_by_origin['custom'] : (isset($colors_by_origin['theme']) ? $colors_by_origin['theme'] : $colors_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['gradients'])) {
        $gradients_by_origin = $editor_settings['__experimentalFeatures']['color']['gradients'];
        $editor_settings['gradients'] = isset($gradients_by_origin['custom']) ? $gradients_by_origin['custom'] : (isset($gradients_by_origin['theme']) ? $gradients_by_origin['theme'] : $gradients_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['fontSizes'])) {
        $font_sizes_by_origin = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
        $editor_settings['fontSizes'] = isset($font_sizes_by_origin['custom']) ? $font_sizes_by_origin['custom'] : (isset($font_sizes_by_origin['theme']) ? $font_sizes_by_origin['theme'] : $font_sizes_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['custom'])) {
        $editor_settings['disableCustomColors'] = !$editor_settings['__experimentalFeatures']['color']['custom'];
        unset($editor_settings['__experimentalFeatures']['color']['custom']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['customGradient'])) {
        $editor_settings['disableCustomGradients'] = !$editor_settings['__experimentalFeatures']['color']['customGradient'];
        unset($editor_settings['__experimentalFeatures']['color']['customGradient']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customFontSize'])) {
        $editor_settings['disableCustomFontSizes'] = !$editor_settings['__experimentalFeatures']['typography']['customFontSize'];
        unset($editor_settings['__experimentalFeatures']['typography']['customFontSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['lineHeight'])) {
        $editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['lineHeight'];
        unset($editor_settings['__experimentalFeatures']['typography']['lineHeight']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['units'])) {
        $editor_settings['enableCustomUnits'] = $editor_settings['__experimentalFeatures']['spacing']['units'];
        unset($editor_settings['__experimentalFeatures']['spacing']['units']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['padding'])) {
        $editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['padding'];
        unset($editor_settings['__experimentalFeatures']['spacing']['padding']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'])) {
        $editor_settings['disableCustomSpacingSizes'] = !$editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'];
        unset($editor_settings['__experimentalFeatures']['spacing']['customSpacingSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['spacingSizes'])) {
        $spacing_sizes_by_origin = $editor_settings['__experimentalFeatures']['spacing']['spacingSizes'];
        $editor_settings['spacingSizes'] = isset($spacing_sizes_by_origin['custom']) ? $spacing_sizes_by_origin['custom'] : (isset($spacing_sizes_by_origin['theme']) ? $spacing_sizes_by_origin['theme'] : $spacing_sizes_by_origin['default']);
    }
    $editor_settings['__unstableResolvedAssets'] = _wp_get_iframed_editor_assets();
    $editor_settings['__unstableIsBlockBasedTheme'] = wp_is_block_theme();
    $editor_settings['localAutosaveInterval'] = 15;
    $editor_settings['disableLayoutStyles'] = current_theme_supports('disable-layout-styles');
    $editor_settings['__experimentalDiscussionSettings'] = array('commentOrder' => get_option('comment_order'), 'commentsPerPage' => get_option('comments_per_page'), 'defaultCommentsPage' => get_option('default_comments_page'), 'pageComments' => get_option('page_comments'), 'threadComments' => get_option('thread_comments'), 'threadCommentsDepth' => get_option('thread_comments_depth'), 'defaultCommentStatus' => get_option('default_comment_status'), 'avatarURL' => get_avatar_url('', array('size' => 96, 'force_default' => true, 'default' => get_option('avatar_default'))));
    $post_content_block_attributes = wp_get_post_content_block_attributes();
    if (isset($post_content_block_attributes)) {
        $editor_settings['postContentAttributes'] = $post_content_block_attributes;
    }
    /**
     * Filters the settings to pass to the block editor for all editor type.
     *
     * @since 5.8.0
     *
     * @param array                   $editor_settings      Default editor settings.
     * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
     */
    $editor_settings = apply_filters('block_editor_settings_all', $editor_settings, $block_editor_context);
    if (!empty($block_editor_context->post)) {
        $post = $block_editor_context->post;
        /**
         * Filters the settings to pass to the block editor.
         *
         * @since 5.0.0
         * @deprecated 5.8.0 Use the {@see 'block_editor_settings_all'} filter instead.
         *
         * @param array   $editor_settings Default editor settings.
         * @param WP_Post $post            Post being edited.
         */
        $editor_settings = apply_filters_deprecated('block_editor_settings', array($editor_settings, $post), '5.8.0', 'block_editor_settings_all');
    }
    return $editor_settings;
}

WordPress Version: 6.3

/**
 * Returns the contextualized block editor settings for a selected editor context.
 *
 * @since 5.8.0
 *
 * @param array                   $custom_settings      Custom settings to use with the given editor type.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 *
 * @return array The contextualized block editor settings.
 */
function get_block_editor_settings(array $custom_settings, $block_editor_context)
{
    $editor_settings = array_merge(get_default_block_editor_settings(), array('allowedBlockTypes' => get_allowed_block_types($block_editor_context), 'blockCategories' => get_block_categories($block_editor_context)), $custom_settings);
    $global_styles = array();
    $presets = array(array('css' => 'variables', '__unstableType' => 'presets', 'isGlobalStyles' => true), array('css' => 'presets', '__unstableType' => 'presets', 'isGlobalStyles' => true));
    foreach ($presets as $preset_style) {
        $actual_css = wp_get_global_stylesheet(array($preset_style['css']));
        if ('' !== $actual_css) {
            $preset_style['css'] = $actual_css;
            $global_styles[] = $preset_style;
        }
    }
    if (wp_theme_has_theme_json()) {
        $block_classes = array('css' => 'styles', '__unstableType' => 'theme', 'isGlobalStyles' => true);
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $global_styles[] = $block_classes;
        }
        /*
         * Add the custom CSS as a separate stylesheet so any invalid CSS
         * entered by users does not break other global styles.
         */
        $global_styles[] = array('css' => wp_get_global_styles_custom_css(), '__unstableType' => 'user', 'isGlobalStyles' => true);
    } else {
        // If there is no `theme.json` file, ensure base layout styles are still available.
        $block_classes = array('css' => 'base-layout-styles', '__unstableType' => 'base-layout', 'isGlobalStyles' => true);
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $global_styles[] = $block_classes;
        }
    }
    $editor_settings['styles'] = array_merge($global_styles, get_block_editor_theme_styles());
    $editor_settings['__experimentalFeatures'] = wp_get_global_settings();
    // These settings may need to be updated based on data coming from theme.json sources.
    if (isset($editor_settings['__experimentalFeatures']['color']['palette'])) {
        $colors_by_origin = $editor_settings['__experimentalFeatures']['color']['palette'];
        $editor_settings['colors'] = isset($colors_by_origin['custom']) ? $colors_by_origin['custom'] : (isset($colors_by_origin['theme']) ? $colors_by_origin['theme'] : $colors_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['gradients'])) {
        $gradients_by_origin = $editor_settings['__experimentalFeatures']['color']['gradients'];
        $editor_settings['gradients'] = isset($gradients_by_origin['custom']) ? $gradients_by_origin['custom'] : (isset($gradients_by_origin['theme']) ? $gradients_by_origin['theme'] : $gradients_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['fontSizes'])) {
        $font_sizes_by_origin = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
        $editor_settings['fontSizes'] = isset($font_sizes_by_origin['custom']) ? $font_sizes_by_origin['custom'] : (isset($font_sizes_by_origin['theme']) ? $font_sizes_by_origin['theme'] : $font_sizes_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['custom'])) {
        $editor_settings['disableCustomColors'] = !$editor_settings['__experimentalFeatures']['color']['custom'];
        unset($editor_settings['__experimentalFeatures']['color']['custom']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['customGradient'])) {
        $editor_settings['disableCustomGradients'] = !$editor_settings['__experimentalFeatures']['color']['customGradient'];
        unset($editor_settings['__experimentalFeatures']['color']['customGradient']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customFontSize'])) {
        $editor_settings['disableCustomFontSizes'] = !$editor_settings['__experimentalFeatures']['typography']['customFontSize'];
        unset($editor_settings['__experimentalFeatures']['typography']['customFontSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['lineHeight'])) {
        $editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['lineHeight'];
        unset($editor_settings['__experimentalFeatures']['typography']['lineHeight']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['units'])) {
        $editor_settings['enableCustomUnits'] = $editor_settings['__experimentalFeatures']['spacing']['units'];
        unset($editor_settings['__experimentalFeatures']['spacing']['units']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['padding'])) {
        $editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['padding'];
        unset($editor_settings['__experimentalFeatures']['spacing']['padding']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'])) {
        $editor_settings['disableCustomSpacingSizes'] = !$editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'];
        unset($editor_settings['__experimentalFeatures']['spacing']['customSpacingSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['spacingSizes'])) {
        $spacing_sizes_by_origin = $editor_settings['__experimentalFeatures']['spacing']['spacingSizes'];
        $editor_settings['spacingSizes'] = isset($spacing_sizes_by_origin['custom']) ? $spacing_sizes_by_origin['custom'] : (isset($spacing_sizes_by_origin['theme']) ? $spacing_sizes_by_origin['theme'] : $spacing_sizes_by_origin['default']);
    }
    $editor_settings['__unstableResolvedAssets'] = _wp_get_iframed_editor_assets();
    $editor_settings['__unstableIsBlockBasedTheme'] = wp_is_block_theme();
    $editor_settings['localAutosaveInterval'] = 15;
    $editor_settings['disableLayoutStyles'] = current_theme_supports('disable-layout-styles');
    $editor_settings['__experimentalDiscussionSettings'] = array('commentOrder' => get_option('comment_order'), 'commentsPerPage' => get_option('comments_per_page'), 'defaultCommentsPage' => get_option('default_comments_page'), 'pageComments' => get_option('page_comments'), 'threadComments' => get_option('thread_comments'), 'threadCommentsDepth' => get_option('thread_comments_depth'), 'defaultCommentStatus' => get_option('default_comment_status'), 'avatarURL' => get_avatar_url('', array('size' => 96, 'force_default' => true, 'default' => get_option('avatar_default'))));
    $post_content_block_attributes = wp_get_post_content_block_attributes();
    if (!empty($post_content_block_attributes)) {
        $editor_settings['postContentAttributes'] = $post_content_block_attributes;
    }
    /**
     * Filters the settings to pass to the block editor for all editor type.
     *
     * @since 5.8.0
     *
     * @param array                   $editor_settings      Default editor settings.
     * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
     */
    $editor_settings = apply_filters('block_editor_settings_all', $editor_settings, $block_editor_context);
    if (!empty($block_editor_context->post)) {
        $post = $block_editor_context->post;
        /**
         * Filters the settings to pass to the block editor.
         *
         * @since 5.0.0
         * @deprecated 5.8.0 Use the {@see 'block_editor_settings_all'} filter instead.
         *
         * @param array   $editor_settings Default editor settings.
         * @param WP_Post $post            Post being edited.
         */
        $editor_settings = apply_filters_deprecated('block_editor_settings', array($editor_settings, $post), '5.8.0', 'block_editor_settings_all');
    }
    return $editor_settings;
}

WordPress Version: 6.2

/**
 * Returns the contextualized block editor settings for a selected editor context.
 *
 * @since 5.8.0
 *
 * @param array                   $custom_settings      Custom settings to use with the given editor type.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 *
 * @return array The contextualized block editor settings.
 */
function get_block_editor_settings(array $custom_settings, $block_editor_context)
{
    $editor_settings = array_merge(get_default_block_editor_settings(), array('allowedBlockTypes' => get_allowed_block_types($block_editor_context), 'blockCategories' => get_block_categories($block_editor_context)), $custom_settings);
    $global_styles = array();
    $presets = array(array('css' => 'variables', '__unstableType' => 'presets', 'isGlobalStyles' => true), array('css' => 'presets', '__unstableType' => 'presets', 'isGlobalStyles' => true));
    foreach ($presets as $preset_style) {
        $actual_css = wp_get_global_stylesheet(array($preset_style['css']));
        if ('' !== $actual_css) {
            $preset_style['css'] = $actual_css;
            $global_styles[] = $preset_style;
        }
    }
    if (wp_theme_has_theme_json()) {
        $block_classes = array('css' => 'styles', '__unstableType' => 'theme', 'isGlobalStyles' => true);
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $global_styles[] = $block_classes;
        }
        /*
         * Add the custom CSS as a separate stylesheet so any invalid CSS
         * entered by users does not break other global styles.
         */
        $global_styles[] = array('css' => wp_get_global_styles_custom_css(), '__unstableType' => 'user', 'isGlobalStyles' => true);
    } else {
        // If there is no `theme.json` file, ensure base layout styles are still available.
        $block_classes = array('css' => 'base-layout-styles', '__unstableType' => 'base-layout', 'isGlobalStyles' => true);
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $global_styles[] = $block_classes;
        }
    }
    $editor_settings['styles'] = array_merge($global_styles, get_block_editor_theme_styles());
    $editor_settings['__experimentalFeatures'] = wp_get_global_settings();
    // These settings may need to be updated based on data coming from theme.json sources.
    if (isset($editor_settings['__experimentalFeatures']['color']['palette'])) {
        $colors_by_origin = $editor_settings['__experimentalFeatures']['color']['palette'];
        $editor_settings['colors'] = isset($colors_by_origin['custom']) ? $colors_by_origin['custom'] : (isset($colors_by_origin['theme']) ? $colors_by_origin['theme'] : $colors_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['gradients'])) {
        $gradients_by_origin = $editor_settings['__experimentalFeatures']['color']['gradients'];
        $editor_settings['gradients'] = isset($gradients_by_origin['custom']) ? $gradients_by_origin['custom'] : (isset($gradients_by_origin['theme']) ? $gradients_by_origin['theme'] : $gradients_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['fontSizes'])) {
        $font_sizes_by_origin = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
        $editor_settings['fontSizes'] = isset($font_sizes_by_origin['custom']) ? $font_sizes_by_origin['custom'] : (isset($font_sizes_by_origin['theme']) ? $font_sizes_by_origin['theme'] : $font_sizes_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['custom'])) {
        $editor_settings['disableCustomColors'] = !$editor_settings['__experimentalFeatures']['color']['custom'];
        unset($editor_settings['__experimentalFeatures']['color']['custom']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['customGradient'])) {
        $editor_settings['disableCustomGradients'] = !$editor_settings['__experimentalFeatures']['color']['customGradient'];
        unset($editor_settings['__experimentalFeatures']['color']['customGradient']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customFontSize'])) {
        $editor_settings['disableCustomFontSizes'] = !$editor_settings['__experimentalFeatures']['typography']['customFontSize'];
        unset($editor_settings['__experimentalFeatures']['typography']['customFontSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['lineHeight'])) {
        $editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['lineHeight'];
        unset($editor_settings['__experimentalFeatures']['typography']['lineHeight']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['units'])) {
        $editor_settings['enableCustomUnits'] = $editor_settings['__experimentalFeatures']['spacing']['units'];
        unset($editor_settings['__experimentalFeatures']['spacing']['units']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['padding'])) {
        $editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['padding'];
        unset($editor_settings['__experimentalFeatures']['spacing']['padding']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'])) {
        $editor_settings['disableCustomSpacingSizes'] = !$editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'];
        unset($editor_settings['__experimentalFeatures']['spacing']['customSpacingSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['spacingSizes'])) {
        $spacing_sizes_by_origin = $editor_settings['__experimentalFeatures']['spacing']['spacingSizes'];
        $editor_settings['spacingSizes'] = isset($spacing_sizes_by_origin['custom']) ? $spacing_sizes_by_origin['custom'] : (isset($spacing_sizes_by_origin['theme']) ? $spacing_sizes_by_origin['theme'] : $spacing_sizes_by_origin['default']);
    }
    $editor_settings['__unstableResolvedAssets'] = _wp_get_iframed_editor_assets();
    $editor_settings['__unstableIsBlockBasedTheme'] = wp_is_block_theme();
    $editor_settings['localAutosaveInterval'] = 15;
    $editor_settings['disableLayoutStyles'] = current_theme_supports('disable-layout-styles');
    $editor_settings['__experimentalDiscussionSettings'] = array('commentOrder' => get_option('comment_order'), 'commentsPerPage' => get_option('comments_per_page'), 'defaultCommentsPage' => get_option('default_comments_page'), 'pageComments' => get_option('page_comments'), 'threadComments' => get_option('thread_comments'), 'threadCommentsDepth' => get_option('thread_comments_depth'), 'defaultCommentStatus' => get_option('default_comment_status'), 'avatarURL' => get_avatar_url('', array('size' => 96, 'force_default' => true, 'default' => get_option('avatar_default'))));
    /**
     * Filters the settings to pass to the block editor for all editor type.
     *
     * @since 5.8.0
     *
     * @param array                   $editor_settings      Default editor settings.
     * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
     */
    $editor_settings = apply_filters('block_editor_settings_all', $editor_settings, $block_editor_context);
    if (!empty($block_editor_context->post)) {
        $post = $block_editor_context->post;
        /**
         * Filters the settings to pass to the block editor.
         *
         * @since 5.0.0
         * @deprecated 5.8.0 Use the {@see 'block_editor_settings_all'} filter instead.
         *
         * @param array   $editor_settings Default editor settings.
         * @param WP_Post $post            Post being edited.
         */
        $editor_settings = apply_filters_deprecated('block_editor_settings', array($editor_settings, $post), '5.8.0', 'block_editor_settings_all');
    }
    return $editor_settings;
}

WordPress Version: 6.1

/**
 * Returns the contextualized block editor settings for a selected editor context.
 *
 * @since 5.8.0
 *
 * @param array                   $custom_settings      Custom settings to use with the given editor type.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 *
 * @return array The contextualized block editor settings.
 */
function get_block_editor_settings(array $custom_settings, $block_editor_context)
{
    $editor_settings = array_merge(get_default_block_editor_settings(), array('allowedBlockTypes' => get_allowed_block_types($block_editor_context), 'blockCategories' => get_block_categories($block_editor_context)), $custom_settings);
    $global_styles = array();
    $presets = array(array('css' => 'variables', '__unstableType' => 'presets', 'isGlobalStyles' => true), array('css' => 'presets', '__unstableType' => 'presets', 'isGlobalStyles' => true));
    foreach ($presets as $preset_style) {
        $actual_css = wp_get_global_stylesheet(array($preset_style['css']));
        if ('' !== $actual_css) {
            $preset_style['css'] = $actual_css;
            $global_styles[] = $preset_style;
        }
    }
    if (WP_Theme_JSON_Resolver::theme_has_support()) {
        $block_classes = array('css' => 'styles', '__unstableType' => 'theme', 'isGlobalStyles' => true);
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $global_styles[] = $block_classes;
        }
    } else {
        // If there is no `theme.json` file, ensure base layout styles are still available.
        $block_classes = array('css' => 'base-layout-styles', '__unstableType' => 'base-layout', 'isGlobalStyles' => true);
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $global_styles[] = $block_classes;
        }
    }
    $editor_settings['styles'] = array_merge($global_styles, get_block_editor_theme_styles());
    $editor_settings['__experimentalFeatures'] = wp_get_global_settings();
    // These settings may need to be updated based on data coming from theme.json sources.
    if (isset($editor_settings['__experimentalFeatures']['color']['palette'])) {
        $colors_by_origin = $editor_settings['__experimentalFeatures']['color']['palette'];
        $editor_settings['colors'] = isset($colors_by_origin['custom']) ? $colors_by_origin['custom'] : (isset($colors_by_origin['theme']) ? $colors_by_origin['theme'] : $colors_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['gradients'])) {
        $gradients_by_origin = $editor_settings['__experimentalFeatures']['color']['gradients'];
        $editor_settings['gradients'] = isset($gradients_by_origin['custom']) ? $gradients_by_origin['custom'] : (isset($gradients_by_origin['theme']) ? $gradients_by_origin['theme'] : $gradients_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['fontSizes'])) {
        $font_sizes_by_origin = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
        $editor_settings['fontSizes'] = isset($font_sizes_by_origin['custom']) ? $font_sizes_by_origin['custom'] : (isset($font_sizes_by_origin['theme']) ? $font_sizes_by_origin['theme'] : $font_sizes_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['custom'])) {
        $editor_settings['disableCustomColors'] = !$editor_settings['__experimentalFeatures']['color']['custom'];
        unset($editor_settings['__experimentalFeatures']['color']['custom']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['customGradient'])) {
        $editor_settings['disableCustomGradients'] = !$editor_settings['__experimentalFeatures']['color']['customGradient'];
        unset($editor_settings['__experimentalFeatures']['color']['customGradient']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customFontSize'])) {
        $editor_settings['disableCustomFontSizes'] = !$editor_settings['__experimentalFeatures']['typography']['customFontSize'];
        unset($editor_settings['__experimentalFeatures']['typography']['customFontSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['lineHeight'])) {
        $editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['lineHeight'];
        unset($editor_settings['__experimentalFeatures']['typography']['lineHeight']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['units'])) {
        $editor_settings['enableCustomUnits'] = $editor_settings['__experimentalFeatures']['spacing']['units'];
        unset($editor_settings['__experimentalFeatures']['spacing']['units']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['padding'])) {
        $editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['padding'];
        unset($editor_settings['__experimentalFeatures']['spacing']['padding']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'])) {
        $editor_settings['disableCustomSpacingSizes'] = !$editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'];
        unset($editor_settings['__experimentalFeatures']['spacing']['customSpacingSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['spacingSizes'])) {
        $spacing_sizes_by_origin = $editor_settings['__experimentalFeatures']['spacing']['spacingSizes'];
        $editor_settings['spacingSizes'] = isset($spacing_sizes_by_origin['custom']) ? $spacing_sizes_by_origin['custom'] : (isset($spacing_sizes_by_origin['theme']) ? $spacing_sizes_by_origin['theme'] : $spacing_sizes_by_origin['default']);
    }
    $editor_settings['__unstableResolvedAssets'] = _wp_get_iframed_editor_assets();
    $editor_settings['localAutosaveInterval'] = 15;
    $editor_settings['disableLayoutStyles'] = current_theme_supports('disable-layout-styles');
    $editor_settings['__experimentalDiscussionSettings'] = array('commentOrder' => get_option('comment_order'), 'commentsPerPage' => get_option('comments_per_page'), 'defaultCommentsPage' => get_option('default_comments_page'), 'pageComments' => get_option('page_comments'), 'threadComments' => get_option('thread_comments'), 'threadCommentsDepth' => get_option('thread_comments_depth'), 'defaultCommentStatus' => get_option('default_comment_status'), 'avatarURL' => get_avatar_url('', array('size' => 96, 'force_default' => true, 'default' => get_option('avatar_default'))));
    /**
     * Filters the settings to pass to the block editor for all editor type.
     *
     * @since 5.8.0
     *
     * @param array                   $editor_settings      Default editor settings.
     * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
     */
    $editor_settings = apply_filters('block_editor_settings_all', $editor_settings, $block_editor_context);
    if (!empty($block_editor_context->post)) {
        $post = $block_editor_context->post;
        /**
         * Filters the settings to pass to the block editor.
         *
         * @since 5.0.0
         * @deprecated 5.8.0 Use the {@see 'block_editor_settings_all'} filter instead.
         *
         * @param array   $editor_settings Default editor settings.
         * @param WP_Post $post            Post being edited.
         */
        $editor_settings = apply_filters_deprecated('block_editor_settings', array($editor_settings, $post), '5.8.0', 'block_editor_settings_all');
    }
    return $editor_settings;
}

WordPress Version: 9.1

/**
 * Returns the contextualized block editor settings for a selected editor context.
 *
 * @since 5.8.0
 *
 * @param array                   $custom_settings      Custom settings to use with the given editor type.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 *
 * @return array The contextualized block editor settings.
 */
function get_block_editor_settings(array $custom_settings, $block_editor_context)
{
    $editor_settings = array_merge(get_default_block_editor_settings(), array('allowedBlockTypes' => get_allowed_block_types($block_editor_context), 'blockCategories' => get_block_categories($block_editor_context)), $custom_settings);
    $global_styles = array();
    $presets = array(array('css' => 'variables', '__unstableType' => 'presets'), array('css' => 'presets', '__unstableType' => 'presets'));
    foreach ($presets as $preset_style) {
        $actual_css = wp_get_global_stylesheet(array($preset_style['css']));
        if ('' !== $actual_css) {
            $preset_style['css'] = $actual_css;
            $global_styles[] = $preset_style;
        }
    }
    if (WP_Theme_JSON_Resolver::theme_has_support()) {
        $block_classes = array('css' => 'styles', '__unstableType' => 'theme');
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $global_styles[] = $block_classes;
        }
    }
    $editor_settings['styles'] = array_merge($global_styles, get_block_editor_theme_styles());
    $editor_settings['__experimentalFeatures'] = wp_get_global_settings();
    // These settings may need to be updated based on data coming from theme.json sources.
    if (isset($editor_settings['__experimentalFeatures']['color']['palette'])) {
        $colors_by_origin = $editor_settings['__experimentalFeatures']['color']['palette'];
        $editor_settings['colors'] = isset($colors_by_origin['custom']) ? $colors_by_origin['custom'] : (isset($colors_by_origin['theme']) ? $colors_by_origin['theme'] : $colors_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['gradients'])) {
        $gradients_by_origin = $editor_settings['__experimentalFeatures']['color']['gradients'];
        $editor_settings['gradients'] = isset($gradients_by_origin['custom']) ? $gradients_by_origin['custom'] : (isset($gradients_by_origin['theme']) ? $gradients_by_origin['theme'] : $gradients_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['fontSizes'])) {
        $font_sizes_by_origin = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
        $editor_settings['fontSizes'] = isset($font_sizes_by_origin['custom']) ? $font_sizes_by_origin['custom'] : (isset($font_sizes_by_origin['theme']) ? $font_sizes_by_origin['theme'] : $font_sizes_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['custom'])) {
        $editor_settings['disableCustomColors'] = !$editor_settings['__experimentalFeatures']['color']['custom'];
        unset($editor_settings['__experimentalFeatures']['color']['custom']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['customGradient'])) {
        $editor_settings['disableCustomGradients'] = !$editor_settings['__experimentalFeatures']['color']['customGradient'];
        unset($editor_settings['__experimentalFeatures']['color']['customGradient']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customFontSize'])) {
        $editor_settings['disableCustomFontSizes'] = !$editor_settings['__experimentalFeatures']['typography']['customFontSize'];
        unset($editor_settings['__experimentalFeatures']['typography']['customFontSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['lineHeight'])) {
        $editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['lineHeight'];
        unset($editor_settings['__experimentalFeatures']['typography']['lineHeight']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['units'])) {
        $editor_settings['enableCustomUnits'] = $editor_settings['__experimentalFeatures']['spacing']['units'];
        unset($editor_settings['__experimentalFeatures']['spacing']['units']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['padding'])) {
        $editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['padding'];
        unset($editor_settings['__experimentalFeatures']['spacing']['padding']);
    }
    /**
     * Filters the settings to pass to the block editor for all editor type.
     *
     * @since 5.8.0
     *
     * @param array                   $editor_settings      Default editor settings.
     * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
     */
    $editor_settings = apply_filters('block_editor_settings_all', $editor_settings, $block_editor_context);
    if (!empty($block_editor_context->post)) {
        $post = $block_editor_context->post;
        /**
         * Filters the settings to pass to the block editor.
         *
         * @since 5.0.0
         * @deprecated 5.8.0 Use the {@see 'block_editor_settings_all'} filter instead.
         *
         * @param array   $editor_settings Default editor settings.
         * @param WP_Post $post            Post being edited.
         */
        $editor_settings = apply_filters_deprecated('block_editor_settings', array($editor_settings, $post), '5.8.0', 'block_editor_settings_all');
    }
    return $editor_settings;
}

WordPress Version: 5.9

/**
 * Returns the contextualized block editor settings for a selected editor context.
 *
 * @since 5.8.0
 *
 * @param array                   $custom_settings      Custom settings to use with the given editor type.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 *
 * @return array The contextualized block editor settings.
 */
function get_block_editor_settings(array $custom_settings, $block_editor_context)
{
    $editor_settings = array_merge(get_default_block_editor_settings(), array('allowedBlockTypes' => get_allowed_block_types($block_editor_context), 'blockCategories' => get_block_categories($block_editor_context)), $custom_settings);
    $presets = array(array('css' => 'variables', '__unstableType' => 'presets'), array('css' => 'presets', '__unstableType' => 'presets'));
    foreach ($presets as $preset_style) {
        $actual_css = wp_get_global_stylesheet(array($preset_style['css']));
        if ('' !== $actual_css) {
            $preset_style['css'] = $actual_css;
            $editor_settings['styles'][] = $preset_style;
        }
    }
    if (WP_Theme_JSON_Resolver::theme_has_support()) {
        $block_classes = array('css' => 'styles', '__unstableType' => 'theme');
        $actual_css = wp_get_global_stylesheet(array($block_classes['css']));
        if ('' !== $actual_css) {
            $block_classes['css'] = $actual_css;
            $editor_settings['styles'][] = $block_classes;
        }
    }
    $editor_settings['__experimentalFeatures'] = wp_get_global_settings();
    // These settings may need to be updated based on data coming from theme.json sources.
    if (isset($editor_settings['__experimentalFeatures']['color']['palette'])) {
        $colors_by_origin = $editor_settings['__experimentalFeatures']['color']['palette'];
        $editor_settings['colors'] = isset($colors_by_origin['custom']) ? $colors_by_origin['custom'] : (isset($colors_by_origin['theme']) ? $colors_by_origin['theme'] : $colors_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['gradients'])) {
        $gradients_by_origin = $editor_settings['__experimentalFeatures']['color']['gradients'];
        $editor_settings['gradients'] = isset($gradients_by_origin['custom']) ? $gradients_by_origin['custom'] : (isset($gradients_by_origin['theme']) ? $gradients_by_origin['theme'] : $gradients_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['fontSizes'])) {
        $font_sizes_by_origin = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
        $editor_settings['fontSizes'] = isset($font_sizes_by_origin['custom']) ? $font_sizes_by_origin['custom'] : (isset($font_sizes_by_origin['theme']) ? $font_sizes_by_origin['theme'] : $font_sizes_by_origin['default']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['custom'])) {
        $editor_settings['disableCustomColors'] = !$editor_settings['__experimentalFeatures']['color']['custom'];
        unset($editor_settings['__experimentalFeatures']['color']['custom']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['customGradient'])) {
        $editor_settings['disableCustomGradients'] = !$editor_settings['__experimentalFeatures']['color']['customGradient'];
        unset($editor_settings['__experimentalFeatures']['color']['customGradient']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customFontSize'])) {
        $editor_settings['disableCustomFontSizes'] = !$editor_settings['__experimentalFeatures']['typography']['customFontSize'];
        unset($editor_settings['__experimentalFeatures']['typography']['customFontSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['lineHeight'])) {
        $editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['lineHeight'];
        unset($editor_settings['__experimentalFeatures']['typography']['lineHeight']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['units'])) {
        $editor_settings['enableCustomUnits'] = $editor_settings['__experimentalFeatures']['spacing']['units'];
        unset($editor_settings['__experimentalFeatures']['spacing']['units']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['padding'])) {
        $editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['padding'];
        unset($editor_settings['__experimentalFeatures']['spacing']['padding']);
    }
    /**
     * Filters the settings to pass to the block editor for all editor type.
     *
     * @since 5.8.0
     *
     * @param array                   $editor_settings      Default editor settings.
     * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
     */
    $editor_settings = apply_filters('block_editor_settings_all', $editor_settings, $block_editor_context);
    if (!empty($block_editor_context->post)) {
        $post = $block_editor_context->post;
        /**
         * Filters the settings to pass to the block editor.
         *
         * @since 5.0.0
         * @deprecated 5.8.0 Use the {@see 'block_editor_settings_all'} filter instead.
         *
         * @param array   $editor_settings Default editor settings.
         * @param WP_Post $post            Post being edited.
         */
        $editor_settings = apply_filters_deprecated('block_editor_settings', array($editor_settings, $post), '5.8.0', 'block_editor_settings_all');
    }
    return $editor_settings;
}

WordPress Version: 8.1

/**
 * Returns the contextualized block editor settings for a selected editor context.
 *
 * @since 5.8.0
 *
 * @param array                   $custom_settings      Custom settings to use with the given editor type.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 *
 * @return array The contextualized block editor settings.
 */
function get_block_editor_settings(array $custom_settings, $block_editor_context)
{
    $editor_settings = array_merge(get_default_block_editor_settings(), array('allowedBlockTypes' => get_allowed_block_types($block_editor_context), 'blockCategories' => get_block_categories($block_editor_context)), $custom_settings);
    $theme_json = WP_Theme_JSON_Resolver::get_merged_data($editor_settings);
    if (WP_Theme_JSON_Resolver::theme_has_support()) {
        $editor_settings['styles'][] = array('css' => $theme_json->get_stylesheet('block_styles'), '__unstableType' => 'globalStyles');
        $editor_settings['styles'][] = array('css' => $theme_json->get_stylesheet('css_variables'), '__experimentalNoWrapper' => true, '__unstableType' => 'globalStyles');
    }
    $editor_settings['__experimentalFeatures'] = $theme_json->get_settings();
    // These settings may need to be updated based on data coming from theme.json sources.
    if (isset($editor_settings['__experimentalFeatures']['color']['palette'])) {
        $colors_by_origin = $editor_settings['__experimentalFeatures']['color']['palette'];
        $editor_settings['colors'] = isset($colors_by_origin['user']) ? $colors_by_origin['user'] : (isset($colors_by_origin['theme']) ? $colors_by_origin['theme'] : $colors_by_origin['core']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['gradients'])) {
        $gradients_by_origin = $editor_settings['__experimentalFeatures']['color']['gradients'];
        $editor_settings['gradients'] = isset($gradients_by_origin['user']) ? $gradients_by_origin['user'] : (isset($gradients_by_origin['theme']) ? $gradients_by_origin['theme'] : $gradients_by_origin['core']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['fontSizes'])) {
        $font_sizes_by_origin = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
        $editor_settings['fontSizes'] = isset($font_sizes_by_origin['user']) ? $font_sizes_by_origin['user'] : (isset($font_sizes_by_origin['theme']) ? $font_sizes_by_origin['theme'] : $font_sizes_by_origin['core']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['custom'])) {
        $editor_settings['disableCustomColors'] = !$editor_settings['__experimentalFeatures']['color']['custom'];
        unset($editor_settings['__experimentalFeatures']['color']['custom']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['customGradient'])) {
        $editor_settings['disableCustomGradients'] = !$editor_settings['__experimentalFeatures']['color']['customGradient'];
        unset($editor_settings['__experimentalFeatures']['color']['customGradient']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customFontSize'])) {
        $editor_settings['disableCustomFontSizes'] = !$editor_settings['__experimentalFeatures']['typography']['customFontSize'];
        unset($editor_settings['__experimentalFeatures']['typography']['customFontSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customLineHeight'])) {
        $editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['customLineHeight'];
        unset($editor_settings['__experimentalFeatures']['typography']['customLineHeight']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['units'])) {
        $editor_settings['enableCustomUnits'] = $editor_settings['__experimentalFeatures']['spacing']['units'];
        unset($editor_settings['__experimentalFeatures']['spacing']['units']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['customPadding'])) {
        $editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['customPadding'];
        unset($editor_settings['__experimentalFeatures']['spacing']['customPadding']);
    }
    /**
     * Filters the settings to pass to the block editor for all editor type.
     *
     * @since 5.8.0
     *
     * @param array                   $editor_settings      Default editor settings.
     * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
     */
    $editor_settings = apply_filters('block_editor_settings_all', $editor_settings, $block_editor_context);
    if (!empty($block_editor_context->post)) {
        $post = $block_editor_context->post;
        /**
         * Filters the settings to pass to the block editor.
         *
         * @since 5.0.0
         * @deprecated 5.8.0 Use the {@see 'block_editor_settings_all'} filter instead.
         *
         * @param array   $editor_settings Default editor settings.
         * @param WP_Post $post            Post being edited.
         */
        $editor_settings = apply_filters_deprecated('block_editor_settings', array($editor_settings, $post), '5.8.0', 'block_editor_settings_all');
    }
    return $editor_settings;
}

WordPress Version: 5.8

/**
 * Returns the contextualized block editor settings settings for a selected editor context.
 *
 * @since 5.8.0
 *
 * @param array                   $custom_settings      Custom settings to use with the given editor type.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 *
 * @return array The contextualized block editor settings.
 */
function get_block_editor_settings(array $custom_settings, $block_editor_context)
{
    $editor_settings = array_merge(get_default_block_editor_settings(), array('allowedBlockTypes' => get_allowed_block_types($block_editor_context), 'blockCategories' => get_block_categories($block_editor_context)), $custom_settings);
    $theme_json = WP_Theme_JSON_Resolver::get_merged_data($editor_settings);
    if (WP_Theme_JSON_Resolver::theme_has_support()) {
        $editor_settings['styles'][] = array('css' => $theme_json->get_stylesheet('block_styles'), '__unstableType' => 'globalStyles');
        $editor_settings['styles'][] = array('css' => $theme_json->get_stylesheet('css_variables'), '__experimentalNoWrapper' => true, '__unstableType' => 'globalStyles');
    }
    $editor_settings['__experimentalFeatures'] = $theme_json->get_settings();
    // These settings may need to be updated based on data coming from theme.json sources.
    if (isset($editor_settings['__experimentalFeatures']['color']['palette'])) {
        $colors_by_origin = $editor_settings['__experimentalFeatures']['color']['palette'];
        $editor_settings['colors'] = isset($colors_by_origin['user']) ? $colors_by_origin['user'] : (isset($colors_by_origin['theme']) ? $colors_by_origin['theme'] : $colors_by_origin['core']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['gradients'])) {
        $gradients_by_origin = $editor_settings['__experimentalFeatures']['color']['gradients'];
        $editor_settings['gradients'] = isset($gradients_by_origin['user']) ? $gradients_by_origin['user'] : (isset($gradients_by_origin['theme']) ? $gradients_by_origin['theme'] : $gradients_by_origin['core']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['fontSizes'])) {
        $font_sizes_by_origin = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
        $editor_settings['fontSizes'] = isset($font_sizes_by_origin['user']) ? $font_sizes_by_origin['user'] : (isset($font_sizes_by_origin['theme']) ? $font_sizes_by_origin['theme'] : $font_sizes_by_origin['core']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['custom'])) {
        $editor_settings['disableCustomColors'] = !$editor_settings['__experimentalFeatures']['color']['custom'];
        unset($editor_settings['__experimentalFeatures']['color']['custom']);
    }
    if (isset($editor_settings['__experimentalFeatures']['color']['customGradient'])) {
        $editor_settings['disableCustomGradients'] = !$editor_settings['__experimentalFeatures']['color']['customGradient'];
        unset($editor_settings['__experimentalFeatures']['color']['customGradient']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customFontSize'])) {
        $editor_settings['disableCustomFontSizes'] = !$editor_settings['__experimentalFeatures']['typography']['customFontSize'];
        unset($editor_settings['__experimentalFeatures']['typography']['customFontSize']);
    }
    if (isset($editor_settings['__experimentalFeatures']['typography']['customLineHeight'])) {
        $editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['customLineHeight'];
        unset($editor_settings['__experimentalFeatures']['typography']['customLineHeight']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['units'])) {
        $editor_settings['enableCustomUnits'] = $editor_settings['__experimentalFeatures']['spacing']['units'];
        unset($editor_settings['__experimentalFeatures']['spacing']['units']);
    }
    if (isset($editor_settings['__experimentalFeatures']['spacing']['customPadding'])) {
        $editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['customPadding'];
        unset($editor_settings['__experimentalFeatures']['spacing']['customPadding']);
    }
    /**
     * Filters the settings to pass to the block editor for all editor type.
     *
     * @since 5.8.0
     *
     * @param array                   $editor_settings      Default editor settings.
     * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
     */
    $editor_settings = apply_filters('block_editor_settings_all', $editor_settings, $block_editor_context);
    if (!empty($block_editor_context->post)) {
        $post = $block_editor_context->post;
        /**
         * Filters the settings to pass to the block editor.
         *
         * @since 5.0.0
         * @deprecated 5.8.0 Use the {@see 'block_editor_settings_all'} filter instead.
         *
         * @param array   $editor_settings Default editor settings.
         * @param WP_Post $post            Post being edited.
         */
        $editor_settings = apply_filters_deprecated('block_editor_settings', array($editor_settings, $post), '5.8.0', 'block_editor_settings_all');
    }
    return $editor_settings;
}