parsed_block['roosterTabs'] ?? AIEO_Engine_Blocks::tabs_state( (array) $block->parsed_block ) ); if ( empty( $state['tabs'] ) ) { return; } $list = ''; foreach ( $state['tabs'] as $n => $tab ) { $on = 0 === $n; $glyph = '' !== $tab['icon'] && 'none' !== $tab['icon'] && function_exists( 'rooster_icon' ) ? rooster_icon( $tab['icon'], [ 'width' => 18, 'height' => 18, 'class' => 'rooster-tabs__icon' ] ) : ''; $tone = AIEO_Engine_Blocks::tone_classes( (string) $tab['tone'], true ); $list .= '' . $glyph . esc_html( (string) $tab['label'] ) . ''; } $label = trim( (string) ( $attributes['label'] ?? '' ) ); $heading = trim( (string) ( $attributes['heading'] ?? '' ) ); $level = in_array( (int) ( $attributes['headingLevel'] ?? 2 ), [ 2, 3, 4 ], true ) ? (int) $attributes['headingLevel'] : 2; $classes = 'rooster-tabs' . ( 'outline' === ( $attributes['variant'] ?? '' ) ? ' is-variant-outline' : '' ) . ( ! empty( $attributes['even'] ) ? ' is-even' : '' ); $name = '' === $label && '' !== $heading ? ' aria-labelledby="' . esc_attr( $state['id'] . '-heading' ) . '"' : ' aria-label="' . esc_attr( '' !== $label ? $label : __( 'Sections', 'ai-eshop-optimizer' ) ) . '"'; $tablist = '
' . $list . '
'; if ( '' !== $heading ) { $tablist = '
' . esc_html( $heading ) . '' . $tablist . '
'; } $library = [ 'block' => 'tabs', 'class' => AIEO_Engine_Blocks::tone_classes( AIEO_Engine_Blocks::tone( (string) ( $attributes['tone'] ?? '' ) ), true ) ]; $wrapper = AIEO_Engine_Blocks::wrapper( $library, [ 'class' => $classes, 'id' => (string) $state['id'] ] ); AIEO_Engine_Blocks::out( '
' . $tablist ); echo $content; AIEO_Engine_Blocks::out( '
' );