Parsed: 129377

function get_default_block_editor_settings() {
  // Media settings.

  // wp_max_upload_size() can be expensive, so only call it when relevant for the current user.
  $max_upload_size = 0;
  if ( current_user_can( 'upload_files' ) ) {
    $max_upload_size = wp_max_upload_size();
    if ( ! $max_upload_size ) {
      $max_upload_size = 0;
    }
  }

  
/** This filter is documented in wp-admin/includes/media.php */
  $image_size_names = apply_filters(
    'image_size_names_choose',
    array(
      'thumbnail' => __( 'Thumbnail' ),
      'medium'    => __( 'Medium' ),
      'large'     => __( 'Large' ),
      'full'      => __( 'Full Size' ),
    )
  );

  $available_image_sizes = array();
  foreach ( $image_size_names as $image_size_slug => $image_size_name ) {
    $available_image_sizes[] = array(
      'slug' => $image_size_slug,
      'name' => $image_size_name,
    );
  }

  $default_size       = get_option( 'image_default_size', 'large' );
  $image_default_size = in_array( $default_size, array_keys( $image_size_names ), true ) ? $default_size : 'large';

  $image_dimensions = array();
  $all_sizes        = wp_get_registered_image_subsizes();
  foreach ( $available_image_sizes as $size ) {
    $key = $size['slug'];
    if ( isset( $all_sizes[ $key ] ) ) {
      $image_dimensions[ $key ] = $all_sizes[ $key ];
    }
  }

  // These styles are used if the "no theme styles" options is triggered or on
  // themes without their own editor styles.
  $default_editor_styles_file = ABSPATH . WPINC . '/css/dist/block-editor/default-editor-styles.css';

  static $default_editor_styles_file_contents = false;
  if ( ! $default_editor_styles_file_contents && file_exists( $default_editor_styles_file ) ) {
    $default_editor_styles_file_contents = file_get_contents( $default_editor_styles_file );
  }

  $default_editor_styles = array();
  if ( $default_editor_styles_file_contents ) {
    $default_editor_styles = array(
      array( 'css' => $default_editor_styles_file_contents ),
    );
  }

  $editor_settings = array(
    'alignWide'                        => get_theme_support( 'align-wide' ),
    'allowedBlockTypes'                => true,
    'allowedMimeTypes'                 => get_allowed_mime_types(),
    'defaultEditorStyles'              => $default_editor_styles,
    'blockCategories'                  => get_default_block_categories(),
    'disableCustomColors'              => get_theme_support( 'disable-custom-colors' ),
    'disableCustomFontSizes'           => get_theme_support( 'disable-custom-font-sizes' ),
    'disableCustomGradients'           => get_theme_support( 'disable-custom-gradients' ),
    'disableLayoutStyles'              => get_theme_support( 'disable-layout-styles' ),
    'enableCustomLineHeight'           => get_theme_support( 'custom-line-height' ),
    'enableCustomSpacing'              => get_theme_support( 'custom-spacing' ),
    'enableCustomUnits'                => get_theme_support( 'custom-units' ),
    'isRTL'                            => is_rtl(),
    'imageDefaultSize'                 => $image_default_size,
    'imageDimensions'                  => $image_dimensions,
    'imageEditing'                     => true,
    'imageSizes'                       => $available_image_sizes,
    'maxUploadFileSize'                => $max_upload_size,
    // The following flag is required to enable the new Gallery block format on the mobile apps in 5.9.
    '__unstableGalleryWithImageBlocks' => true,
  );

  // Theme settings.
  $color_palette = current( (array) get_theme_support( 'editor-color-palette' ) );
  if ( false !== $color_palette ) {
    $editor_settings['colors'] = $color_palette;
  }

  $font_sizes = current( (array) get_theme_support( 'editor-font-sizes' ) );
  if ( false !== $font_sizes ) {
    $editor_settings['fontSizes'] = $font_sizes;
  }

  $gradient_presets = current( (array) get_theme_support( 'editor-gradient-presets' ) );
  if ( false !== $gradient_presets ) {
    $editor_settings['gradients'] = $gradient_presets;
  }

  return $editor_settings;
}