PluginProbe
Elementor Website Builder – more than just a page builder / 3.32.0-dev2
Elementor Website Builder – more than just a page builder v3.32.0-dev2
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
← All changes | modules/atomic-widgets/styles/style-schema.php +53 -177 4.2.13.32.0-dev2 View file →
@@ -10,15 +10,13 @@
10 10 use Elementor\Modules\AtomicWidgets\PropTypes\Border_Radius_Prop_Type;
11 11 use Elementor\Modules\AtomicWidgets\PropTypes\Border_Width_Prop_Type;
12 12 use Elementor\Modules\AtomicWidgets\PropTypes\Color_Prop_Type;
13 13 use Elementor\Modules\AtomicWidgets\PropTypes\Dimensions_Prop_Type;
14 -use Elementor\Modules\AtomicWidgets\PropTypes\Font_Family_Prop_Type;
15 14 use Elementor\Modules\AtomicWidgets\PropTypes\Filters\Backdrop_Filter_Prop_Type;
16 15 use Elementor\Modules\AtomicWidgets\PropTypes\Filters\Filter_Prop_Type;
17 16 use Elementor\Modules\AtomicWidgets\PropTypes\Layout_Direction_Prop_Type;
18 17 use Elementor\Modules\AtomicWidgets\PropTypes\Position_Prop_Type;
19 18 use Elementor\Modules\AtomicWidgets\PropTypes\Primitives\Number_Prop_Type;
20 -use Elementor\Modules\AtomicWidgets\PropTypes\Grid_Track_Size_Prop_Type;
21 19 use Elementor\Modules\AtomicWidgets\PropTypes\Size_Prop_Type;
22 20 use Elementor\Modules\AtomicWidgets\PropTypes\Primitives\String_Prop_Type;
23 21 use Elementor\Modules\AtomicWidgets\PropTypes\Stroke_Prop_Type;
24 22 use Elementor\Modules\AtomicWidgets\PropTypes\Transform\Transform_Prop_Type;
@@ -25,9 +23,8 @@
25 23 use Elementor\Modules\AtomicWidgets\PropTypes\Transition_Prop_Type;
26 24 use Elementor\Modules\AtomicWidgets\PropTypes\Union_Prop_Type;
27 25 use Elementor\Modules\AtomicWidgets\PropTypes\Flex_Prop_Type;
28 26 use Elementor\Modules\AtomicWidgets\PropDependencies\Manager as Dependency_Manager;
29 -use Elementor\Modules\AtomicWidgets\PropTypes\Span_Prop_Type;
30 27
31 28 if ( ! defined( 'ABSPATH' ) ) {
32 29 exit; // Exit if accessed directly.
33 30 }
@@ -47,26 +44,25 @@
47 44 self::get_background_props(),
48 45 self::get_effects_props(),
49 46 self::get_layout_props(),
50 47 self::get_alignment_props(),
51 - self::get_special_props(),
52 48 );
53 49 }
54 50
55 51 private static function get_size_props() {
56 52 return [
57 - 'width' => Size_Prop_Type::make()->description( 'The width of the element' ),
58 - 'height' => Size_Prop_Type::make()->description( 'The height of the element' ),
59 - 'min-width' => Size_Prop_Type::make()->description( 'The minimum width of the element' ),
60 - 'min-height' => Size_Prop_Type::make()->description( 'The minimum height of the element' ),
61 - 'max-width' => Size_Prop_Type::make()->description( 'The maximum width of the element' ),
62 - 'max-height' => Size_Prop_Type::make()->description( 'The maximum height of the element' ),
53 + 'width' => Size_Prop_Type::make(),
54 + 'height' => Size_Prop_Type::make(),
55 + 'min-width' => Size_Prop_Type::make(),
56 + 'min-height' => Size_Prop_Type::make(),
57 + 'max-width' => Size_Prop_Type::make(),
58 + 'max-height' => Size_Prop_Type::make(),
63 59 'overflow' => String_Prop_Type::make()->enum( [
64 60 'visible',
65 61 'hidden',
66 62 'auto',
67 - ] )->description( 'The overflow CSS property. CSS values: visible, hidden, auto' ),
68 - 'aspect-ratio' => String_Prop_Type::make()->description( 'Equivalent to CSS aspect-ration property' ),
63 + ] ),
64 + 'aspect-ratio' => String_Prop_Type::make(),
69 65 'object-fit' => String_Prop_Type::make()->enum( [
70 66 'fill',
71 67 'cover',
72 68 'contain',
@@ -71,9 +67,9 @@
71 67 'cover',
72 68 'contain',
73 69 'none',
74 70 'scale-down',
75 - ] )->description( 'The object-fit CSS. CSS values: fill, cover, contain, none, scale-down' ),
71 + ] ),
76 72 'object-position' => Union_Prop_Type::make()
77 73 ->add_prop_type( String_Prop_Type::make()->enum( Position_Prop_Type::get_position_enum_values() ) )
78 74 ->add_prop_type( Position_Prop_Type::make() )
79 75 ->set_dependencies(
@@ -92,20 +88,8 @@
92 88 ];
93 89 }
94 90
95 91 private static function get_position_props() {
96 - $non_static_dependency = Dependency_Manager::make( Dependency_Manager::RELATION_AND )
97 - ->where( [
98 - 'operator' => 'exists',
99 - 'path' => [ 'position' ],
100 - ] )
101 - ->where( [
102 - 'operator' => 'ne',
103 - 'path' => [ 'position' ],
104 - 'value' => 'static',
105 - ] )
106 - ->get();
107 -
108 92 return [
109 93 'position' => String_Prop_Type::make()->enum( [
110 94 'static',
111 95 'relative',
@@ -111,23 +95,14 @@
111 95 'relative',
112 96 'absolute',
113 97 'fixed',
114 98 'sticky',
115 - ] )->description( 'The CSS position property specifies the type of positioning method used for an element (static, relative, absolute, fixed, or sticky).' ),
116 - 'inset-block-start' => Size_Prop_Type::make()
117 - ->description( 'Size PropType for the inset-block-start CSS property' )
118 - ->set_dependencies( $non_static_dependency ),
119 - 'inset-inline-end' => Size_Prop_Type::make()
120 - ->description( 'Size PropType for the inset-inline-end CSS property' )
121 - ->set_dependencies( $non_static_dependency ),
122 - 'inset-block-end' => Size_Prop_Type::make()
123 - ->description( 'Size PropType for the inset-block-end CSS property' )
124 - ->set_dependencies( $non_static_dependency ),
125 - 'inset-inline-start' => Size_Prop_Type::make()
126 - ->description( 'Size PropType for the inset-inline-start CSS property' )
127 - ->set_dependencies( $non_static_dependency ),
128 - 'z-index' => Number_Prop_Type::make()
129 - ->description( 'The z-index CSS property sets the z-order of a positioned element and its descendants or flex items. It specifies the stack order of elements.' ),
99 + ] ),
100 + 'inset-block-start' => Size_Prop_Type::make(),
101 + 'inset-inline-end' => Size_Prop_Type::make(),
102 + 'inset-block-end' => Size_Prop_Type::make(),
103 + 'inset-inline-start' => Size_Prop_Type::make(),
104 + 'z-index' => Number_Prop_Type::make(),
130 105 'scroll-margin-top' => Size_Prop_Type::make()->units( Size_Constants::anchor_offset() ),
131 106 ];
132 107 }
133 108
@@ -132,10 +107,9 @@
132 107 }
133 108
134 109 private static function get_typography_props() {
135 110 return [
136 - 'font-family' => Font_Family_Prop_Type::make()
137 - ->description( 'The font family of the text content.' ),
111 + 'font-family' => String_Prop_Type::make(),
138 112 'font-weight' => String_Prop_Type::make()->enum( [
139 113 '100',
140 114 '200',
141 115 '300',
@@ -148,16 +122,14 @@
148 122 'normal',
149 123 'bold',
150 124 'bolder',
151 125 'lighter',
152 - ] )
153 - ->description( 'The weight (or boldness) of the font. Values should match css font-weight specifications.' ),
154 - 'font-size' => Size_Prop_Type::make()->units( Size_Constants::typography() )->description( 'The font size in Size PropType Format' ),
155 - 'color' => Color_Prop_Type::make()
156 - ->description( 'The text color, specified as a hex code, rgb(a), hsl(a), or a standard css color name.' ),
157 - 'letter-spacing' => Size_Prop_Type::make()->units( Size_Constants::typography() )->description( 'The spacing between letters in Size PropType format' ),
158 - 'word-spacing' => Size_Prop_Type::make()->units( Size_Constants::typography() )->description( 'The spacing between words in Size PropType format' ),
159 - 'column-count' => Number_Prop_Type::make()->description( 'The number of columns the text content should be divided into.' ),
126 + ] ),
127 + 'font-size' => Size_Prop_Type::make()->units( Size_Constants::typography() ),
128 + 'color' => Color_Prop_Type::make(),
129 + 'letter-spacing' => Size_Prop_Type::make()->units( Size_Constants::typography() ),
130 + 'word-spacing' => Size_Prop_Type::make()->units( Size_Constants::typography() ),
131 + 'column-count' => Number_Prop_Type::make(),
160 132 'column-gap' => Size_Prop_Type::make()
161 133 ->set_dependencies(
162 134 Dependency_Manager::make()
163 135 ->where( [
@@ -166,36 +138,32 @@
166 138 'value' => 1,
167 139 ] )
168 140 ->get()
169 141 ),
170 - 'line-height' => Size_Prop_Type::make()->units( Size_Constants::typography() )->description( 'The line height of the text content in Size PropType format' ),
142 + 'line-height' => Size_Prop_Type::make()->units( Size_Constants::typography() ),
171 143 'text-align' => String_Prop_Type::make()->enum( [
172 144 'start',
173 145 'center',
174 146 'end',
175 147 'justify',
176 - ] )
177 - ->description( 'The horizontal alignment of the text content. Allowed values: start, center, end, justify.' ),
148 + ] ),
178 149 'font-style' => String_Prop_Type::make()->enum( [
179 150 'normal',
180 151 'italic',
181 152 'oblique',
182 - ] )
183 - ->description( 'The font style of the text content. CSS values: normal, italic, oblique' ),
153 + ] ),
184 154 // TODO: validate text-decoration in more specific way [EDS-524]
185 - 'text-decoration' => String_Prop_Type::make()
186 - ->description( 'The text decoration style. CSS values like: none, underline, overline, line-through, blink, etc.' ),
155 + 'text-decoration' => String_Prop_Type::make(),
187 156 'text-transform' => String_Prop_Type::make()->enum( [
188 157 'none',
189 158 'capitalize',
190 159 'uppercase',
191 160 'lowercase',
192 - ] )
193 - ->description( 'Controls the capitalization of text. CSS values: none, capitalize, uppercase, lowercase' ),
161 + ] ),
194 162 'direction' => String_Prop_Type::make()->enum( [
195 163 'ltr',
196 164 'rtl',
197 - ] )->description( 'The text direction. CSS values: ltr (left to right), rtl (right to left)' ),
165 + ] ),
198 166 'stroke' => Stroke_Prop_Type::make(),
199 167 'all' => String_Prop_Type::make()->enum( [
200 168 'initial',
201 169 'inherit',
@@ -201,13 +169,12 @@
201 169 'inherit',
202 170 'unset',
203 171 'revert',
204 172 'revert-layer',
205 - ] )->description( 'The all CSS property. CSS values: initial, inherit, unset, revert, revert-layer' ),
173 + ] ),
206 174 'cursor' => String_Prop_Type::make()->enum( [
207 175 'pointer',
208 - ] )
209 - ->description( 'The type of cursor to be displayed when pointing over the element. E.g., pointer.' ),
176 + ] ),
210 177 ];
211 178 }
212 179
213 180 private static function get_spacing_props() {
@@ -213,20 +180,12 @@
213 180 private static function get_spacing_props() {
214 181 return [
215 182 'padding' => Union_Prop_Type::make()
216 183 ->add_prop_type( Dimensions_Prop_Type::make_with_units( Size_Constants::spacing() ) )
217 - ->add_prop_type(
218 - Size_Prop_Type::make()
219 - ->units( Size_Constants::spacing() )
220 - ->description( 'Padding css in Size PropType format' )
221 - ),
184 + ->add_prop_type( Size_Prop_Type::make()->units( Size_Constants::spacing() ) ),
222 185 'margin' => Union_Prop_Type::make()
223 - ->add_prop_type( Dimensions_Prop_Type::make_with_units( Size_Constants::spacing_margin() ) )
224 - ->add_prop_type(
225 - Size_Prop_Type::make()
226 - ->units( Size_Constants::spacing_margin() )
227 - ->description( 'Margin css in Size PropType format' )
228 - ),
186 + ->add_prop_type( Dimensions_Prop_Type::make() )
187 + ->add_prop_type( Size_Prop_Type::make() ),
229 188 ];
230 189 }
231 190
232 191 private static function get_border_props() {
@@ -231,14 +190,14 @@
231 190
232 191 private static function get_border_props() {
233 192 return [
234 193 'border-radius' => Union_Prop_Type::make()
235 - ->add_prop_type( Border_Radius_Prop_Type::make() )
236 - ->add_prop_type( Size_Prop_Type::make()->units( Size_Constants::border() ) ),
194 + ->add_prop_type( Size_Prop_Type::make()->units( Size_Constants::border() ) )
195 + ->add_prop_type( Border_Radius_Prop_Type::make() ),
237 196 'border-width' => Union_Prop_Type::make()
238 - ->add_prop_type( Border_Width_Prop_Type::make() )
239 - ->add_prop_type( Size_Prop_Type::make()->units( Size_Constants::border() ) ),
240 - 'border-color' => Color_Prop_Type::make()->description( 'The border color, specified as a hex code, rgb(a), hsl(a), or a standard css color name.' ),
197 + ->add_prop_type( Size_Prop_Type::make()->units( Size_Constants::border() ) )
198 + ->add_prop_type( Border_Width_Prop_Type::make() ),
199 + 'border-color' => Color_Prop_Type::make(),
241 200 'border-style' => String_Prop_Type::make()->enum( [
242 201 'none',
243 202 'hidden',
244 203 'dotted',
@@ -248,28 +207,9 @@
248 207 'groove',
249 208 'ridge',
250 209 'inset',
251 210 'outset',
252 - ] )
253 - ->description( 'The border style in CSS values' ),
254 - 'outline-width' => Size_Prop_Type::make()
255 - ->units( Size_Constants::border() )
256 - ->description( 'The width of the outline in Size PropType format' ),
257 - 'outline-color' => Color_Prop_Type::make()->description( 'The color of the outline, specified as a hex code, rgb(a), hsl(a), or a standard css color name.' ),
258 - 'outline-style' => String_Prop_Type::make()->enum( [
259 - 'none',
260 - 'hidden',
261 - 'dotted',
262 - 'dashed',
263 - 'solid',
264 - 'double',
265 - 'groove',
266 - 'ridge',
267 - 'inset',
268 - 'outset',
269 - ] )->description( 'The outline style in CSS values' ),
270 - 'outline-offset' => Size_Prop_Type::make()->units( Size_Constants::border() )->description( 'The offset of the outline, specified as a length in Size PropType format' ),
271 -
211 + ] ),
272 212 ];
273 213 }
274 214
275 215 private static function get_background_props() {
@@ -276,9 +216,9 @@
276 216 // Background image overlay as an exception
277 217 $background_prop_type = Background_Prop_Type::make();
278 218 $bg_overlay_prop_type = $background_prop_type->get_shape_field( Background_Overlay_Prop_Type::get_key() );
279 219 $bg_image_overlay_prop_type = $bg_overlay_prop_type->get_item_type()->get_prop_type( Background_Image_Overlay_Prop_Type::get_key() );
280 - Dynamic_Prop_Types_Mapping::make()->get_extended_schema( $bg_image_overlay_prop_type->get_shape() );
220 + Dynamic_Prop_Types_Mapping::make()->get_modified_prop_types( $bg_image_overlay_prop_type->get_shape() );
281 221 return [
282 222 'background' => $background_prop_type,
283 223 ];
284 224 }
@@ -284,29 +224,10 @@
284 224 }
285 225
286 226 private static function get_effects_props() {
287 227 return [
288 - 'mix-blend-mode' => String_Prop_Type::make()->enum( [
289 - 'normal',
290 - 'multiply',
291 - 'screen',
292 - 'overlay',
293 - 'darken',
294 - 'lighten',
295 - 'color-dodge',
296 - 'saturation',
297 - 'color',
298 - 'difference',
299 - 'exclusion',
300 - 'hue',
301 - 'luminosity',
302 - 'soft-light',
303 - 'hard-light',
304 - 'color-burn',
305 - ] )->description( 'Applied as mix-blend mode css effect.' ),
306 228 'box-shadow' => Box_Shadow_Prop_Type::make(),
307 229 'opacity' => Size_Prop_Type::make()
308 - ->description( 'The opacity of the element, specified as a percentage between 0 (fully transparent) and 100 (fully opaque).' )
309 230 ->units( Size_Constants::opacity() )
310 231 ->default_unit( Size_Constants::UNIT_PERCENT ),
311 232 'filter' => Filter_Prop_Type::make(),
312 233 'backdrop-filter' => Backdrop_Filter_Prop_Type::make(),
@@ -327,17 +248,15 @@
327 248 'inline-grid',
328 249 'flow-root',
329 250 'none',
330 251 'contents',
331 - ] )->description( 'The CSS display property defines the display behavior (the type of rendering box) of an element.' ),
332 - 'flex-direction' => String_Prop_Type::make()
333 - ->description( 'The direction of the contained items.' )
334 - ->enum( [
335 - 'row',
336 - 'row-reverse',
337 - 'column',
338 - 'column-reverse',
339 - ] ),
252 + ] ),
253 + 'flex-direction' => String_Prop_Type::make()->enum( [
254 + 'row',
255 + 'row-reverse',
256 + 'column',
257 + 'column-reverse',
258 + ] ),
340 259 'gap' => Union_Prop_Type::make()
341 260 ->add_prop_type( Layout_Direction_Prop_Type::make() )
342 261 ->add_prop_type( Size_Prop_Type::make()->units( Size_Constants::layout() ) ),
343 262 'flex-wrap' => String_Prop_Type::make()->enum( [
@@ -343,31 +262,10 @@
343 262 'flex-wrap' => String_Prop_Type::make()->enum( [
344 263 'wrap',
345 264 'nowrap',
346 265 'wrap-reverse',
347 - ] )->description( 'Specifies whether the flex items should wrap or not. CSS values: wrap, nowrap, wrap-reverse' ),
266 + ] ),
348 267 'flex' => Flex_Prop_Type::make(),
349 - 'grid-template-columns' => Union_Prop_Type::make()
350 - ->add_prop_type( String_Prop_Type::make() )
351 - ->add_prop_type( Grid_Track_Size_Prop_Type::make()->units( Size_Constants::grid_track() ) ),
352 - 'grid-template-rows' => Union_Prop_Type::make()
353 - ->add_prop_type( String_Prop_Type::make() )
354 - ->add_prop_type( Grid_Track_Size_Prop_Type::make()->units( Size_Constants::grid_track() ) ),
355 - 'grid-auto-flow' => String_Prop_Type::make()
356 - ->enum( [ 'row', 'column', 'row dense', 'column dense' ] )
357 - ->description( 'Controls how auto-placed items flow in the grid. CSS values: row, column, row dense, column dense.' ),
358 - 'grid-auto-rows' => Size_Prop_Type::make()
359 - ->units( Size_Constants::grid_auto_track() )
360 - ->default_unit( Size_Constants::UNIT_FR ),
361 - 'grid-auto-columns' => Size_Prop_Type::make()
362 - ->units( Size_Constants::grid_auto_track() )
363 - ->default_unit( Size_Constants::UNIT_FR ),
364 - 'grid-column' => Span_Prop_Type::make()
365 - ->regex( '/^(?!.*https?:\/\/)(?!.*;).*$/' )
366 - ->description( 'Defines a grid item column placement. Accepts values like span N or any valid CSS grid-column value. Disallows URLs and semicolons.' ),
367 - 'grid-row' => Span_Prop_Type::make()
368 - ->regex( '/^(?!.*https?:\/\/)(?!.*;).*$/' )
369 - ->description( 'Defines a grid item row placement. Accepts values like span N or any valid CSS grid-row value. Disallows URLs and semicolons.' ),
370 268 ];
371 269 }
372 270
373 271 private static function get_alignment_props() {
@@ -384,22 +282,9 @@
384 282 'space-between',
385 283 'space-around',
386 284 'space-evenly',
387 285 'stretch',
388 - ] )
389 - ->description( 'Defines how the browser distributes space between and around content items along the main-axis of a flex container. CSS values: center, start, end, flex-start, flex-end, left, right, normal, space-between, space-around, space-evenly, stretch' ),
390 - 'justify-items' => String_Prop_Type::make()->enum( [
391 - 'normal',
392 - 'stretch',
393 - 'center',
394 - 'start',
395 - 'end',
396 - 'flex-start',
397 - 'flex-end',
398 - 'left',
399 - 'right',
400 - 'anchor-center',
401 - ] )->description( 'Defines how the browser distributes space between and around content items along the inline axis of a grid container. CSS values: center, start, end, flex-start, flex-end, left, right' ),
286 + ] ),
402 287 'align-content' => String_Prop_Type::make()->enum( [
403 288 'center',
404 289 'start',
405 290 'end',
@@ -405,10 +290,9 @@
405 290 'end',
406 291 'space-between',
407 292 'space-around',
408 293 'space-evenly',
409 - ] )
410 - ->description( 'Aligns a flex container\'s lines within when there is extra space in the cross-axis. CSS values: center, start, end, space-between, space-around, space-evenly' ),
294 + ] ),
411 295 'align-items' => String_Prop_Type::make()->enum( [
412 296 'normal',
413 297 'stretch',
414 298 'center',
@@ -418,9 +302,9 @@
418 302 'flex-end',
419 303 'self-start',
420 304 'self-end',
421 305 'anchor-center',
422 - ] )->description( 'Defines the default behavior for how flex items are laid out along the cross axis on the current line. CSS values: normal, stretch, center, start, end, flex-start, flex-end, self-start, self-end, anchor-center' ),
306 + ] ),
423 307 'align-self' => String_Prop_Type::make()->enum( [
424 308 'auto',
425 309 'normal',
426 310 'center',
@@ -434,17 +318,9 @@
434 318 'baseline',
435 319 'first baseline',
436 320 'last baseline',
437 321 'stretch',
438 - ] )->description( 'Allows the default alignment (or the one specified by align-items) to be overridden for individual flex items. CSS values: auto, normal, center, start, end, self-start, self-end, flex-start, flex-end, anchor-center, baseline, first baseline, last baseline, stretch' ),
439 - 'order' => Number_Prop_Type::make()->description( 'Specifies the order of the flex items. Items with lower order values are displayed first.' ),
440 - ];
441 - }
442 -
443 - private static function get_special_props() {
444 - return [
445 - 'content' => String_Prop_Type::make()->description( 'The string content for pseudo-element content property' ),
446 - 'appearance' => String_Prop_Type::make()->enum( [ 'none', 'auto' ] )->description( 'The appearance of the element. CSS values: none, auto' ),
447 - 'clip-path' => String_Prop_Type::make()->description( 'The clip-path CSS property defines a shape to be used as clipping region.' ),
322 + ] ),
323 + 'order' => Number_Prop_Type::make(),
448 324 ];
449 325 }
450 326 }