Parsed: 131711

function wp_add_global_styles_for_blocks() {
  $tree        = WP_Theme_JSON_Resolver::get_merged_data();
  $block_nodes = $tree->get_styles_block_nodes();
  foreach ( $block_nodes as $metadata ) {
    $block_css = $tree->get_styles_for_block( $metadata );

    if ( ! wp_should_load_separate_core_block_assets() ) {
      wp_add_inline_style( 'global-styles', $block_css );
      continue;
    }

    $stylesheet_handle = 'global-styles';
    if ( isset( $metadata['name'] ) ) {
      /*
			 * These block styles are added on block_render.
			 * This hooks inline CSS to them so that they are loaded conditionally
			 * based on whether or not the block is used on the page.
			 */
      if ( str_starts_with( $metadata['name'], 'core/' ) ) {
        $block_name        = str_replace( 'core/', '', $metadata['name'] );
        $stylesheet_handle = 'wp-block-' . $block_name;
      }
      wp_add_inline_style( $stylesheet_handle, $block_css );
    }

    // The likes of block element styles from theme.json do not have  $metadata['name'] set.
    if ( ! isset( $metadata['name'] ) && ! empty( $metadata['path'] ) ) {
      $result = array_values(
        array_filter(
          $metadata['path'],
          function ( $item ) {
            if ( strpos( $item, 'core/' ) !== false ) {
              return true;
            }
            return false;
          }
        )
      );
      if ( isset( $result[0] ) ) {
        if ( str_starts_with( $result[0], 'core/' ) ) {
          $block_name        = str_replace( 'core/', '', $result[0] );
          $stylesheet_handle = 'wp-block-' . $block_name;
        }
        wp_add_inline_style( $stylesheet_handle, $block_css );
      }
    }
  }
}