PluginProbe
Elementor Website Builder – more than just a page builder / 3.26.4
Elementor Website Builder – more than just a page builder v3.26.4
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 / atomic-widgets / styles / style-schema.php

style-schema.php in Elementor Website Builder – more than just a page builder 3.26.4, at modules/atomic-widgets/styles/style-schema.php

156 lines 3.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\Modules\AtomicWidgets\Styles;
3
4 use Elementor\Modules\AtomicWidgets\PropTypes\Box_Shadow_Prop_Type;
5 use Elementor\Modules\AtomicWidgets\PropTypes\Border_Radius_Prop_Type;
6 use Elementor\Modules\AtomicWidgets\PropTypes\Border_Width_Prop_Type;
7 use Elementor\Modules\AtomicWidgets\PropTypes\Color_Prop_Type;
8 use Elementor\Modules\AtomicWidgets\PropTypes\Linked_Dimensions_Prop_Type;
9 use Elementor\Modules\AtomicWidgets\PropTypes\Primitives\Number_Prop_Type;
10 use Elementor\Modules\AtomicWidgets\PropTypes\Size_Prop_Type;
11 use Elementor\Modules\AtomicWidgets\PropTypes\Primitives\String_Prop_Type;
12 use Elementor\Modules\AtomicWidgets\PropTypes\Stroke_Prop_Type;
13 use Elementor\Modules\AtomicWidgets\PropTypes\Union_Prop_Type;
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit; // Exit if accessed directly.
17 }
18
19 class Style_Schema {
20 public static function get() {
21 return array_merge(
22 self::get_size_props(),
23 self::get_position_props(),
24 self::get_typography_props(),
25 self::get_spacing_props(),
26 self::get_border_props(),
27 self::get_background_props(),
28 self::get_effects_props(),
29 );
30 }
31
32 private static function get_size_props() {
33 return [
34 'width' => Size_Prop_Type::make(),
35 'height' => Size_Prop_Type::make(),
36 'min-width' => Size_Prop_Type::make(),
37 'min-height' => Size_Prop_Type::make(),
38 'max-width' => Size_Prop_Type::make(),
39 'max-height' => Size_Prop_Type::make(),
40 'overflow' => String_Prop_Type::make()->enum([
41 'visible',
42 'hidden',
43 'auto',
44 ]),
45 ];
46 }
47
48 private static function get_position_props() {
49 return [
50 'position' => String_Prop_Type::make()->enum([
51 'static',
52 'relative',
53 'absolute',
54 'fixed',
55 ]),
56 'top' => Size_Prop_Type::make(),
57 'right' => Size_Prop_Type::make(),
58 'bottom' => Size_Prop_Type::make(),
59 'left' => Size_Prop_Type::make(),
60 'z-index' => Number_Prop_Type::make(),
61 ];
62 }
63
64 private static function get_typography_props() {
65 return [
66 'font-family' => String_Prop_Type::make(),
67 'font-weight' => String_Prop_Type::make()->enum([
68 '100',
69 '200',
70 '300',
71 '400',
72 '500',
73 '600',
74 '700',
75 '800',
76 '900',
77 'normal',
78 'bold',
79 'bolder',
80 'lighter',
81 ]),
82 'font-size' => Size_Prop_Type::make(),
83 'color' => Color_Prop_Type::make(),
84 'letter-spacing' => Size_Prop_Type::make(),
85 'word-spacing' => Size_Prop_Type::make(),
86 'text-align' => String_Prop_Type::make()->enum([
87 'left',
88 'center',
89 'right',
90 'justify',
91 ]),
92 'font-style' => String_Prop_Type::make()->enum([
93 'normal',
94 'italic',
95 'oblique',
96 ]),
97 // TODO: validate text-decoration in more specific way [EDS-524]
98 'text-decoration' => String_Prop_Type::make(),
99 'text-transform' => String_Prop_Type::make()->enum([
100 'none',
101 'capitalize',
102 'uppercase',
103 'lowercase',
104 ]),
105 'direction' => String_Prop_Type::make()->enum([
106 'ltr',
107 'rtl',
108 ]),
109 '-webkit-text-stroke' => Stroke_Prop_Type::make(),
110 ];
111 }
112
113 private static function get_spacing_props() {
114 return [
115 'padding' => Linked_Dimensions_Prop_Type::make(),
116 'margin' => Linked_Dimensions_Prop_Type::make(),
117 ];
118 }
119
120 private static function get_border_props() {
121 return [
122 'border-radius' => Union_Prop_Type::make()->add_prop_type(
123 Size_Prop_Type::make()
124 )->add_prop_type(
125 Border_Radius_Prop_Type::make()
126 ),
127 'border-width' => Union_Prop_Type::make()->add_prop_type( Size_Prop_Type::make() )->add_prop_type( Border_Width_Prop_Type::make() ),
128 'border-color' => Color_Prop_Type::make(),
129 'border-style' => String_Prop_Type::make()->enum([
130 'none',
131 'hidden',
132 'dotted',
133 'dashed',
134 'solid',
135 'double',
136 'groove',
137 'ridge',
138 'inset',
139 'outset',
140 ]),
141 ];
142 }
143
144 private static function get_background_props() {
145 return [
146 'background-color' => Color_Prop_Type::make(),
147 ];
148 }
149
150 private static function get_effects_props() {
151 return [
152 'box-shadow' => Box_Shadow_Prop_Type::make(),
153 ];
154 }
155 }
156