PluginProbe ʕ •ᴥ•ʔ
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz / trunk
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz vtrunk
2.12.5 2.12.4 2.12.3 2.12.2 2.12.1 2.12.0 2.11.1 2.11.0 2.10.1 2.10.0 2.9.1 2.9.0 2.8.2 2.8.1 2.7.0 2.7.1 2.8.0 trunk 0.0.10 0.0.11 0.0.12 0.0.13 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7 0.0.8 0.0.9 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.1.0 1.1.1 1.1.2 1.10.0 1.10.1 1.11.0 1.12.0 1.12.1 1.12.2 1.12.3 1.13.0 1.13.1 1.13.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.5.0 1.5.1 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.8.0 1.9.0 1.9.1 2.0.0 2.0.1 2.0.2 2.1.0 2.1.1 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.2 2.6.0
sureforms / modules / gutenberg / classes / class-spec-block-config.php
sureforms / modules / gutenberg / classes Last commit date
class-spec-block-config.php 2 years ago class-spec-block-helper.php 1 year ago class-spec-block-js.php 2 years ago class-spec-block-loader.php 2 years ago class-spec-filesystem.php 2 months ago class-spec-gb-helper.php 11 months ago class-spec-init-blocks.php 5 months ago class-spec-spectra-compatibility.php 5 months ago
class-spec-block-config.php
716 lines
1 <?php
2 /**
3 * Sureforms Config.
4 *
5 * @package Sureforms
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly.
10 }
11
12 if ( ! class_exists( 'Spec_Block_Config' ) ) {
13
14 /**
15 * Class Spec_Block_Config.
16 */
17 class Spec_Block_Config {
18
19 /**
20 * Block Attributes
21 *
22 * @var block_attributes
23 */
24 public static $block_attributes = null;
25
26 /**
27 * Block Assets
28 *
29 * @since 0.0.1
30 * @var block_attributes
31 */
32 public static $block_assets_css = null;
33
34 /**
35 * Block Assets
36 *
37 * @var block_attributes
38 */
39 public static $block_assets = null;
40
41 /**
42 * Get Widget List.
43 *
44 * @since 0.0.1
45 *
46 * @return array The Widget List.
47 */
48 public static function get_block_attributes() {
49
50 $image_attribute = self::generate_border_attribute( 'image' );
51 $overlay_attribute = self::generate_border_attribute( 'overlay' );
52 $icon_border_attribute = self::generate_border_attribute( 'icon' );
53 $high_light_border_attribute = self::generate_border_attribute( 'highLight' );
54
55 $image_base_attr = [
56 'height' => '',
57 'width' => '',
58 'widthTablet' => '',
59 'heightTablet' => '',
60 'widthMobile' => '',
61 'heightMobile' => '',
62 'layout' => 'default',
63 // image.
64 'imageTopMargin' => '',
65 'imageRightMargin' => '',
66 'imageLeftMargin' => '',
67 'imageBottomMargin' => '',
68 'imageTopMarginTablet' => '',
69 'imageRightMarginTablet' => '',
70 'imageLeftMarginTablet' => '',
71 'imageBottomMarginTablet' => '',
72 'imageTopMarginMobile' => '',
73 'imageRightMarginMobile' => '',
74 'imageLeftMarginMobile' => '',
75 'imageBottomMarginMobile' => '',
76 'imageMarginUnit' => 'px',
77 'imageMarginUnitTablet' => 'px',
78 'imageMarginUnitMobile' => 'px',
79 'align' => '',
80 'alignTablet' => '',
81 'alignMobile' => '',
82 // heading.
83 'headingShowOn' => 'always',
84 'headingLoadGoogleFonts' => false,
85 'headingFontFamily' => 'Default',
86 'headingFontWeight' => '',
87 'headingFontStyle' => 'normal',
88 'headingTransform' => '',
89 'headingFontSize' => '',
90 'headingColor' => '#fff',
91 'headingTransform' => '',
92 'headingDecoration' => '',
93 'headingFontSizeType' => 'px',
94 'headingFontSizeTypeTablet' => 'px',
95 'headingFontSizeTypeMobile' => 'px',
96 'headingFontSizeMobile' => '',
97 'headingFontSizeTablet' => '',
98 'headingLineHeight' => 'em',
99 'headingLineHeightType' => 'em',
100 'headingLineHeightMobile' => '',
101 'headingLineHeightTablet' => '',
102 'headingTopMargin' => '',
103 'headingRightMargin' => '',
104 'headingLeftMargin' => '',
105 'headingBottomMargin' => '',
106 'headingTopMarginTablet' => '',
107 'headingRightMarginTablet' => '',
108 'headingLeftMarginTablet' => '',
109 'headingBottomMarginTablet' => '',
110 'headingTopMarginMobile' => '',
111 'headingRightMarginMobile' => '',
112 'headingLeftMarginMobile' => '',
113 'headingBottomMarginMobile' => '',
114 'headingMarginUnit' => 'px',
115 'headingMarginUnitTablet' => 'px',
116 'headingMarginUnitMobile' => 'px',
117 // overlay.
118 'overlayOpacity' => 0.2,
119 'overlayHoverOpacity' => 1,
120 'overlayPositionFromEdge' => 15,
121 'overlayPositionFromEdgeUnit' => 'px',
122 'overlayBackground' => '',
123 // caption.
124 'captionShowOn' => 'hover',
125 'captionAlign' => 'center',
126 'captionColor' => '',
127 'captionLoadGoogleFonts' => false,
128 'captionFontFamily' => '',
129 'captionFontStyle' => 'normal',
130 'captionTransform' => '',
131 'captionDecoration' => '',
132 'captionFontSizeType' => 'px',
133 'captionFontSizeTypeTablet' => 'px',
134 'captionFontSizeTypeMobile' => 'px',
135 'captionLineHeightType' => 'em',
136 'captionFontSize' => '',
137 'captionFontWeight' => '',
138 'captionFontSizeTablet' => '',
139 'captionFontSizeMobile' => '',
140 'captionLineHeight' => '',
141 'captionLineHeightTablet' => '',
142 'captionLineHeightMobile' => '',
143 'captionTopMargin' => '',
144 'captionRightMargin' => '',
145 'captionLeftMargin' => '',
146 'captionBottomMargin' => '',
147 'captionTopMarginTablet' => '',
148 'captionRightMarginTablet' => '',
149 'captionLeftMarginTablet' => '',
150 'captionBottomMarginTablet' => '',
151 'captionTopMarginMobile' => '',
152 'captionRightMarginMobile' => '',
153 'captionLeftMarginMobile' => '',
154 'captionBottomMarginMobile' => '',
155 'captionMarginUnit' => 'px',
156 'captionMarginUnitTablet' => 'px',
157 'captionMarginUnitMobile' => 'px',
158 // separator.
159 'separatorShowOn' => 'hover',
160 'separatorStyle' => '',
161 'separatorColor' => '#fff',
162 'separatorWidth' => 30,
163 'separatorWidthType' => '%',
164 'separatorThickness' => 2,
165 'separatorThicknessUnit' => 'px',
166 'separatorTopMargin' => '',
167 'separatorRightMargin' => '',
168 'separatorLeftMargin' => '',
169 'separatorBottomMargin' => '',
170 'separatorTopMarginTablet' => '',
171 'separatorRightMarginTablet' => '',
172 'separatorLeftMarginTablet' => '',
173 'separatorBottomMarginTablet' => '',
174 'separatorTopMarginMobile' => '',
175 'separatorRightMarginMobile' => '',
176 'separatorLeftMarginMobile' => '',
177 'separatorBottomMarginMobile' => '',
178 'separatorMarginUnit' => 'px',
179 'separatorMarginUnitTablet' => 'px',
180 'separatorMarginUnitMobile' => 'px',
181 // image shadow.
182 'useSeparateBoxShadows' => true,
183 'imageBoxShadowColor' => '#00000070',
184 'imageBoxShadowHOffset' => 0,
185 'imageBoxShadowVOffset' => 0,
186 'imageBoxShadowBlur' => '',
187 'imageBoxShadowSpread' => '',
188 'imageBoxShadowPosition' => 'outset',
189 'imageBoxShadowColorHover' => '',
190 'imageBoxShadowHOffsetHover' => 0,
191 'imageBoxShadowVOffsetHover' => 0,
192 'imageBoxShadowBlurHover' => '',
193 'imageBoxShadowSpreadHover' => '',
194 'imageBoxShadowPositionHover' => 'outset',
195 // mask.
196 'maskShape' => 'none',
197 'maskSize' => 'auto',
198 'maskPosition' => 'center center',
199 'maskRepeat' => 'no-repeat',
200 'objectFit' => '',
201 'objectFitTablet' => '',
202 'objectFitMobile' => '',
203 'headingLetterSpacing' => '',
204 'headingLetterSpacingTablet' => '',
205 'headingLetterSpacingMobile' => '',
206 'headingLetterSpacingType' => 'px',
207 'captionLetterSpacing' => '',
208 'captionLetterSpacingTablet' => '',
209 'captionLetterSpacingMobile' => '',
210 'captionLetterSpacingType' => 'px',
211 'customHeightSetDesktop' => false,
212 'customHeightSetTablet' => false,
213 'customHeightSetMobile' => false,
214 // For Global Block Styles.
215 'globalBlockStyleName' => '',
216 'globalBlockStyleId' => '',
217 ];
218
219 $icon_base_attr = [
220 // Size.
221 'icon' => '',
222 'iconSize' => 40,
223 'iconSizeTablet' => '',
224 'iconSizeMobile' => '',
225 'iconSizeUnit' => 'px',
226 // Alignment.
227 'align' => 'center',
228 'alignTablet' => '',
229 'alignMobile' => '',
230 // Rotation.
231 'rotation' => 0,
232 'rotationUnit' => 'deg',
233 // StyleSettings.
234 'iconView' => 'none',
235 'iconBorderWidth' => 3,
236 // Color.
237 'iconColor' => '#333',
238 'iconBorderColor' => '',
239 'iconBackgroundColorType' => 'classic',
240 'iconBackgroundColor' => '',
241 'iconBackgroundGradientColor' => 'linear-gradient(90deg, rgb(155, 81, 224) 0%, rgb(6, 147, 227) 100%)',
242 'iconHoverColor' => '',
243 'iconHoverBorderColor' => '',
244 'iconHoverBackgroundColorType' => 'classic',
245 'iconHoverBackgroundColor' => '',
246 'iconHoverBackgroundGradientColor' => 'linear-gradient(90deg, rgb(155, 81, 224) 0%, rgb(6, 147, 227) 100%)',
247 // Padding.
248 'iconTopPadding' => 5,
249 'iconRightPadding' => 5,
250 'iconBottomPadding' => 5,
251 'iconLeftPadding' => 5,
252 'iconTopTabletPadding' => '',
253 'iconRightTabletPadding' => '',
254 'iconBottomTabletPadding' => '',
255 'iconLeftTabletPadding' => '',
256 'iconTopMobilePadding' => '',
257 'iconRightMobilePadding' => '',
258 'iconBottomMobilePadding' => '',
259 'iconLeftMobilePadding' => '',
260 'iconPaddingUnit' => 'px',
261 'iconMobilePaddingUnit' => 'px',
262 'iconTabletPaddingUnit' => 'px',
263 // Margin.
264 'iconTopMargin' => '',
265 'iconRightMargin' => '',
266 'iconBottomMargin' => '',
267 'iconLeftMargin' => '',
268 'iconTopTabletMargin' => '',
269 'iconRightTabletMargin' => '',
270 'iconBottomTabletMargin' => '',
271 'iconLeftTabletMargin' => '',
272 'iconTopMobileMargin' => '',
273 'iconRightMobileMargin' => '',
274 'iconBottomMobileMargin' => '',
275 'iconLeftMobileMargin' => '',
276 'iconMarginUnit' => 'px',
277 'iconMobileMarginUnit' => 'px',
278 'iconTabletMarginUnit' => 'px',
279 // Shadow.
280 'iconShadowColor' => '#00000070',
281 'iconShadowHOffset' => 0,
282 'iconShadowVOffset' => 0,
283 'iconShadowBlur' => 0,
284 // Box Shadow.
285 'useSeparateBoxShadows' => true,
286 'iconBoxShadowColor' => '#00000070',
287 'iconBoxShadowHOffset' => 0,
288 'iconBoxShadowVOffset' => 0,
289 'iconBoxShadowBlur' => '',
290 'iconBoxShadowSpread' => '',
291 'iconBoxShadowPosition' => '',
292 'iconBoxShadowColorHover' => '',
293 'iconBoxShadowHOffsetHover' => 0,
294 'iconBoxShadowVOffsetHover' => 0,
295 'iconBoxShadowBlurHover' => '',
296 'iconBoxShadowSpreadHover' => '',
297 'iconBoxShadowPositionHover' => '',
298 // Border.
299 'iconBorderStyle' => 'default',
300 // For Global Block Styles.
301 'globalBlockStyleName' => '',
302 'globalBlockStyleId' => '',
303 ];
304
305 $heading_base_attr = [
306 'classMigrate' => false,
307 'blockBackground' => '',
308 'blockBackgroundType' => 'classic',
309 'blockGradientBackground' => 'linear-gradient(90deg, rgb(6, 147, 227) 0%, rgb(155, 81, 224) 100%)',
310 'headingAlign' => '',
311 'headingAlignTablet' => '',
312 'headingDescPosition' => 'below-heading',
313 'separatorPosition' => 'below-heading',
314 'headingAlignMobile' => '',
315 'headingColor' => '#000',
316 'headingColorType' => 'classic',
317 'headingGradientColor' => 'linear-gradient(90deg, rgb(155, 81, 224) 0%, rgb(6, 147, 227) 100%)',
318 'subHeadingColor' => '#000',
319 'separatorHeightType' => 'px',
320 'separatorSpaceType' => 'px',
321 'separatorColor' => '#0170b9',
322 'separatorStyle' => 'none',
323 'separatorHeight' => 2,
324 'separatorWidth' => 12,
325 'separatorWidthTablet' => '',
326 'separatorWidthMobile' => '',
327 'separatorWidthType' => '%',
328 'headFontFamily' => '',
329 'headLoadGoogleFonts' => false,
330 'headFontWeight' => '',
331 'headFontStyle' => '',
332 'headFontSize' => '',
333 'headFontSizeType' => 'px',
334 'headFontSizeTypeTablet' => 'px',
335 'headFontSizeTypeMobile' => 'px',
336 'headFontSizeTablet' => '',
337 'headFontSizeMobile' => '',
338 'headSpaceType' => 'px',
339 'headLineHeight' => '',
340 'headLineHeightType' => 'em',
341 'headLineHeightTablet' => '',
342 'headLineHeightMobile' => '',
343 'headLetterSpacing' => '',
344 'headLetterSpacingTablet' => '',
345 'headLetterSpacingMobile' => '',
346 'headLetterSpacingType' => 'px',
347 'headShadowColor' => '',
348 'headShadowHOffset' => 0,
349 'headShadowVOffset' => 0,
350 'headShadowBlur' => 10,
351 'subHeadFontFamily' => '',
352 'subHeadLoadGoogleFonts' => false,
353 'subHeadFontWeight' => '',
354 'subHeadFontStyle' => '',
355 'subHeadFontSize' => '',
356 'subHeadFontSizeType' => 'px',
357 'subHeadFontSizeTypeTablet' => 'px',
358 'subHeadFontSizeTypeMobile' => 'px',
359 'subHeadFontSizeTablet' => '',
360 'subHeadFontSizeMobile' => '',
361 'subHeadLineHeight' => '',
362 'subHeadLineHeightType' => 'em',
363 'subHeadLineHeightTablet' => '',
364 'subHeadLineHeightMobile' => '',
365 'subHeadLetterSpacing' => '',
366 'subHeadLetterSpacingTablet' => '',
367 'subHeadLetterSpacingMobile' => '',
368 'subHeadLetterSpacingType' => 'px',
369 'headSpace' => 15,
370 'headSpaceTablet' => '',
371 'headSpaceMobile' => '',
372 'separatorSpace' => 15,
373 'separatorSpaceTablet' => '',
374 'separatorSpaceMobile' => '',
375 'separatorHoverColor' => '',
376 'headTransform' => '',
377 'headDecoration' => '',
378 'subHeadTransform' => '',
379 'subHeadDecoration' => '',
380 // padding.
381 'blockTopPadding' => '',
382 'blockRightPadding' => '',
383 'blockLeftPadding' => '',
384 'blockBottomPadding' => '',
385 'blockTopPaddingTablet' => '',
386 'blockRightPaddingTablet' => '',
387 'blockLeftPaddingTablet' => '',
388 'blockBottomPaddingTablet' => '',
389 'blockTopPaddingMobile' => '',
390 'blockRightPaddingMobile' => '',
391 'blockLeftPaddingMobile' => '',
392 'blockBottomPaddingMobile' => '',
393 'blockPaddingUnit' => 'px',
394 'blockPaddingUnitTablet' => 'px',
395 'blockPaddingUnitMobile' => 'px',
396 'blockPaddingLink' => '',
397 // margin.
398 'blockTopMargin' => '',
399 'blockRightMargin' => '',
400 'blockLeftMargin' => '',
401 'blockBottomMargin' => '',
402 'blockTopMarginTablet' => '',
403 'blockRightMarginTablet' => '',
404 'blockLeftMarginTablet' => '',
405 'blockBottomMarginTablet' => '',
406 'blockTopMarginMobile' => '',
407 'blockRightMarginMobile' => '',
408 'blockLeftMarginMobile' => '',
409 'blockBottomMarginMobile' => '',
410 'blockMarginUnit' => 'px',
411 'blockMarginUnitTablet' => 'px',
412 'blockMarginUnitMobile' => 'px',
413 'blockMarginLink' => '',
414 // link.
415 'linkColor' => '',
416 'linkHColor' => '',
417 // Highlight.
418 'highLightColor' => '#fff',
419 'highLightBackground' => '#007cba',
420 'highLightLoadGoogleFonts' => false,
421 'highLightFontFamily' => 'Default',
422 'highLightFontWeight' => 'Default',
423 'highLightFontStyle' => 'normal',
424 'highLightTransform' => '',
425 'highLightDecoration' => '',
426 'highLightFontSizeType' => 'px',
427 'highLightFontSizeTypeTablet' => 'px',
428 'highLightFontSizeTypeMobile' => 'px',
429 'highLightLineHeightType' => 'em',
430 'highLightFontSize' => '',
431 'highLightFontSizeTablet' => '',
432 'highLightFontSizeMobile' => '',
433 'highLightLineHeight' => '',
434 'highLightLineHeightTablet' => '',
435 'highLightLineHeightMobile' => '',
436 'highLightLetterSpacing' => '',
437 'highLightLetterSpacingTablet' => '',
438 'highLightLetterSpacingMobile' => '',
439 'highLightLetterSpacingType' => 'px',
440 'highLightTopPadding' => '',
441 'highLightRightPadding' => '',
442 'highLightLeftPadding' => '',
443 'highLightBottomPadding' => '',
444 'highLightTopPaddingTablet' => '',
445 'highLightRightPaddingTablet' => '',
446 'highLightLeftPaddingTablet' => '',
447 'highLightBottomPaddingTablet' => '',
448 'highLightTopPaddingMobile' => '',
449 'highLightRightPaddingMobile' => '',
450 'highLightLeftPaddingMobile' => '',
451 'highLightBottomPaddingMobile' => '',
452 'highLightPaddingUnit' => 'px',
453 'highLightPaddingUnitTablet' => 'px',
454 'highLightPaddingUnitMobile' => 'px',
455 'highLightPaddingLink' => '',
456 'subHeadSpace' => 15,
457 'subHeadSpaceMobile' => '',
458 'subHeadSpaceTablet' => '',
459 'subHeadSpaceType' => 'px',
460 'headingDescToggle' => false,
461 // For Global Block Styles.
462 'globalBlockStyleName' => '',
463 'globalBlockStyleId' => '',
464 ];
465
466 if ( null === self::$block_attributes ) {
467 self::$block_attributes = [
468 'srfm/separator' => [
469 'slug' => '',
470 'title' => __( 'Separator', 'sureforms' ),
471 'description' => '',
472 'default' => true,
473 'attributes' => [
474 'separatorAlign' => 'center',
475 'separatorAlignTablet' => 'center',
476 'separatorAlignMobile' => 'center',
477 'separatorStyle' => 'solid',
478 'separatorBorderHeight' => 1,
479 'separatorBorderHeightMobile' => 1,
480 'separatorBorderHeightTablet' => 1,
481 'separatorBorderHeightUnit' => 'px',
482 'separatorWidth' => 100,
483 'separatorWidthTablet' => 100,
484 'separatorWidthMobile' => 100,
485 'separatorWidthType' => '%',
486 'separatorSize' => 5,
487 'separatorSizeTablet' => 5,
488 'separatorSizeMobile' => 5,
489 'separatorSizeType' => 'px',
490 'separatorHeight' => 10,
491 'separatorHeightMobile' => 10,
492 'separatorHeightTablet' => 10,
493 'separatorHeightType' => 'px',
494 'separatorColor' => '#000',
495 'elementType' => 'none',
496 'elementPosition' => 'center',
497 'elementSpacing' => 15,
498 'elementSpacingTablet' => 15,
499 'elementSpacingMobile' => 15,
500 'elementSpacingUnit' => 'px',
501 'elementTextLoadGoogleFonts' => false,
502 'elementTextFontFamily' => 'Default',
503 'elementTextFontWeight' => '',
504 'elementTextFontSize' => '',
505 'elementTextFontSizeType' => 'px',
506 'elementTextFontSizeTablet' => '',
507 'elementTextFontSizeMobile' => '',
508 'elementTextLineHeightType' => 'em',
509 'elementTextLineHeight' => 1,
510 'elementTextLineHeightTablet' => 1,
511 'elementTextLineHeightMobile' => 1,
512 'elementTextFontStyle' => 'normal',
513 'elementTextLetterSpacing' => '',
514 'elementTextLetterSpacingTablet' => '',
515 'elementTextLetterSpacingMobile' => '',
516 'elementTextLetterSpacingType' => 'px',
517 'elementTextDecoration' => '',
518 'elementTextTransform' => '',
519 'elementColor' => '#000',
520 'elementIconWidth' => '',
521 'elementIconWidthTablet' => '',
522 'elementIconWidthMobile' => '',
523 'elementIconWidthType' => 'px',
524
525 // Padding.
526 'blockTopPadding' => '',
527 'blockRightPadding' => '',
528 'blockLeftPadding' => '',
529 'blockBottomPadding' => '',
530 'blockTopPaddingTablet' => '',
531 'blockRightPaddingTablet' => '',
532 'blockLeftPaddingTablet' => '',
533 'blockBottomPaddingTablet' => '',
534 'blockTopPaddingMobile' => '',
535 'blockRightPaddingMobile' => '',
536 'blockLeftPaddingMobile' => '',
537 'blockBottomPaddingMobile' => '',
538 'blockPaddingUnit' => 'px',
539 'blockPaddingUnitTablet' => 'px',
540 'blockPaddingUnitMobile' => 'px',
541
542 // Margin.
543 'blockTopMargin' => '',
544 'blockRightMargin' => '',
545 'blockLeftMargin' => '',
546 'blockBottomMargin' => '',
547 'blockTopMarginTablet' => '',
548 'blockRightMarginTablet' => '',
549 'blockLeftMarginTablet' => '',
550 'blockBottomMarginTablet' => '',
551 'blockTopMarginMobile' => '',
552 'blockRightMarginMobile' => '',
553 'blockLeftMarginMobile' => '',
554 'blockBottomMarginMobile' => '',
555 'blockMarginUnit' => 'px',
556 'blockMarginUnitTablet' => 'px',
557 'blockMarginUnitMobile' => 'px',
558 ],
559 ],
560 'srfm/image' => [
561 'slug' => '',
562 'title' => __( 'Image', 'sureforms' ),
563 'description' => '',
564 'default' => true,
565 'attributes' => array_merge(
566 $image_base_attr,
567 $image_attribute,
568 $overlay_attribute
569 ),
570 ],
571
572 'srfm/icon' => [
573 'slug' => '',
574 'title' => __( 'Icon', 'sureforms' ),
575 'description' => '',
576 'default' => true,
577 'attributes' => array_merge(
578 $icon_border_attribute,
579 $icon_base_attr
580 ),
581 ],
582
583 'srfm/advanced-heading' => [
584 'slug' => '',
585 'title' => __( 'Heading', 'sureforms' ),
586 'description' => '',
587 'default' => true,
588 'attributes' => array_merge(
589 $high_light_border_attribute,
590 $heading_base_attr
591 ),
592
593 ],
594
595 ];
596 }
597 return apply_filters( 'srfm_gutenberg_blocks_attributes', self::$block_attributes );
598 }
599
600 /**
601 * Get Block Assets.
602 *
603 * @since 0.0.1
604 *
605 * @return array The Asset List.
606 */
607 public static function get_block_assets() {
608
609 if ( null === self::$block_assets ) {
610 self::$block_assets = [];
611 }
612
613 return self::$block_assets;
614 }
615
616
617 /**
618 * Get Block Assets.
619 *
620 * @since 0.0.1
621 *
622 * @return array The Asset List.
623 */
624 public static function get_block_assets_css() {
625
626 if ( null === self::$block_assets_css ) {
627 self::$block_assets_css = [
628 'srfm/separator' => [
629 'name' => 'separator',
630 ],
631 'srfm/image' => [
632 'name' => 'image',
633 ],
634 'srfm/icon' => [
635 'name' => 'icon',
636 ],
637 'srfm/advanced-heading' => [
638 'name' => 'advanced-heading',
639 ],
640
641 ];
642 }
643 return self::$block_assets_css;
644 }
645
646 /**
647 * Border attribute generation Function.
648 *
649 * @since 0.0.1
650 * @param array $prefix Attribute Prefix.
651 * @return array
652 */
653 public static function generate_border_attribute( $prefix ) {
654 $defaults = [
655 // Width.
656 'borderTopWidth' => '',
657 'borderRightWidth' => '',
658 'borderBottomWidth' => '',
659 'borderLeftWidth' => '',
660 'borderTopWidthTablet' => '',
661 'borderRightWidthTablet' => '',
662 'borderBottomWidthTablet' => '',
663 'borderLeftWidthTablet' => '',
664 'borderTopWidthMobile' => '',
665 'borderRightWidthMobile' => '',
666 'borderBottomWidthMobile' => '',
667 'borderLeftWidthMobile' => '',
668 // Radius.
669 'borderTopLeftRadius' => '',
670 'borderTopRightRadius' => '',
671 'borderBottomRightRadius' => '',
672 'borderBottomLeftRadius' => '',
673 'borderTopLeftRadiusTablet' => '',
674 'borderTopRightRadiusTablet' => '',
675 'borderBottomRightRadiusTablet' => '',
676 'borderBottomLeftRadiusTablet' => '',
677 'borderTopLeftRadiusMobile' => '',
678 'borderTopRightRadiusMobile' => '',
679 'borderBottomRightRadiusMobile' => '',
680 'borderBottomLeftRadiusMobile' => '',
681 // unit.
682 'borderRadiusUnit' => 'px',
683 'borderRadiusUnitTablet' => 'px',
684 'borderRadiusUnitMobile' => 'px',
685 // common.
686 'borderStyle' => '',
687 'borderColor' => '',
688 'borderHColor' => '',
689
690 ];
691
692 $border_attr = [];
693
694 $device = [ '', 'Tablet', 'Mobile' ];
695
696 foreach ( $device as $slug => $data ) {
697
698 $border_attr[ "{$prefix}BorderTopWidth{$data}" ] = '';
699 $border_attr[ "{$prefix}BorderLeftWidth{$data}" ] = '';
700 $border_attr[ "{$prefix}BorderRightWidth{$data}" ] = '';
701 $border_attr[ "{$prefix}BorderBottomWidth{$data}" ] = '';
702 $border_attr[ "{$prefix}BorderTopLeftRadius{$data}" ] = '';
703 $border_attr[ "{$prefix}BorderTopRightRadius{$data}" ] = '';
704 $border_attr[ "{$prefix}BorderBottomLeftRadius{$data}" ] = '';
705 $border_attr[ "{$prefix}BorderBottomRightRadius{$data}" ] = '';
706 $border_attr[ "{$prefix}BorderRadiusUnit{$data}" ] = 'px';
707 }
708
709 $border_attr[ "{$prefix}BorderStyle" ] = '';
710 $border_attr[ "{$prefix}BorderColor" ] = '';
711 $border_attr[ "{$prefix}BorderHColor" ] = '';
712 return $border_attr;
713 }
714 }
715 }
716