render_block_data` instead.' ) ); } $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $parsed_block['blockName'] ); $element_block_styles = isset( $parsed_block['attrs']['style']['elements'] ) ? $parsed_block['attrs']['style']['elements'] : null; if ( ! $element_block_styles ) { return $parsed_block; } $skip_link_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'link' ); $skip_heading_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'heading' ); $skip_button_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'button' ); $skips_all_element_color_serialization = $skip_link_color_serialization && $skip_heading_color_serialization && $skip_button_color_serialization; if ( $skips_all_element_color_serialization ) { return $parsed_block; } $options = array( 'button' => array( 'skip' => $skip_button_color_serialization ), 'link' => array( 'skip' => $skip_link_color_serialization ), 'heading' => array( 'skip' => $skip_heading_color_serialization ), ); if ( ! wp_should_add_elements_class_name( $parsed_block, $options ) ) { return $parsed_block; } $class_name = wp_get_elements_class_name( $parsed_block ); $updated_class_name = isset( $parsed_block['attrs']['className'] ) ? $parsed_block['attrs']['className'] . " $class_name" : $class_name; _wp_array_set( $parsed_block, array( 'attrs', 'className' ), $updated_class_name ); // Generate element styles based on selector and store in style engine for enqueuing. $element_types = array( 'button' => array( 'selector' => ".$class_name .wp-element-button, .$class_name .wp-block-button__link", 'skip' => $skip_button_color_serialization, ), 'link' => array( 'selector' => ".$class_name a:where(:not(.wp-element-button))", 'hover_selector' => ".$class_name a:where(:not(.wp-element-button)):hover", 'skip' => $skip_link_color_serialization, ), 'heading' => array( 'selector' => ".$class_name h1, .$class_name h2, .$class_name h3, .$class_name h4, .$class_name h5, .$class_name h6", 'skip' => $skip_heading_color_serialization, 'elements' => array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ), ), ); foreach ( $element_types as $element_type => $element_config ) { if ( $element_config['skip'] ) { continue; } $element_style_object = isset( $element_block_styles[ $element_type ] ) ? $element_block_styles[ $element_type ] : null; // Process primary element type styles. if ( $element_style_object ) { wp_style_engine_get_styles( $element_style_object, array( 'selector' => $element_config['selector'], 'context' => 'block-supports', ) ); if ( isset( $element_style_object[':hover'] ) ) { wp_style_engine_get_styles( $element_style_object[':hover'], array( 'selector' => $element_config['hover_selector'], 'context' => 'block-supports', ) ); } } // Process related elements e.g. h1-h6 for headings. if ( isset( $element_config['elements'] ) ) { foreach ( $element_config['elements'] as $element ) { $element_style_object = isset( $element_block_styles[ $element ] ) ? $element_block_styles[ $element ] : null; if ( $element_style_object ) { wp_style_engine_get_styles( $element_style_object, array( 'selector' => ".$class_name $element", 'context' => 'block-supports', ) ); } } } } return $parsed_block; } /** * Ensure the elements block support class name generated, and added to * block attributes, in the `render_block_data` filter gets applied to the * block's markup. * * @see wp_render_elements_support_styles * @since 6.6.0 * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_render_elements_class_name( $block_content, $block ) { $class_string = $block['attrs']['className'] ?? ''; preg_match( '/\bwp-elements-\S+\b/', $class_string, $matches ); if ( empty( $matches ) ) { return $block_content; } $tags = new WP_HTML_Tag_Processor( $block_content ); if ( $tags->next_tag() ) { $tags->add_class( $matches[0] ); } return $tags->get_updated_html(); } add_filter( 'render_block', 'wp_render_elements_class_name', 10, 2 ); add_filter( 'render_block_data', 'wp_render_elements_support_styles', 10, 1 ); Deník N: Ambiciózní štika mezi kapry. Nová ministryně umí smažit palačinky i hrát mocenské partie – Eva Decroix
14. června 2025

Deník N: Ambiciózní štika mezi kapry. Nová ministryně umí smažit palačinky i hrát mocenské partie

(Deník N) Právnička Eva Decroix se dostala před čtyřmi lety do Sněmovny s malými politickými zkušenostmi, ale s velkými ambicemi a s citem pro to, s kým má být zadobře a jakého pro voliče atraktivního tématu se chopit. To sice vedlo k tomu, že část občanských demokratů, kteří v ní viděli liberální hlas, mohla být zklamaná, ale současně jí to nyní pomohlo do vlády. Představujeme novou ministryni spravedlnosti.

Když se premiér Petr Fiala rozhodoval, koho vybere do čela ministerstva spravedlnosti, padla jeho volba prakticky hned na místopředsedkyni poslaneckého klubu Evu Decroix. Ta si to moc dlouho nerozmýšlela.

Myslím, že by bylo zbabělé říci ne,“ podotkla sama poslankyně krátce poté, co nabídku přijala.

Třiačtyřicetiletá Decroix přichází do čela rezortu ve chvíli, kdy ODS potřebuje obnovit důvěru veřejnosti po bitcoinovém skandálu, kvůli kterému rezignoval její stranický kolega Pavel Blažek.

Předseda vlády si od ní slibuje, že bude na ministerstvu před podzimními sněmovními volbami transparentním hlasem koalice Spolu. „Paní ministryně zadá nezávislý audit a zavede pravidelnou a otevřenou komunikaci o celém případu,“ prohlásil během jejího jmenování do funkce Fiala.

Formace Spolu, kterou do voleb vede jako lídr, je kvůli případu ve složité situaci a hrozí jí pád preferencí. Proto šéf ODS potřebuje v rezortu spravedlnosti někoho, kdo politické důsledky kauzy alespoň zmírní.

Vládní angažmá tak bude pro Decroix do značné míry testem. Citlivá bitcoinová aféra její vzestup buď zastaví, nebo postrčí dál.

Celý článek na: Ambiciózní štika mezi kapry. Nová ministryně umí smažit palačinky i hrát mocenské partie