PluginProbe
Borderless – Addons and Templates for Elementor / trunk
Borderless – Addons and Templates for Elementor vtrunk
trunk 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.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 All 78 releases
borderless / modules / elementor / widgets / split-hero.php

split-hero.php in Borderless – Addons and Templates for Elementor trunk, at modules/elementor/widgets/split-hero.php

1,584 lines 46.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Borderless\Widgets;
4
5 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
6
7 use Elementor\Widget_Base;
8 use Elementor\Controls_Manager;
9 use Elementor\Group_Control_Border;
10 use Elementor\Group_Control_Box_Shadow;
11 use Elementor\Group_Control_Image_Size;
12 use \Elementor\Group_Control_Typography;
13 use \Elementor\Group_Control_Background;
14 use \Elementor\Group_Control_Text_Stroke;
15 use \Elementor\Group_Control_Text_Shadow;
16 use \Elementor\Group_Control_Css_Filter;
17 use Elementor\Icons_Manager;
18 use \Elementor\Repeater;
19 use Elementor\Utils;
20
21 class Split_Hero extends Widget_Base {
22
23 public function get_name() {
24 return 'borderless-elementor-split-hero';
25 }
26
27 public function get_title() {
28 return 'Split Hero';
29 }
30
31 public function get_icon() {
32 return 'borderless-icon-split-hero';
33 }
34
35 public function get_categories() {
36 return [ 'borderless' ];
37 }
38
39 public function get_keywords()
40 {
41 return [
42 'hero',
43 'split hero',
44 'title',
45 'title hero',
46 'borderless'
47 ];
48 }
49
50 public function get_style_depends() {
51 return [ 'elementor-widget-split-hero' ];
52 }
53
54 public function get_custom_help_url()
55 {
56 return 'https://visualmodo.com/';
57 }
58
59 protected function _register_controls() {
60
61 /*-----------------------------------------------------------------------------------*/
62 /* *. Hero - Content
63 /*-----------------------------------------------------------------------------------*/
64
65 $this->start_controls_section(
66 'borderless_elementor_section_split_hero_content',
67 [
68 'label' => esc_html__( 'Content', 'borderless' ),
69 'tab' => Controls_Manager::TAB_CONTENT,
70 ]
71 );
72
73 $this->add_control(
74 'borderless_elementor_split_hero_title',
75 [
76 'label' => esc_html__( 'Title', 'borderless'),
77 'type' => Controls_Manager::TEXT,
78 'default' => esc_html__( 'Enter Your Title', 'borderless' ),
79 'label_block' => true,
80 'dynamic' => [ 'active' => true ]
81 ]
82 );
83
84 $this->add_control(
85 'borderless_elementor_split_hero_subtitle',
86 [
87 'label' => esc_html__( 'Subtitle', 'borderless'),
88 'type' => Controls_Manager::TEXT,
89 'default' => esc_html__( 'Enter Your Subtitle', 'borderless' ),
90 'label_block' => true,
91 'dynamic' => [ 'active' => true ]
92 ]
93 );
94
95 $repeater = new Repeater();
96
97 $repeater->start_controls_tabs( 'borderless_elementor_tabs_hero_button_repeater' );
98
99 $repeater->start_controls_tab( 'borderless_elementor_tab_hero_button_content', [ 'label' => __( 'Content', 'borderless' ) ] );
100
101 $repeater->add_control(
102 'borderless_elementor_split_hero_button_item_text',
103 [
104 'label' => esc_html__( 'Button Text', 'borderless'),
105 'type' => Controls_Manager::TEXT,
106 'dynamic' => [ 'active' => true ]
107 ]
108 );
109
110 $repeater->add_control(
111 'borderless_elementor_split_hero_button_item_link',
112 array(
113 'label' => esc_html__( 'Button Link', 'borderless' ),
114 'type' => Controls_Manager::URL,
115 'placeholder' => 'https://your-link.com',
116 'default' => array( 'url' => '#' ),
117 'dynamic' => array( 'active' => true ),
118 )
119 );
120
121 $repeater->add_control(
122 'borderless_elementor_split_hero_button_item_icon',
123 [
124 'label' => esc_html__( 'Icon', 'borderless' ),
125 'type' => Controls_Manager::ICONS,
126 'fa4compatibility' => 'icon',
127 'skin' => 'inline',
128 'label_block' => false,
129 ]
130 );
131
132 $repeater->add_control(
133 'borderless_elementor_split_hero_button_item_icon_align',
134 [
135 'label' => esc_html__( 'Icon Position', 'borderless' ),
136 'type' => Controls_Manager::SELECT,
137 'default' => 'left',
138 'options' => [
139 'left' => esc_html__( 'Before', 'borderless' ),
140 'right' => esc_html__( 'After', 'borderless' ),
141 ],
142 ]
143 );
144
145 $repeater->add_responsive_control(
146 'borderless_elementor_split_hero_button_item_icon_indent',
147 [
148 'label' => __( 'Icon Spacing', 'borderless' ),
149 'type' => \Elementor\Controls_Manager::NUMBER,
150 'min' => 0,
151 'max' => 100,
152 'step' => 1,
153 'default' => 10,
154 'selectors' => [
155 '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}' => 'gap: {{VALUE}}px',
156 ],
157 ]
158 );
159
160 $repeater->end_controls_tab();
161
162 $repeater->start_controls_tab( 'borderless_elementor_tab_hero_button_style', [ 'label' => __( 'Style', 'borderless' ) ] );
163
164 $repeater->add_control(
165 'borderless_elementor_split_hero_button_custom_style',
166 [
167 'label' => __( 'Custom', 'borderless' ),
168 'type' => Controls_Manager::SWITCHER,
169 'description' => __( 'Set custom style that will only affect this specific button.', 'borderless' ),
170 ]
171 );
172
173 $repeater->add_group_control(
174 Group_Control_Typography::get_type(),
175 [
176 'name' => 'borderless_elementor_split_hero_button_typography_custom',
177 'label' => __('Typography', 'borderless'),
178 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}',
179 'conditions' => [
180 'terms' => [
181 [
182 'name' => 'borderless_elementor_split_hero_button_custom_style',
183 'value' => 'yes',
184 ],
185 ],
186 ],
187 ]
188 );
189
190 $repeater->add_group_control(
191 Group_Control_Text_Shadow::get_type(),
192 [
193 'name' => 'borderless_elementor_split_hero_button_text_shadow_custom',
194 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}',
195 'conditions' => [
196 'terms' => [
197 [
198 'name' => 'borderless_elementor_split_hero_button_custom_style',
199 'value' => 'yes',
200 ],
201 ],
202 ],
203 ]
204 );
205
206 $repeater->add_control(
207 'borderless_elementor_split_hero_button_heading_normal_custom',
208 [
209 'label' => esc_html__( 'Normal', 'borderless' ),
210 'type' => \Elementor\Controls_Manager::HEADING,
211 'separator' => 'before',
212 'conditions' => [
213 'terms' => [
214 [
215 'name' => 'borderless_elementor_split_hero_button_custom_style',
216 'value' => 'yes',
217 ],
218 ],
219 ],
220 ]
221 );
222
223 $repeater->add_control(
224 'borderless_elementor_split_hero_button_text_color_custom',
225 [
226 'label' => __( 'Text Color', 'borderless' ),
227 'type' => Controls_Manager::COLOR,
228 'selectors' => [
229 '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}' => 'color: {{VALUE}};',
230 ],
231 'conditions' => [
232 'terms' => [
233 [
234 'name' => 'borderless_elementor_split_hero_button_custom_style',
235 'value' => 'yes',
236 ],
237 ],
238 ],
239 ]
240 );
241
242 $repeater->add_group_control(
243 Group_Control_Background::get_type(),
244 [
245 'name' => 'borderless_elementor_split_hero_button_background_custom',
246 'label' => __( 'Background', 'borderless' ),
247 'types' => [ 'classic', 'gradient' ],
248 'exclude' => [ 'image' ],
249 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}',
250 'conditions' => [
251 'terms' => [
252 [
253 'name' => 'borderless_elementor_split_hero_button_custom_style',
254 'value' => 'yes',
255 ],
256 ],
257 ],
258 ]
259 );
260
261 $repeater->add_control(
262 'borderless_elementor_split_hero_button_heading_hover_custom',
263 [
264 'label' => esc_html__( 'Hover', 'borderless' ),
265 'type' => \Elementor\Controls_Manager::HEADING,
266 'separator' => 'before',
267 'conditions' => [
268 'terms' => [
269 [
270 'name' => 'borderless_elementor_split_hero_button_custom_style',
271 'value' => 'yes',
272 ],
273 ],
274 ],
275 ]
276 );
277
278 $repeater->add_control(
279 'borderless_elementor_split_hero_button_text_color_hover_custom',
280 [
281 'label' => __( 'Hover Text Color', 'borderless' ),
282 'type' => Controls_Manager::COLOR,
283 'selectors' => [
284 '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}:hover' => 'color: {{VALUE}};',
285 ],
286 'conditions' => [
287 'terms' => [
288 [
289 'name' => 'borderless_elementor_split_hero_button_custom_style',
290 'value' => 'yes',
291 ],
292 ],
293 ],
294 ]
295 );
296
297 $repeater->add_group_control(
298 Group_Control_Background::get_type(),
299 [
300 'name' => 'borderless_elementor_split_hero_button_background_hover_custom',
301 'label' => __( 'Hover Background', 'borderless' ),
302 'types' => [ 'classic', 'gradient' ],
303 'exclude' => [ 'image' ],
304 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}:hover',
305 'conditions' => [
306 'terms' => [
307 [
308 'name' => 'borderless_elementor_split_hero_button_custom_style',
309 'value' => 'yes',
310 ],
311 ],
312 ],
313 ]
314 );
315
316 $repeater->add_control(
317 'borderless_elementor_split_hero_button_border_color_hover_custom',
318 [
319 'label' => __( 'Hover Border Color', 'borderless' ),
320 'type' => Controls_Manager::COLOR,
321 'selectors' => [
322 '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}:hover' => 'border-color: {{VALUE}};',
323 ],
324 'conditions' => [
325 'terms' => [
326 [
327 'name' => 'borderless_elementor_split_hero_button_custom_style',
328 'value' => 'yes',
329 ],
330 ],
331 ],
332 ]
333 );
334
335 $repeater->add_group_control(
336 Group_Control_Border::get_type(),
337 [
338 'name' => 'borderless_elementor_split_hero_button_border_custom',
339 'label' => esc_html__( 'Border', 'borderless'),
340 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}',
341 'separator' => 'before',
342 'conditions' => [
343 'terms' => [
344 [
345 'name' => 'borderless_elementor_split_hero_button_custom_style',
346 'value' => 'yes',
347 ],
348 ],
349 ],
350 ]
351 );
352
353 $repeater->add_control(
354 'borderless_elementor_split_hero_button_border_radius_custom',
355 [
356 'label' => esc_html__( 'Border Radius', 'borderless'),
357 'type' => Controls_Manager::DIMENSIONS,
358 'size_units' => [ 'px', '%', 'em' ],
359 'selectors' => [
360 '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
361 ],
362 'conditions' => [
363 'terms' => [
364 [
365 'name' => 'borderless_elementor_split_hero_button_custom_style',
366 'value' => 'yes',
367 ],
368 ],
369 ],
370 ]
371 );
372
373 $repeater->add_group_control(
374 Group_Control_Box_Shadow::get_type(),
375 [
376 'name' => 'borderless_elementor_split_hero_button_box_shadow_custom',
377 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}',
378 'conditions' => [
379 'terms' => [
380 [
381 'name' => 'borderless_elementor_split_hero_button_custom_style',
382 'value' => 'yes',
383 ],
384 ],
385 ],
386 ]
387 );
388
389 $repeater->add_responsive_control(
390 'borderless_elementor_split_hero_button_padding_custom',
391 [
392 'label' => esc_html__( 'Padding', 'borderless'),
393 'type' => Controls_Manager::DIMENSIONS,
394 'separator' => 'before',
395 'size_units' => [ 'px', 'em', '%' ],
396 'selectors' => [
397 '{{WRAPPER}} .borderless-elementor-split-hero {{CURRENT_ITEM}}' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
398 ],
399 'conditions' => [
400 'terms' => [
401 [
402 'name' => 'borderless_elementor_split_hero_button_custom_style',
403 'value' => 'yes',
404 ],
405 ],
406 ],
407 ]
408 );
409
410 $repeater->end_controls_tab();
411
412 $repeater->end_controls_tabs();
413
414 $this->add_control(
415 'borderless_elementor_split_hero_button_item_strings',
416 [
417 'type' => Controls_Manager::REPEATER,
418 'show_label' => true,
419 'fields' => $repeater->get_controls(),
420 'title_field' => '{{ borderless_elementor_split_hero_button_item_text }}',
421 'default' => [
422 ['borderless_elementor_split_hero_button_item_text' => esc_html__('Button', 'borderless')],
423 ],
424 ]
425 );
426
427 $this->end_controls_section();
428
429
430
431 /*-----------------------------------------------------------------------------------*/
432 /* *. Hero/Settings - Content
433 /*-----------------------------------------------------------------------------------*/
434
435 $this->start_controls_section(
436 'borderless_elementor_section_split_hero_settings',
437 [
438 'label' => esc_html__( 'Settings', 'borderless' ),
439 'tab' => Controls_Manager::TAB_CONTENT,
440 ]
441 );
442
443 $this->add_control(
444 'borderless_elementor_split_hero_show_title',
445 [
446 'label' => __( 'Show Title', 'borderless' ),
447 'type' => \Elementor\Controls_Manager::SWITCHER,
448 'return_value' => 'true',
449 'default' => 'true',
450 ]
451 );
452
453 $this->add_control(
454 'borderless_elementor_split_hero_show_subtitle',
455 [
456 'label' => __( 'Show Subtitle', 'borderless' ),
457 'type' => \Elementor\Controls_Manager::SWITCHER,
458 'return_value' => 'true',
459 'default' => 'true',
460 ]
461 );
462
463 $this->add_control(
464 'borderless_elementor_split_hero_show_buttons',
465 [
466 'label' => __( 'Show Buttons', 'borderless' ),
467 'type' => \Elementor\Controls_Manager::SWITCHER,
468 'return_value' => 'true',
469 'default' => '',
470 ]
471 );
472
473 $this->add_control(
474 'borderless_elementor_split_hero_title_html_tag',
475 [
476 'label' => esc_html__( 'Title HTML Tag', 'borderless' ),
477 'type' => Controls_Manager::SELECT,
478 'options' => [
479 'h1' => 'H1',
480 'h2' => 'H2',
481 'h3' => 'H3',
482 'h4' => 'H4',
483 'h5' => 'H5',
484 'h6' => 'H6',
485 'div' => 'div',
486 'span' => 'span',
487 'p' => 'p',
488 ],
489 'default' => 'h1',
490 'condition' => array(
491 'borderless_elementor_split_hero_show_title' => 'true',
492 ),
493 ]
494 );
495
496 $this->add_control(
497 'borderless_elementor_split_hero_subtitle_html_tag',
498 [
499 'label' => esc_html__( 'Subtitle HTML Tag', 'borderless' ),
500 'type' => Controls_Manager::SELECT,
501 'options' => [
502 'h1' => 'H1',
503 'h2' => 'H2',
504 'h3' => 'H3',
505 'h4' => 'H4',
506 'h5' => 'H5',
507 'h6' => 'H6',
508 'div' => 'div',
509 'span' => 'span',
510 'p' => 'p',
511 ],
512 'default' => 'span',
513 'condition' => array(
514 'borderless_elementor_split_hero_show_subtitle' => 'true',
515 ),
516 ]
517 );
518
519 $this->add_control(
520 'borderless_elementor_split_hero_animation',
521 [
522 'label' => esc_html__( 'Hero Animation', 'borderless' ),
523 'type' => \Elementor\Controls_Manager::ANIMATION,
524 'prefix_class' => 'animated ',
525 'separator' => 'before',
526 ]
527 );
528
529 $this->add_responsive_control(
530 'borderless_elementor_split_hero_direction',
531 [
532 'label' => esc_html__( 'Direction', 'borderless' ),
533 'type' => Controls_Manager::SELECT,
534 'default' => '0',
535 'options' => [
536 '0' => esc_html__( 'Default', 'borderless' ),
537 '1' => esc_html__( 'Reverse', 'borderless' ),
538 ],
539 'selectors' => [
540 '{{WRAPPER}} .borderless-elementor-split-hero__container .borderless-elementor-split-hero__image' => 'order: {{VALUE}}',
541 ],
542 ]
543 );
544
545 $this->end_controls_section();
546
547 /*-----------------------------------------------------------------------------------*/
548 /* *. Split Hero/Split Hero - Style
549 /*-----------------------------------------------------------------------------------*/
550
551 $this->start_controls_section(
552 'borderless_elementor_section_split_hero_style',
553 [
554 'label' => esc_html__( 'Split Hero', 'borderless'),
555 'tab' => Controls_Manager::TAB_STYLE
556 ]
557 );
558
559 $this->add_responsive_control(
560 'borderless_elementor_split_hero_height',
561 [
562 'label' => esc_html__( 'Height', 'borderless'),
563 'type' => Controls_Manager::SLIDER,
564 'size_units' => [ 'px', 'vh' ],
565 'range' => [
566 'px' => [
567 'min' => 100,
568 'max' => 9999,
569 ],
570 'vh' => [
571 'min' => 10,
572 'max' => 100,
573 ],
574 ],
575 'default' => [
576 'unit' => 'vh',
577 'size' => '100'
578 ],
579 'selectors' => [
580 '{{WRAPPER}} .borderless-elementor-split-hero__container' => 'min-height: {{SIZE}}{{UNIT}};',
581 ],
582 ]
583 );
584
585 $this->add_responsive_control(
586 'borderless_elementor_split_hero_width',
587 [
588 'label' => esc_html__( 'Width', 'borderless'),
589 'type' => Controls_Manager::SLIDER,
590 'size_units' => [ '%' ],
591 'range' => [
592 '%' => [
593 'min' => 20,
594 'max' => 100,
595 ],
596 ],
597 'default' => [
598 'unit' => '%',
599 'size' => '80'
600 ],
601 'selectors' => [
602 '{{WRAPPER}} .borderless-elementor-split-hero__content-inner' => 'width: {{SIZE}}{{UNIT}};',
603 ],
604 ]
605 );
606
607 $this->add_responsive_control(
608 'borderless_elementor_split_hero_gap',
609 [
610 'label' => esc_html__( 'Gap', 'borderless'),
611 'type' => Controls_Manager::SLIDER,
612 'size_units' => [ 'px', '%', 'vh','vw' ],
613 'range' => [
614 'px' => [
615 'min' => 0,
616 'max' => 500,
617 ],
618 '%' => [
619 'min' => 0,
620 'max' => 100,
621 ],
622 'vh' => [
623 'min' => 0,
624 'max' => 100,
625 ],
626 'vw' => [
627 'min' => 0,
628 'max' => 100,
629 ],
630 ],
631 'default' => [
632 'unit' => 'px',
633 'size' => '0'
634 ],
635 'selectors' => [
636 '{{WRAPPER}} .borderless-elementor-split-hero__container' => 'gap: {{SIZE}}{{UNIT}};',
637 ],
638 ]
639 );
640
641 $this->add_control(
642 'borderless_elementor_split_hero_vertical_position',
643 [
644 'label' => __( 'Vertical Position', 'borderless' ),
645 'type' => Controls_Manager::CHOOSE,
646 'default' => 'center',
647 'options' => [
648 'flex-start' => [
649 'title' => __( 'Top', 'borderless' ),
650 'icon' => 'eicon-v-align-top',
651 ],
652 'center' => [
653 'title' => __( 'Center', 'borderless' ),
654 'icon' => 'eicon-v-align-middle',
655 ],
656 'flex-end' => [
657 'title' => __( 'Bottom', 'borderless' ),
658 'icon' => 'eicon-v-align-bottom',
659 ],
660 ],
661 'default' => 'center',
662 'selectors' => [
663 '{{WRAPPER}} .borderless-elementor-split-hero__content' => 'align-items: {{VALUE}}',
664 ],
665 ]
666 );
667
668 $this->add_control(
669 'borderless_elementor_split_hero_horizontal_position',
670 [
671 'label' => __( 'Horizontal Position', 'borderless' ),
672 'type' => Controls_Manager::CHOOSE,
673 'default' => 'center',
674 'options' => [
675 'flex-start' => [
676 'title' => __( 'Left', 'borderless' ),
677 'icon' => 'eicon-h-align-left',
678 ],
679 'center' => [
680 'title' => __( 'Center', 'borderless' ),
681 'icon' => 'eicon-h-align-center',
682 ],
683 'flex-end' => [
684 'title' => __( 'Right', 'borderless' ),
685 'icon' => 'eicon-h-align-right',
686 ],
687 ],
688 'default' => 'center',
689 'selectors' => [
690 '{{WRAPPER}} .borderless-elementor-split-hero__content' => 'justify-content: {{VALUE}}',
691 ],
692 ]
693 );
694
695 $this->add_control(
696 'borderless_elementor_split_hero_title_align',
697 [
698 'label' => __( 'Title Align', 'borderless' ),
699 'type' => Controls_Manager::CHOOSE,
700 'options' => [
701 'start' => [
702 'title' => __( 'Left', 'borderless' ),
703 'icon' => 'eicon-text-align-left',
704 ],
705 'center' => [
706 'title' => __( 'Center', 'borderless' ),
707 'icon' => 'eicon-text-align-center',
708 ],
709 'end' => [
710 'title' => __( 'Right', 'borderless' ),
711 'icon' => 'eicon-text-align-right',
712 ],
713 ],
714 'default' => 'center',
715 'selectors' => [
716 '{{WRAPPER}} .borderless-elementor-split-hero__title' => 'text-align: {{VALUE}}',
717 ],
718 ]
719 );
720
721 $this->add_control(
722 'borderless_elementor_split_hero_subtitle_align',
723 [
724 'label' => __( 'Subtitle Align', 'borderless' ),
725 'type' => Controls_Manager::CHOOSE,
726 'options' => [
727 'start' => [
728 'title' => __( 'Left', 'borderless' ),
729 'icon' => 'eicon-text-align-left',
730 ],
731 'center' => [
732 'title' => __( 'Center', 'borderless' ),
733 'icon' => 'eicon-text-align-center',
734 ],
735 'end' => [
736 'title' => __( 'Right', 'borderless' ),
737 'icon' => 'eicon-text-align-right',
738 ],
739 ],
740 'default' => 'center',
741 'selectors' => [
742 '{{WRAPPER}} .borderless-elementor-split-hero__subtitle' => 'text-align: {{VALUE}}',
743 ],
744 ]
745 );
746
747 $this->add_control(
748 'borderless_elementor_split_hero_button_align',
749 [
750 'label' => __( 'Button Align', 'borderless' ),
751 'type' => Controls_Manager::CHOOSE,
752 'options' => [
753 'flex-start' => [
754 'title' => __( 'Left', 'borderless' ),
755 'icon' => 'eicon-text-align-left',
756 ],
757 'center' => [
758 'title' => __( 'Center', 'borderless' ),
759 'icon' => 'eicon-text-align-center',
760 ],
761 'flex-end' => [
762 'title' => __( 'Right', 'borderless' ),
763 'icon' => 'eicon-text-align-right',
764 ],
765 ],
766 'default' => 'center',
767 'selectors' => [
768 '{{WRAPPER}} .borderless-elementor-split-hero__buttons' => 'justify-content: {{VALUE}}',
769 ],
770 ]
771 );
772
773 $this->add_responsive_control(
774 'borderless_elementor_split_hero_padding',
775 [
776 'label' => esc_html__( 'Padding', 'borderless'),
777 'type' => Controls_Manager::DIMENSIONS,
778 'separator' => 'before',
779 'size_units' => [ 'px', 'em', '%', 'rem' ],
780 'selectors' => [
781 '{{WRAPPER}} .borderless-elementor-split-hero__container' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
782 ],
783 ]
784 );
785
786 $this->end_controls_section();
787
788
789 /*-----------------------------------------------------------------------------------*/
790 /* *. Split Hero/Image - Style
791 /*-----------------------------------------------------------------------------------*/
792
793 $this->start_controls_section(
794 'borderless_elementor_section_split_image_style',
795 [
796 'label' => esc_html__( 'Image', 'borderless'),
797 'tab' => Controls_Manager::TAB_STYLE
798 ]
799 );
800
801 $this->start_controls_tabs( 'borderless_elementor_tabs_image_style' );
802
803 $this->start_controls_tab( 'borderless_elementor_tab_normal_image_style',
804 [
805 'label' => __( 'Normal', 'borderless' ),
806 ]
807 );
808
809 $this->add_group_control(
810 Group_Control_Background::get_type(),
811 [
812 'name' => 'borderless_elementor_split_hero_image',
813 'label' => __( 'Background', 'borderless' ),
814 'types' => [ 'classic', 'gradient' ],
815 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__image',
816 'fields_options' => [
817 'background' => [
818 'default' => 'classic',
819 ],
820 'color' => [
821 'default' => '#000000',
822 ],
823 ],
824 ]
825 );
826
827 $this->end_controls_tab();
828
829 $this->start_controls_tab( 'borderless_elementor_tab_hover_image_style',
830 [
831 'label' => __( 'Hover', 'borderless' ),
832 ]
833 );
834
835 $this->add_group_control(
836 Group_Control_Background::get_type(),
837 [
838 'name' => 'borderless_elementor_split_image_hover',
839 'label' => __( 'Background', 'borderless' ),
840 'types' => [ 'classic', 'gradient' ],
841 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero:hover .borderless-elementor-split-hero__image',
842 ]
843 );
844
845 $this->add_control(
846 'borderless_elementor_split_image_hover_transition',
847 [
848 'label' => __( 'Transition Duration', 'borderless' ),
849 'type' => Controls_Manager::SLIDER,
850 'separator' => 'before',
851 'range' => [
852 'px' => [
853 'max' => 3,
854 'step' => 0.1,
855 ],
856 ],
857 'default' => [
858 'size' => 0.3,
859 ],
860 'selectors' => [
861 '{{WRAPPER}} .borderless-elementor-split-hero' => 'transition-duration: {{SIZE}}s',
862 ],
863 ]
864 );
865
866 $this->end_controls_tab();
867
868 $this->end_controls_tabs();
869
870 $this->end_controls_section();
871
872
873 /*-----------------------------------------------------------------------------------*/
874 /* *. Split Hero/Content - Style
875 /*-----------------------------------------------------------------------------------*/
876
877 $this->start_controls_section(
878 'borderless_elementor_section_split_hero_content_style',
879 [
880 'label' => esc_html__( 'Content', 'borderless'),
881 'tab' => Controls_Manager::TAB_STYLE
882 ]
883 );
884
885 $this->start_controls_tabs( 'borderless_elementor_tabs_hero_content_style' );
886
887 $this->start_controls_tab( 'borderless_elementor_tab_normal_hero_content_style',
888 [
889 'label' => __( 'Normal', 'borderless' ),
890 ]
891 );
892
893 $this->add_group_control(
894 Group_Control_Background::get_type(),
895 [
896 'name' => 'borderless_elementor_split_hero_content',
897 'label' => __( 'Background', 'borderless' ),
898 'types' => [ 'classic', 'gradient' ],
899 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero-widget .borderless-elementor-split-hero .borderless-elementor-split-hero__content',
900 ]
901 );
902
903 $this->add_control(
904 'borderless_elementor_split_hero_content_opacity',
905 [
906 'label' => __( 'Opacity', 'borderless' ),
907 'type' => Controls_Manager::SLIDER,
908 'range' => [
909 'px' => [
910 'max' => 1,
911 'min' => 0.10,
912 'step' => 0.01,
913 ],
914 ],
915 'selectors' => [
916 '{{WRAPPER}} .borderless-elementor-split-hero-widget .borderless-elementor-split-hero .borderless-elementor-split-hero__content' => 'opacity: {{SIZE}};',
917 ],
918 ]
919 );
920
921 $this->add_group_control(
922 Group_Control_Css_Filter::get_type(),
923 [
924 'name' => 'borderless_elementor_split_hero_content_css_filter',
925 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero-widget .borderless-elementor-split-hero .borderless-elementor-split-hero__content',
926 ]
927 );
928
929 $this->end_controls_tab();
930
931 $this->start_controls_tab( 'borderless_elementor_tab_hover_hero_content_style',
932 [
933 'label' => __( 'Hover', 'borderless' ),
934 ]
935 );
936
937 $this->add_group_control(
938 Group_Control_Background::get_type(),
939 [
940 'name' => 'borderless_elementor_split_hero_content_hover',
941 'label' => __( 'Background', 'borderless' ),
942 'types' => [ 'classic', 'gradient' ],
943 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero:hover .borderless-elementor-split-hero__content',
944 ]
945 );
946
947 $this->add_control(
948 'borderless_elementor_split_hero_content_hover_opacity',
949 [
950 'label' => __( 'Opacity', 'borderless' ),
951 'type' => Controls_Manager::SLIDER,
952 'range' => [
953 'px' => [
954 'max' => 1,
955 'min' => 0.10,
956 'step' => 0.01,
957 ],
958 ],
959 'selectors' => [
960 '{{WRAPPER}} .borderless-elementor-split-hero:hover .borderless-elementor-split-hero__content' => 'opacity: {{SIZE}};',
961 ],
962 ]
963 );
964
965 $this->add_group_control(
966 Group_Control_Css_Filter::get_type(),
967 [
968 'name' => 'borderless_elementor_split_hero_content_hover_css_filter',
969 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero:hover .borderless-elementor-split-hero__content',
970 ]
971 );
972
973 $this->add_control(
974 'borderless_elementor_split_hero_content_hover_transition',
975 [
976 'label' => __( 'Transition Duration', 'borderless' ),
977 'type' => Controls_Manager::SLIDER,
978 'separator' => 'before',
979 'range' => [
980 'px' => [
981 'max' => 3,
982 'step' => 0.1,
983 ],
984 ],
985 'default' => [
986 'size' => 0.3,
987 ],
988 'selectors' => [
989 '{{WRAPPER}} .borderless-elementor-split-hero:hover .borderless-elementor-split-hero__content' => 'transition-duration: {{SIZE}}s',
990 ],
991 ]
992 );
993
994 $this->end_controls_tab();
995
996 $this->end_controls_tabs();
997
998 $this->end_controls_section();
999
1000
1001 /*-----------------------------------------------------------------------------------*/
1002 /* *. Hero/Title - Style
1003 /*-----------------------------------------------------------------------------------*/
1004
1005 $this->start_controls_section(
1006 'borderless_elementor_section_split_hero_title_style',
1007 [
1008 'label' => esc_html__( 'Title', 'borderless'),
1009 'tab' => Controls_Manager::TAB_STYLE
1010 ]
1011 );
1012
1013 $this->add_responsive_control(
1014 'borderless_elementor_split_hero_title_color',
1015 [
1016 'label' => __( 'Text Color', 'borderless' ),
1017 'type' => Controls_Manager::COLOR,
1018 'selectors' => [
1019 '{{WRAPPER}} .borderless-elementor-split-hero__title' => 'color: {{VALUE}};',
1020 ],
1021 ]
1022 );
1023
1024 $this->add_group_control(
1025 Group_Control_Typography::get_type(),
1026 [
1027 'name' => 'borderless_elementor_split_hero_title_typography',
1028 'label' => __('Typography', 'borderless'),
1029 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__title',
1030 ]
1031 );
1032
1033 $this->add_group_control(
1034 Group_Control_Text_Stroke::get_type(),
1035 [
1036 'name' => 'borderless_elementor_split_hero_title_text_stroke',
1037 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__title',
1038 ]
1039 );
1040
1041 $this->add_group_control(
1042 Group_Control_Text_Shadow::get_type(),
1043 [
1044 'name' => 'borderless_elementor_split_hero_title_text_shadow',
1045 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__title',
1046 ]
1047 );
1048
1049 $this->add_control(
1050 'borderless_elementor_split_hero_title_blend_mode',
1051 [
1052 'label' => esc_html__( 'Blend Mode', 'borderless' ),
1053 'type' => Controls_Manager::SELECT,
1054 'options' => [
1055 '' => esc_html__( 'Normal', 'borderless' ),
1056 'multiply' => 'Multiply',
1057 'screen' => 'Screen',
1058 'overlay' => 'Overlay',
1059 'darken' => 'Darken',
1060 'lighten' => 'Lighten',
1061 'color-dodge' => 'Color Dodge',
1062 'saturation' => 'Saturation',
1063 'color' => 'Color',
1064 'difference' => 'Difference',
1065 'exclusion' => 'Exclusion',
1066 'hue' => 'Hue',
1067 'luminosity' => 'Luminosity',
1068 ],
1069 'selectors' => [
1070 '{{WRAPPER}} .borderless-elementor-split-hero__title' => 'mix-blend-mode: {{VALUE}}',
1071 ],
1072 'separator' => 'none',
1073 ]
1074 );
1075
1076 $this->add_responsive_control(
1077 'borderless_elementor_split_hero_title_padding',
1078 [
1079 'label' => esc_html__( 'Padding', 'borderless'),
1080 'type' => Controls_Manager::DIMENSIONS,
1081 'separator' => 'before',
1082 'size_units' => [ 'px', 'em', '%', 'rem' ],
1083 'selectors' => [
1084 '{{WRAPPER}} .borderless-elementor-split-hero__title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1085 ],
1086 ]
1087 );
1088
1089 $this->add_responsive_control(
1090 'borderless_elementor_split_hero_title_margin',
1091 [
1092 'label' => esc_html__( 'Margin', 'borderless'),
1093 'type' => Controls_Manager::DIMENSIONS,
1094 'size_units' => [ 'px', 'em', '%', 'rem' ],
1095 'selectors' => [
1096 '{{WRAPPER}} .borderless-elementor-split-hero__title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1097 ],
1098 ]
1099 );
1100
1101 $this->add_group_control(
1102 Group_Control_Border::get_type(),
1103 [
1104 'name' => 'borderless_elementor_split_hero_title_border',
1105 'label' => esc_html__( 'Border', 'borderless'),
1106 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__title',
1107 ]
1108 );
1109
1110 $this->add_responsive_control(
1111 'borderless_elementor_split_hero_title_radius',
1112 [
1113 'label' => esc_html__( 'Border Radius', 'borderless'),
1114 'type' => Controls_Manager::DIMENSIONS,
1115 'selectors' => [
1116 '{{WRAPPER}} .borderless-elementor-split-hero__title' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
1117 ],
1118 ]
1119 );
1120
1121 $this->add_group_control(
1122 Group_Control_Box_Shadow::get_type(),
1123 [
1124 'name' => 'borderless_elementor_split_hero_title_box_shadow',
1125 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__title',
1126 ]
1127 );
1128
1129 $this->end_controls_section();
1130
1131
1132 /*-----------------------------------------------------------------------------------*/
1133 /* *. Hero/Subtitle - Style
1134 /*-----------------------------------------------------------------------------------*/
1135
1136 $this->start_controls_section(
1137 'borderless_elementor_section_split_hero_subtitle_style',
1138 [
1139 'label' => esc_html__( 'Subtitle', 'borderless'),
1140 'tab' => Controls_Manager::TAB_STYLE
1141 ]
1142 );
1143
1144 $this->add_responsive_control(
1145 'borderless_elementor_split_hero_subtitle_color',
1146 [
1147 'label' => __( 'Text Color', 'borderless' ),
1148 'type' => Controls_Manager::COLOR,
1149 'selectors' => [
1150 '{{WRAPPER}} .borderless-elementor-split-hero__subtitle' => 'color: {{VALUE}};',
1151 ],
1152 ]
1153 );
1154
1155 $this->add_group_control(
1156 Group_Control_Typography::get_type(),
1157 [
1158 'name' => 'borderless_elementor_split_hero_subtitle_typography',
1159 'label' => __('Typography', 'borderless'),
1160 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__subtitle',
1161 ]
1162 );
1163
1164 $this->add_group_control(
1165 Group_Control_Text_Stroke::get_type(),
1166 [
1167 'name' => 'borderless_elementor_split_hero_subtitle_text_stroke',
1168 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__subtitle',
1169 ]
1170 );
1171
1172 $this->add_group_control(
1173 Group_Control_Text_Shadow::get_type(),
1174 [
1175 'name' => 'borderless_elementor_split_hero_subtitle_text_shadow',
1176 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__subtitle',
1177 ]
1178 );
1179
1180 $this->add_control(
1181 'borderless_elementor_split_hero_subtitle_blend_mode',
1182 [
1183 'label' => esc_html__( 'Blend Mode', 'borderless' ),
1184 'type' => Controls_Manager::SELECT,
1185 'options' => [
1186 '' => esc_html__( 'Normal', 'borderless' ),
1187 'multiply' => 'Multiply',
1188 'screen' => 'Screen',
1189 'overlay' => 'Overlay',
1190 'darken' => 'Darken',
1191 'lighten' => 'Lighten',
1192 'color-dodge' => 'Color Dodge',
1193 'saturation' => 'Saturation',
1194 'color' => 'Color',
1195 'difference' => 'Difference',
1196 'exclusion' => 'Exclusion',
1197 'hue' => 'Hue',
1198 'luminosity' => 'Luminosity',
1199 ],
1200 'selectors' => [
1201 '{{WRAPPER}} .borderless-elementor-split-hero__subtitle' => 'mix-blend-mode: {{VALUE}}',
1202 ],
1203 'separator' => 'none',
1204 ]
1205 );
1206
1207 $this->add_responsive_control(
1208 'borderless_elementor_split_hero_subtitle_padding',
1209 [
1210 'label' => esc_html__( 'Padding', 'borderless'),
1211 'type' => Controls_Manager::DIMENSIONS,
1212 'separator' => 'before',
1213 'size_units' => [ 'px', 'em', '%', 'rem' ],
1214 'selectors' => [
1215 '{{WRAPPER}} .borderless-elementor-split-hero__subtitle' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1216 ],
1217 ]
1218 );
1219
1220 $this->add_responsive_control(
1221 'borderless_elementor_split_hero_subtitle_margin',
1222 [
1223 'label' => esc_html__( 'Margin', 'borderless'),
1224 'type' => Controls_Manager::DIMENSIONS,
1225 'size_units' => [ 'px', 'em', '%', 'rem' ],
1226 'selectors' => [
1227 '{{WRAPPER}} .borderless-elementor-split-hero__subtitle' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1228 ],
1229 ]
1230 );
1231
1232 $this->add_group_control(
1233 Group_Control_Border::get_type(),
1234 [
1235 'name' => 'borderless_elementor_split_hero_subtitle_border',
1236 'label' => esc_html__( 'Border', 'borderless'),
1237 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__subtitle',
1238 ]
1239 );
1240
1241 $this->add_responsive_control(
1242 'borderless_elementor_split_hero_subtitle_radius',
1243 [
1244 'label' => esc_html__( 'Border Radius', 'borderless'),
1245 'type' => Controls_Manager::DIMENSIONS,
1246 'selectors' => [
1247 '{{WRAPPER}} .borderless-elementor-split-hero__subtitle' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
1248 ],
1249 ]
1250 );
1251
1252 $this->add_group_control(
1253 Group_Control_Box_Shadow::get_type(),
1254 [
1255 'name' => 'borderless_elementor_split_hero_subtitle_box_shadow',
1256 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__subtitle',
1257 ]
1258 );
1259
1260 $this->end_controls_section();
1261
1262
1263 /*-----------------------------------------------------------------------------------*/
1264 /* *. Hero/Buttons - Style
1265 /*-----------------------------------------------------------------------------------*/
1266
1267 $this->start_controls_section(
1268 'borderless_elementor_section_split_hero_buttons_style',
1269 [
1270 'label' => esc_html__( 'Buttons', 'borderless'),
1271 'tab' => Controls_Manager::TAB_STYLE
1272 ]
1273 );
1274
1275 $this->add_responsive_control(
1276 'borderless_elementor_split_hero_buttons_direction',
1277 [
1278 'label' => __( 'Direction', 'borderless' ),
1279 'type' => Controls_Manager::CHOOSE,
1280 'default' => 'row',
1281 'options' => [
1282 'row' => [
1283 'title' => __( 'Row', 'borderless' ),
1284 'icon' => 'eicon-h-align-center',
1285 ],
1286 'column' => [
1287 'title' => __( 'Column', 'borderless' ),
1288 'icon' => 'eicon-v-align-middle',
1289 ],
1290 ],
1291 'default' => 'center',
1292 'selectors' => [
1293 '{{WRAPPER}} .borderless-elementor-split-hero__buttons' => 'flex-direction: {{VALUE}}',
1294 ],
1295 ]
1296 );
1297
1298 $this->add_responsive_control(
1299 'borderless_elementor_buttons_gap',
1300 [
1301 'label' => __( 'Gap', 'borderless' ),
1302 'type' => \Elementor\Controls_Manager::NUMBER,
1303 'min' => 0,
1304 'max' => 99999,
1305 'step' => 1,
1306 'default' => 50,
1307 'selectors' => [
1308 '{{WRAPPER}} .borderless-elementor-split-hero__buttons' => 'gap: {{VALUE}}px',
1309 ],
1310 ]
1311 );
1312
1313 $this->add_responsive_control(
1314 'borderless_elementor_buttons_padding',
1315 [
1316 'label' => esc_html__( 'Padding', 'borderless'),
1317 'type' => Controls_Manager::DIMENSIONS,
1318 'separator' => 'before',
1319 'size_units' => [ 'px', 'em', '%' ],
1320 'selectors' => [
1321 '{{WRAPPER}} .borderless-elementor-split-hero__buttons' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1322 ],
1323 ]
1324 );
1325
1326 $this->add_responsive_control(
1327 'borderless_elementor_buttons_margin',
1328 [
1329 'label' => esc_html__( 'Margin', 'borderless'),
1330 'type' => Controls_Manager::DIMENSIONS,
1331 'size_units' => [ 'px', 'em', '%' ],
1332 'selectors' => [
1333 '{{WRAPPER}} .borderless-elementor-split-hero__buttons' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1334 ],
1335 ]
1336 );
1337
1338 $this->add_group_control(
1339 Group_Control_Border::get_type(),
1340 [
1341 'name' => 'borderless_elementor_buttons_border',
1342 'label' => esc_html__( 'Border', 'borderless'),
1343 'separator' => 'before',
1344 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__buttons',
1345 ]
1346 );
1347
1348 $this->add_control(
1349 'borderless_elementor_split_hero_buttons_border_radius',
1350 [
1351 'label' => esc_html__( 'Border Radius', 'borderless'),
1352 'type' => Controls_Manager::DIMENSIONS,
1353 'size_units' => [ 'px', '%', 'em' ],
1354 'selectors' => [
1355 '{{WRAPPER}} .borderless-elementor-split-hero__buttons' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1356 ],
1357 ]
1358 );
1359
1360 $this->end_controls_section();
1361
1362
1363 /*-----------------------------------------------------------------------------------*/
1364 /* *. Hero/Button - Style
1365 /*-----------------------------------------------------------------------------------*/
1366
1367 $this->start_controls_section(
1368 'borderless_elementor_section_split_hero_button_style',
1369 [
1370 'label' => esc_html__( 'Button', 'borderless'),
1371 'tab' => Controls_Manager::TAB_STYLE
1372 ]
1373 );
1374
1375 $this->add_group_control(
1376 Group_Control_Typography::get_type(),
1377 [
1378 'name' => 'borderless_elementor_split_hero_button_typography',
1379 'label' => __('Typography', 'borderless'),
1380 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__button',
1381 ]
1382 );
1383
1384 $this->add_group_control(
1385 Group_Control_Text_Shadow::get_type(),
1386 [
1387 'name' => 'borderless_elementor_split_hero_button_text_shadow',
1388 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__button',
1389 ]
1390 );
1391
1392 $this->start_controls_tabs( 'borderless_elementor_tabs_hero_button_style' );
1393
1394 $this->start_controls_tab( 'borderless_elementor_tab_normal_hero_button_style',
1395 [
1396 'label' => __( 'Normal', 'borderless' ),
1397 ]
1398 );
1399
1400 $this->add_control(
1401 'borderless_elementor_split_hero_button_text_color',
1402 [
1403 'label' => __( 'Text Color', 'borderless' ),
1404 'type' => Controls_Manager::COLOR,
1405 'selectors' => [
1406 '{{WRAPPER}} .borderless-elementor-split-hero__button' => 'color: {{VALUE}};',
1407 ],
1408 ]
1409 );
1410
1411 $this->add_group_control(
1412 Group_Control_Background::get_type(),
1413 [
1414 'name' => 'borderless_elementor_split_hero_button_background',
1415 'label' => __( 'Background', 'borderless' ),
1416 'types' => [ 'classic', 'gradient' ],
1417 'exclude' => [ 'image' ],
1418 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__button',
1419 ]
1420 );
1421
1422 $this->end_controls_tab();
1423
1424 $this->start_controls_tab( 'borderless_elementor_tab_hover_hero_button_style',
1425 [
1426 'label' => __( 'Hover', 'borderless' ),
1427 ]
1428 );
1429
1430 $this->add_control(
1431 'borderless_elementor_split_hero_button_text_color_hover',
1432 [
1433 'label' => __( 'Text Color', 'borderless' ),
1434 'type' => Controls_Manager::COLOR,
1435 'selectors' => [
1436 '{{WRAPPER}} .borderless-elementor-split-hero__button:hover' => 'color: {{VALUE}};',
1437 ],
1438 ]
1439 );
1440
1441 $this->add_group_control(
1442 Group_Control_Background::get_type(),
1443 [
1444 'name' => 'borderless_elementor_split_hero_button_background_hover',
1445 'label' => __( 'Background', 'borderless' ),
1446 'types' => [ 'classic', 'gradient' ],
1447 'exclude' => [ 'image' ],
1448 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__button:hover',
1449 ]
1450 );
1451
1452 $this->add_control(
1453 'borderless_elementor_split_hero_button_border_color_hover',
1454 [
1455 'label' => __( 'Border Color', 'borderless' ),
1456 'type' => Controls_Manager::COLOR,
1457 'selectors' => [
1458 '{{WRAPPER}} .borderless-elementor-split-hero__button:hover' => 'border-color: {{VALUE}};',
1459 ],
1460 ]
1461 );
1462
1463 $this->end_controls_tab();
1464
1465 $this->end_controls_tabs();
1466
1467 $this->add_group_control(
1468 Group_Control_Border::get_type(),
1469 [
1470 'name' => 'borderless_elementor_split_hero_button_border',
1471 'label' => esc_html__( 'Border', 'borderless'),
1472 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__button',
1473 'separator' => 'before',
1474 ]
1475 );
1476
1477 $this->add_control(
1478 'borderless_elementor_split_hero_button_border_radius',
1479 [
1480 'label' => esc_html__( 'Border Radius', 'borderless'),
1481 'type' => Controls_Manager::DIMENSIONS,
1482 'size_units' => [ 'px', '%', 'em' ],
1483 'selectors' => [
1484 '{{WRAPPER}} .borderless-elementor-split-hero__button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1485 ],
1486 ]
1487 );
1488
1489 $this->add_group_control(
1490 Group_Control_Box_Shadow::get_type(),
1491 [
1492 'name' => 'borderless_elementor_split_hero_button_box_shadow',
1493 'selector' => '{{WRAPPER}} .borderless-elementor-split-hero__button',
1494 ]
1495 );
1496
1497 $this->add_responsive_control(
1498 'borderless_elementor_split_hero_button_padding',
1499 [
1500 'label' => esc_html__( 'Padding', 'borderless'),
1501 'type' => Controls_Manager::DIMENSIONS,
1502 'separator' => 'before',
1503 'size_units' => [ 'px', 'em', '%' ],
1504 'selectors' => [
1505 '{{WRAPPER}} .borderless-elementor-split-hero__button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1506 ],
1507 ]
1508 );
1509
1510 $this->end_controls_section();
1511
1512 }
1513
1514 protected function render() {
1515
1516 $settings = $this->get_settings_for_display();
1517
1518 ?>
1519
1520 <div class="borderless-elementor-split-hero-widget <?php echo esc_attr( $settings['borderless_elementor_split_hero_animation'] ); ?>">
1521 <div class="borderless-elementor-split-hero">
1522 <div class="borderless-elementor-split-hero__container">
1523
1524 <div class="borderless-elementor-split-hero__image">
1525 <div class="borderless-elementor-split-hero__overlay"></div>
1526 </div>
1527
1528 <div class="borderless-elementor-split-hero__content">
1529 <div class="borderless-elementor-split-hero__content-inner">
1530
1531 <?php if ( $settings['borderless_elementor_split_hero_show_title'] ) { ?>
1532 <<?php echo wp_kses( ( $settings['borderless_elementor_split_hero_title_html_tag'] ), true ); ?> class="borderless-elementor-split-hero__title">
1533 <?php echo wp_kses( ( $settings['borderless_elementor_split_hero_title'] ), true ); ?>
1534 </<?php echo wp_kses( ( $settings['borderless_elementor_split_hero_title_html_tag'] ), true ); ?>>
1535 <?php } ?>
1536
1537 <?php if ( $settings['borderless_elementor_split_hero_show_subtitle'] ) { ?>
1538 <<?php echo wp_kses( ( $settings['borderless_elementor_split_hero_subtitle_html_tag'] ), true ); ?> class="borderless-elementor-split-hero__subtitle">
1539 <?php echo wp_kses( ( $settings['borderless_elementor_split_hero_subtitle'] ), true ); ?>
1540 </<?php echo wp_kses( ( $settings['borderless_elementor_split_hero_subtitle_html_tag'] ), true ); ?>>
1541 <?php } ?>
1542
1543 <?php if ( $settings['borderless_elementor_split_hero_show_buttons'] ) { ?>
1544 <div class="borderless-elementor-split-hero__buttons">
1545 <?php foreach ( $settings['borderless_elementor_split_hero_button_item_strings'] as $hero_string ) {
1546
1547 $target = $hero_string['borderless_elementor_split_hero_button_item_link']['is_external'] ? ' target="_blank"' : '';
1548 $nofollow = $hero_string['borderless_elementor_split_hero_button_item_link']['nofollow'] ? ' rel="nofollow"' : '';
1549
1550 ?>
1551
1552 <a class="borderless-elementor-split-hero__button elementor-repeater-item-<?php echo $hero_string['_id']; ?>" href="<?php echo wp_kses( ( $hero_string['borderless_elementor_split_hero_button_item_link']['url'] ), true ); ?>" <?php echo $target . $nofollow; ?>>
1553
1554 <?php if ( $hero_string['borderless_elementor_split_hero_button_item_icon_align'] == 'left' ) { ?>
1555 <?php Icons_Manager::render_icon( $hero_string['borderless_elementor_split_hero_button_item_icon'], [ 'aria-hidden' => 'true' ] ); ?>
1556 <?php } ?>
1557
1558 <?php echo wp_kses( ( $hero_string['borderless_elementor_split_hero_button_item_text'] ), true ); ?>
1559
1560 <?php if ( $hero_string['borderless_elementor_split_hero_button_item_icon_align'] == 'right' ) { ?>
1561 <?php Icons_Manager::render_icon( $hero_string['borderless_elementor_split_hero_button_item_icon'], [ 'aria-hidden' => 'true' ] ); ?>
1562 <?php } ?>
1563 </a>
1564 <?php } ?>
1565 </div>
1566 <?php } ?>
1567
1568 </div>
1569 </div>
1570
1571 </div>
1572 </div>
1573 </div>
1574
1575 <?php
1576
1577 }
1578
1579 protected function _content_template() {
1580
1581 }
1582
1583
1584 }