PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta3
Elementor Website Builder – more than just a page builder v4.3.0-beta3
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 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 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.0-beta3, at modules/mcp/abilities/utils/element-default-styles-builder.php

60 lines 1.6 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: widget base_styles first, kit site-wide default for the
19 * element's rendered tag second.
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 {
29 $renderer = $renderer ?? Styles_Renderer::make( Plugin::$instance->breakpoints->get_breakpoints_config() );
30
31 $base_css = ! empty( $widget_base_style_defs )
32 ? $renderer->render( array_values( $widget_base_style_defs ) )
33 : '';
34
35 $default_css = self::render_kit_default( $tag, $repository, $renderer );
36
37 return trim( $base_css . "\n" . $default_css );
38 }
39
40 public static function render_kit_default(
41 ?string $tag,
42 ?Default_Styles_Repository $repository,
43 ?Styles_Renderer $renderer = null
44 ): string {
45 if ( null === $tag || null === $repository ) {
46 return '';
47 }
48
49 $item = $repository->get( $tag );
50
51 if ( ! is_array( $item ) ) {
52 return '';
53 }
54
55 $renderer = $renderer ?? Styles_Renderer::make( Plugin::$instance->breakpoints->get_breakpoints_config() );
56
57 return $renderer->render( [ $item ] );
58 }
59 }
60