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

240 lines 5.6 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\Background_Prop_Type;
5 use Elementor\Modules\AtomicWidgets\PropTypes\Box_Shadow_Prop_Type;
6 use Elementor\Modules\AtomicWidgets\PropTypes\Border_Radius_Prop_Type;
7 use Elementor\Modules\AtomicWidgets\PropTypes\Border_Width_Prop_Type;
8 use Elementor\Modules\AtomicWidgets\PropTypes\Color_Prop_Type;
9 use Elementor\Modules\AtomicWidgets\PropTypes\Linked_Dimensions_Prop_Type;
10 use Elementor\Modules\AtomicWidgets\PropTypes\Primitives\Number_Prop_Type;
11 use Elementor\Modules\AtomicWidgets\PropTypes\Size_Prop_Type;
12 use Elementor\Modules\AtomicWidgets\PropTypes\Primitives\String_Prop_Type;
13 use Elementor\Modules\AtomicWidgets\PropTypes\Stroke_Prop_Type;
14 use Elementor\Modules\AtomicWidgets\PropTypes\Union_Prop_Type;
15 use Elementor\Modules\AtomicWidgets\PropTypes\Gap_Prop_Type;
16
17 if ( ! defined( 'ABSPATH' ) ) {
18 exit; // Exit if accessed directly.
19 }
20
21 class Style_Schema {
22 public static function get() {
23 return array_merge(
24 self::get_size_props(),
25 self::get_position_props(),
26 self::get_typography_props(),
27 self::get_spacing_props(),
28 self::get_border_props(),
29 self::get_background_props(),
30 self::get_effects_props(),
31 self::get_layout_props(),
32 self::get_alignment_props(),
33 );
34 }
35
36 private static function get_size_props() {
37 return [
38 'width' => Size_Prop_Type::make(),
39 'height' => Size_Prop_Type::make(),
40 'min-width' => Size_Prop_Type::make(),
41 'min-height' => Size_Prop_Type::make(),
42 'max-width' => Size_Prop_Type::make(),
43 'max-height' => Size_Prop_Type::make(),
44 'overflow' => String_Prop_Type::make()->enum([
45 'visible',
46 'hidden',
47 'auto',
48 ]),
49 ];
50 }
51
52 private static function get_position_props() {
53 return [
54 'position' => String_Prop_Type::make()->enum([
55 'static',
56 'relative',
57 'absolute',
58 'fixed',
59 ]),
60 'top' => Size_Prop_Type::make(),
61 'right' => Size_Prop_Type::make(),
62 'bottom' => Size_Prop_Type::make(),
63 'left' => Size_Prop_Type::make(),
64 'z-index' => Number_Prop_Type::make(),
65 ];
66 }
67
68 private static function get_typography_props() {
69 return [
70 'font-family' => String_Prop_Type::make(),
71 'font-weight' => String_Prop_Type::make()->enum([
72 '100',
73 '200',
74 '300',
75 '400',
76 '500',
77 '600',
78 '700',
79 '800',
80 '900',
81 'normal',
82 'bold',
83 'bolder',
84 'lighter',
85 ]),
86 'font-size' => Size_Prop_Type::make(),
87 'color' => Color_Prop_Type::make(),
88 'letter-spacing' => Size_Prop_Type::make(),
89 'word-spacing' => Size_Prop_Type::make(),
90 'text-align' => String_Prop_Type::make()->enum([
91 'left',
92 'center',
93 'right',
94 'justify',
95 ]),
96 'font-style' => String_Prop_Type::make()->enum([
97 'normal',
98 'italic',
99 'oblique',
100 ]),
101 // TODO: validate text-decoration in more specific way [EDS-524]
102 'text-decoration' => String_Prop_Type::make(),
103 'text-transform' => String_Prop_Type::make()->enum([
104 'none',
105 'capitalize',
106 'uppercase',
107 'lowercase',
108 ]),
109 'direction' => String_Prop_Type::make()->enum([
110 'ltr',
111 'rtl',
112 ]),
113 '-webkit-text-stroke' => Stroke_Prop_Type::make(),
114 ];
115 }
116
117 private static function get_spacing_props() {
118 return [
119 'padding' => Linked_Dimensions_Prop_Type::make(),
120 'margin' => Linked_Dimensions_Prop_Type::make(),
121 ];
122 }
123
124 private static function get_border_props() {
125 return [
126 'border-radius' => Union_Prop_Type::make()->add_prop_type(
127 Size_Prop_Type::make()
128 )->add_prop_type(
129 Border_Radius_Prop_Type::make()
130 ),
131 'border-width' => Union_Prop_Type::make()->add_prop_type( Size_Prop_Type::make() )->add_prop_type( Border_Width_Prop_Type::make() ),
132 'border-color' => Color_Prop_Type::make(),
133 'border-style' => String_Prop_Type::make()->enum([
134 'none',
135 'hidden',
136 'dotted',
137 'dashed',
138 'solid',
139 'double',
140 'groove',
141 'ridge',
142 'inset',
143 'outset',
144 ]),
145 ];
146 }
147
148 private static function get_background_props() {
149 return [
150 'background' => Background_Prop_Type::make(),
151 ];
152 }
153
154 private static function get_effects_props() {
155 return [
156 'box-shadow' => Box_Shadow_Prop_Type::make(),
157 ];
158 }
159
160 private static function get_layout_props() {
161 return [
162 'display' => String_Prop_Type::make()->enum([
163 'block',
164 'inline',
165 'inline-block',
166 'flex',
167 'inline-flex',
168 'grid',
169 'inline-grid',
170 'flow-root',
171 'none',
172 'contents',
173 ]),
174 'flex-direction' => String_Prop_Type::make()->enum([
175 'row',
176 'row-reverse',
177 'column',
178 'column-reverse',
179 ]),
180 'gap' => Gap_Prop_Type::make(),
181 'flex-wrap' => String_Prop_Type::make()->enum([
182 'wrap',
183 'nowrap',
184 'wrap-reverse',
185 ]),
186 'flex-grow' => Number_Prop_Type::make(),
187 'flex-shrink' => Number_Prop_Type::make(),
188 'flex-basis' => Size_Prop_Type::make(),
189 ];
190 }
191
192 private static function get_alignment_props() {
193 return [
194 'justify-content' => String_Prop_Type::make()->enum([
195 'center',
196 'start',
197 'end',
198 'flex-start',
199 'flex-end',
200 'left',
201 'right',
202 'normal',
203 'space-between',
204 'space-around',
205 'space-evenly',
206 'stretch',
207 ]),
208 'align-items' => String_Prop_Type::make()->enum([
209 'normal',
210 'stretch',
211 'center',
212 'start',
213 'end',
214 'flex-start',
215 'flex-end',
216 'self-start',
217 'self-end',
218 'anchor-center',
219 ]),
220 'align-self' => String_Prop_Type::make()->enum([
221 'auto',
222 'normal',
223 'center',
224 'start',
225 'end',
226 'self-start',
227 'self-end',
228 'flex-start',
229 'flex-end',
230 'anchor-center',
231 'baseline',
232 'first baseline',
233 'last baseline',
234 'stretch',
235 ]),
236 'order' => Number_Prop_Type::make(),
237 ];
238 }
239 }
240