PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.4
Elementor Website Builder – more than just a page builder v4.3.4
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
elementor / modules / mcp / abilities / utils / element-default-styles-builder.php

element-default-styles-builder.php in Elementor Website Builder – more than just a page builder 4.3.4, at modules/mcp/abilities/utils/element-default-styles-builder.php

67 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\Mcp\Abilities\Utils;
4
5 use Elementor\Modules\AtomicWidgets\Styles\Styles_Renderer;
6 use Elementor\Modules\DefaultStyles\Default_Styles_Repository;
7 use Elementor\Plugin;
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 /**
14 * Renders the effective default-style CSS that the browser would apply to a V4 atomic
15 * element before any inline/global class overrides.
16 *
17 * Each layer is rendered via Styles_Renderer (same pipeline as frontend enqueue), then
18 * concatenated in cascade order: the `.e-con` shell of atomic elements first, widget
19 * base_styles second, kit site-wide default for the element's rendered tag last.
20 */
21 class Element_Default_Styles_Builder {
22
23 public static function render(
24 array $widget_base_style_defs,
25 ?string $tag,
26 ?Default_Styles_Repository $repository,
27 ?Styles_Renderer $renderer = null,
28 string $shell_css = ''
29 ): string {
30 $renderer = $renderer ?? Styles_Renderer::make( Plugin::$instance->breakpoints->get_breakpoints_config() );
31
32 $base_css = ! empty( $widget_base_style_defs )
33 ? $renderer->render( array_values( $widget_base_style_defs ) )
34 : '';
35
36 $default_css = self::render_kit_default( $tag, $repository, $renderer );
37
38 $layers = array_filter( [
39 $shell_css,
40 $base_css,
41 $default_css,
42 ] );
43
44 return trim( implode( "\n", $layers ) );
45 }
46
47 public static function render_kit_default(
48 ?string $tag,
49 ?Default_Styles_Repository $repository,
50 ?Styles_Renderer $renderer = null
51 ): string {
52 if ( null === $tag || null === $repository ) {
53 return '';
54 }
55
56 $item = $repository->get( $tag );
57
58 if ( ! is_array( $item ) ) {
59 return '';
60 }
61
62 $renderer = $renderer ?? Styles_Renderer::make( Plugin::$instance->breakpoints->get_breakpoints_config() );
63
64 return $renderer->render( [ $item ] );
65 }
66 }
67