PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.0
Elementor Website Builder – more than just a page builder v4.0.0
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 4.0.7 All 451 releases
elementor / modules / design-system-sync / classes / stylesheet-manager.php

stylesheet-manager.php in Elementor Website Builder – more than just a page builder 4.0.0, at modules/design-system-sync/classes/stylesheet-manager.php

76 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\DesignSystemSync\Classes;
4
5 use Elementor\Core\Breakpoints\Manager as Breakpoints_Manager;
6 use Elementor\Core\Files\Base as Base_File;
7 use Elementor\Plugin;
8 use Elementor\Stylesheet;
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit;
12 }
13
14 class Stylesheet_Manager extends Base_File {
15 const FILE_NAME = 'design-system-sync.css';
16 const DEFAULT_FILES_DIR = 'design-system-sync/';
17 const META_KEY = '_elementor_design_system_sync_css_meta';
18
19 public function __construct() {
20 parent::__construct( self::FILE_NAME );
21 }
22
23 public function generate(): array {
24 $this->update();
25
26 return [
27 'url' => $this->get_url(),
28 'version' => $this->get_meta( 'time' ),
29 ];
30 }
31
32 public function enqueue(): void {
33 if ( ! file_exists( $this->get_path() ) ) {
34 $this->generate();
35 }
36
37 if ( ! file_exists( $this->get_path() ) ) {
38 return;
39 }
40
41 wp_enqueue_style(
42 'elementor-design-system-sync',
43 $this->get_url(),
44 [],
45 $this->get_meta( 'time' )
46 );
47 }
48
49 protected function parse_content(): string {
50 $stylesheet = new Stylesheet();
51
52 $breakpoints = Plugin::$instance->breakpoints->get_active_breakpoints();
53
54 foreach ( $breakpoints as $breakpoint_name => $breakpoint ) {
55 $stylesheet->add_device( $breakpoint_name, $breakpoint->get_value() );
56 }
57
58 $color_entries = Variables_Provider::get_synced_color_css_entries();
59
60 if ( ! empty( $color_entries ) ) {
61 $stylesheet->add_raw_css( ':root { ' . implode( ' ', $color_entries ) . ' }' );
62 }
63
64 $typography_entries = Classes_Provider::get_synced_typography_css_entries();
65
66 foreach ( $typography_entries as $device => $entries ) {
67 $css = ':root { ' . implode( ' ', $entries ) . ' }';
68 $device_key = ( Breakpoints_Manager::BREAKPOINT_KEY_DESKTOP === $device ) ? '' : $device;
69
70 $stylesheet->add_raw_css( $css, $device_key );
71 }
72
73 return (string) $stylesheet;
74 }
75 }
76