Plugin Directory

Changeset 2977861


Ignore:
Timestamp:
10/12/2023 12:13:32 AM (2 years ago)
Author:
celomitan
Message:

1.3.0

  • Improvement: Compatible with flex container widget
Location:
gum-elementor-addon
Files:
45 added
10 edited

Legend:

Unmodified
Added
Removed
  • gum-elementor-addon/trunk/css/style.css

    r2967404 r2977861  
    356356.elementor-widget-accordion .elementor-accordion-title i,.elementor-widget-accordion .elementor-accordion-title svg{ margin-right: 1em; order: -1;}
    357357
     358/* counter widget */
     359.elementor-widget-counter.counter-align_left .elementor-counter-number-prefix,
     360.elementor-widget-counter.counter-align_right .elementor-counter-number-suffix,
     361[data-elementor-device-mode=mobile] .elementor-widget-counter.counter-mobile-align_left .elementor-counter-number-prefix,
     362[data-elementor-device-mode=tablet] .elementor-widget-counter.counter-tablet-align_left .elementor-counter-number-prefix,
     363[data-elementor-device-mode=mobile] .elementor-widget-counter.counter-mobile-align_right .elementor-counter-number-suffix,
     364[data-elementor-device-mode=tablet] .elementor-widget-counter.counter-tablet-align_right .elementor-counter-number-suffix{ flex-grow:0;}
     365[data-elementor-device-mode=mobile] .elementor-widget-counter.counter-mobile-align_center .elementor-counter-number-suffix,
     366[data-elementor-device-mode=tablet] .elementor-widget-counter.counter-tablet-align_center .elementor-counter-number-suffix,
     367[data-elementor-device-mode=mobile] .elementor-widget-counter.counter-mobile-align_left .elementor-counter-number-suffix,
     368[data-elementor-device-mode=tablet] .elementor-widget-counter.counter-tablet-align_left .elementor-counter-number-suffix,
     369[data-elementor-device-mode=mobile] .elementor-widget-counter.counter-mobile-align_center .elementor-counter-number-prefix,
     370[data-elementor-device-mode=tablet] .elementor-widget-counter.counter-tablet-align_center .elementor-counter-number-prefix,
     371[data-elementor-device-mode=mobile] .elementor-widget-counter.counter-mobile-align_right .elementor-counter-number-prefix,
     372[data-elementor-device-mode=tablet] .elementor-widget-counter.counter-tablet-align_right .elementor-counter-number-prefix{ flex-grow:1;}
     373
     374
    358375/* headig widget */
    359376.elementor-widget-gum_heading .section-main-title{ position: relative;z-index: 1;}
  • gum-elementor-addon/trunk/gum-elementor-addon.php

    r2967404 r2977861  
    55 * Plugin URI: http://themegum.com/
    66 * Description: Addon widget for Elementor. Slideshow, pricing table, icon list, recent post, blog term, post term, post share, post meta, post related, post adjacent, blog grid, post slider,navigation menu, image box, popover and to top button
    7  * Version: 1.2.26
     7 * Version: 1.3.0
    88 * Author: TemeGUM
    99 * Author URI: http://themegum.com
     
    1111 * Text Domain: gum-elementor-addon
    1212 * Requires at least: 3.7
    13  * Tested up to: 6.1.1
    14  * Elementor tested up to: 3.15.2
     13 * Tested up to: 6.3.1
     14 * Elementor tested up to: 3.16.4
    1515 */
    1616
  • gum-elementor-addon/trunk/readme.txt

    r2967404 r2977861  
    44Tags: elementor, blog, slideshow, slider, popover, pricing, table, spot, post meta, post related, menu
    55Requires at least: 3.7
    6 Tested up to: 6.1.1
     6Tested up to: 6.3.1
    77Requires PHP: 5.0
    88Stable tag: 4.4
    99License: GPLv3 or later
    1010License URI: https://www.gnu.org/licenses/gpl-3.0.html
    11 
    12 Addon widget for Elementor. Slideshow, pricing table, popover and special option.
    1311
    1412== Description ==
     
    70685. Three colors heading
    7169
    72 
    7370== Changelog ==
     71= 1.3.0 =
     72* Improvement: Compatible with flex container widget
     73
     74= 1.2.27 =
     75* Improvement: Adding title vertical margin ( native progress bar widget )
     76* Improvement: Adding counter align option ( native counter widget )
     77
    7478= 1.2.26 =
    7579* Bug Fixing:  Related post widget
  • gum-elementor-addon/trunk/widgets/blog_grid.php

    r2967404 r2977861  
    22042204
    22052205    $this->add_responsive_control(
     2206        'meta_list_margin',
     2207        [
     2208            'label' => esc_html__( 'Margin', 'gum-elementor-addon' ),
     2209            'type' => Controls_Manager::DIMENSIONS,
     2210            'size_units' => [ 'px', '%', 'em' ],
     2211            'placeholder' => [
     2212              'top' => '',
     2213              'right' => '',
     2214              'bottom' => '',
     2215              'left' => '',
     2216            ],
     2217            'selectors' => [
     2218                '{{WRAPPER}} .posts-meta' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
     2219            ],
     2220        ]
     2221    );
     2222
     2223    $this->add_responsive_control(
    22062224        'meta_list_padding',
    22072225        [
     
    23702388      [
    23712389        'name' => 'typography_datemeta',
    2372         'label' =>'sdsd',
     2390        'label' =>'Typography',
    23732391        'selector' => '{{WRAPPER}} .list-meta.date_meta a,{{WRAPPER}} .list-meta.date_meta .meta-text',
    23742392      ]
  • gum-elementor-addon/trunk/widgets/counter.php

    r2822754 r2977861  
    1919        add_action( 'elementor/element/counter/section_title/after_section_end', array( $this, 'register_section_title_controls') , 999 );
    2020
     21        add_action( 'elementor/element/counter/section_counter/after_section_end', array( $this, 'register_section_counter_controls') , 999 );
    2122  }
    2223
     
    6061    $element->end_injection();
    6162
    62 
    6363  }
    6464
    6565  public function register_section_number_controls( Controls_Stack $element ) {
    66 
    6766
    6867   $element->start_injection( [
     
    8281  }
    8382
     83  public function register_section_counter_controls( Controls_Stack $element ){
     84
     85    $element->start_injection( [
     86      'of' => 'section_counter',
     87    ] );
     88
     89
     90    $element->add_responsive_control(
     91      'section_counter_align',
     92      [
     93        'label' => esc_html__( 'Align', 'gum-elementor-addon' ),
     94        'type' => Controls_Manager::CHOOSE,
     95        'options' => [
     96              'left' => [
     97                'title' => esc_html__( 'Left', 'gum-elementor-addon' ),
     98                'icon' => 'eicon-h-align-left',
     99              ],
     100              'center' => [
     101                'title' => esc_html__( 'Center', 'gum-elementor-addon' ),
     102                'icon' => 'eicon-h-align-center',
     103              ],
     104              'right' => [
     105                'title' => esc_html__( 'Right', 'gum-elementor-addon' ),
     106                'icon' => 'eicon-h-align-right',
     107              ],
     108        ],
     109        'default' => '',
     110        'prefix_class' => 'counter%s-align_',
     111        'selectors' => [
     112          '{{WRAPPER}} .elementor-counter-title' => 'text-align: {{VALUE}};',
     113        ],
     114      ]
     115    );
     116
     117    $element->end_injection();
     118  }
     119
    84120}
    85121
  • gum-elementor-addon/trunk/widgets/icon_list.php

    r2964684 r2977861  
    237237          '{{WRAPPER}} .elementor-image-box-title' => 'margin-bottom: {{SIZE}}{{UNIT}};margin-top: 0;',
    238238        ],
    239       ]
    240     );
     239        'condition' => [
     240          'title_inline[value]!' => 'inline',
     241        ],
     242      ]
     243    );
     244
     245    $element->start_injection( [
     246      'of' => 'title_bottom_space',
     247    ] );
     248
     249    $element->add_responsive_control(
     250      'title_right_space',
     251      [
     252        'label' => esc_html__( 'Spacing', 'gum-elementor-addon' ),
     253        'type' => Controls_Manager::SLIDER,
     254        'range' => [
     255          'px' => [
     256            'min' => 0,
     257            'max' => 100,
     258          ],
     259          'em' => [
     260            'min' => 0,
     261            'max' => 10,
     262          ],
     263        ],
     264        'selectors' => [
     265          '{{WRAPPER}} .elementor-icon-box-title' => 'margin-right: {{SIZE}}{{UNIT}};margin-top: 0;',
     266          '{{WRAPPER}} .elementor-image-box-title' => 'margin-right: {{SIZE}}{{UNIT}};margin-top: 0;',
     267        ],
     268        'size_units' => [ 'px' ,'em' ],
     269        'default'=>['size'=>'0.5','unit'=>'em'],
     270        'condition' => [
     271           'title_inline[value]' => 'inline',
     272        ],
     273      ]
     274    );
     275
     276    $element->end_injection();
    241277
    242278
     
    245281    ] );
    246282
    247 
    248283    $element->add_control(
    249284      'title_hover_color',
    250285      [
    251         'label' => esc_html__( 'Hover', 'gum-elementor-addon' ),
     286        'label' => esc_html__( 'Hover Color', 'gum-elementor-addon' ),
    252287        'type' => Controls_Manager::COLOR,
    253288        'default' => '',
     
    420455
    421456    $element->add_control(
     457      'title_inline',
     458      [
     459        'label' => esc_html__( 'Title Display', 'gum-elementor-addon' ),
     460        'type' => Controls_Manager::SELECT,
     461        'options' => [
     462          '' => esc_html__( 'Default', 'gum-elementor-addon' ),
     463          'inline' => esc_html__( 'Inline', 'gum-elementor-addon' ),
     464        ],
     465        'selectors' => [
     466          '{{WRAPPER}} .elementor-icon-box-title,{{WRAPPER}} .elementor-image-box-title' => 'display: {{VALUE}}',
     467          '{{WRAPPER}} .elementor-icon-box-description,{{WRAPPER}} .elementor-image-box-description' => 'display: {{VALUE}}',
     468        ],
     469      ]
     470    );
     471
     472    $element->add_control(
    422473      'box_strech',
    423474      [
    424475        'label' => esc_html__( 'Stretch Box', 'gum-elementor-addon' ),
    425476        'type' => Controls_Manager::SWITCHER,
    426         'label_on' => esc_html__( 'No', 'gum-elementor-addon' ),
    427         'label_off' => esc_html__( 'Yes', 'gum-elementor-addon' ),
     477        'label_on' => esc_html__( 'Yes', 'gum-elementor-addon' ),
     478        'label_off' => esc_html__( 'No', 'gum-elementor-addon' ),
    428479        'default' => '',
    429480        'prefix_class' => 'elementor-boxstretch-',
  • gum-elementor-addon/trunk/widgets/pricetable.php

    r2964684 r2977861  
    381381    );
    382382
    383 
     383    $this->add_control(
     384      'show_list',
     385      [
     386        'label' => esc_html__( 'Price Items', 'gum-elementor-addon' ),
     387        'type' => Controls_Manager::SWITCHER,
     388        'label_off' => esc_html__( 'Hide', 'gum-elementor-addon' ),
     389        'label_on' => esc_html__( 'Show', 'gum-elementor-addon' ),
     390        'default' => 'yes',
     391        'style_transfer' => true,
     392      ]
     393    );
    384394
    385395    $this->add_control(
    386396      'lists',
    387397      [
    388         'label' => esc_html__( 'Price Items', 'gum-elementor-addon' ),
     398        'label' => esc_html__( 'Items', 'gum-elementor-addon' ),
    389399        'type' => Controls_Manager::REPEATER,
    390400        'fields' => $repeater->get_controls(),
     
    401411        ],
    402412        'title_field' => '{{{ list_content }}}',
     413        'condition' => ['show_list[value]' => 'yes'],
    403414      ]
    404415    );
     
    11881199        'label' => esc_html__( 'Price Items', 'gum-elementor-addon' ),
    11891200        'tab'   => Controls_Manager::TAB_STYLE,
     1201        'condition' => ['show_list[value]' => 'yes'],
    11901202      ]
    11911203    );   
     1204
     1205
     1206    $this->add_group_control(
     1207      Group_Control_Typography::get_type(),
     1208      [
     1209        'name' => 'typography_list_title',
     1210        'selector' => '{{WRAPPER}} .price-features li',
     1211      ]
     1212    );
    11921213
    11931214
     
    12171238      ]
    12181239    );
    1219 
    1220     $this->add_responsive_control(
    1221       'table_list_padding',
    1222       [
    1223         'label' => esc_html__( 'Padding', 'gum-elementor-addon' ),
    1224         'type' => Controls_Manager::DIMENSIONS,
    1225         'size_units' => [ 'px', 'em', '%' ],
    1226         'selectors' => [
    1227           '{{WRAPPER}} .price-block-inner .price-features' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
    1228         ],
    1229       ]
    1230     );
    1231 
     1240   
    12321241    $this->add_responsive_control(
    12331242      'table_list_align',
     
    12811290    );
    12821291
     1292
     1293    $this->add_responsive_control(
     1294      'table_list_padding',
     1295      [
     1296        'label' => esc_html__( 'Padding', 'gum-elementor-addon' ),
     1297        'type' => Controls_Manager::DIMENSIONS,
     1298        'size_units' => [ 'px', 'em', '%' ],
     1299        'selectors' => [
     1300          '{{WRAPPER}} .price-block-inner .price-features' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
     1301        ],
     1302      ]
     1303    );
     1304
    12831305    $this->add_group_control(
    1284       Group_Control_Typography::get_type(),
    1285       [
    1286         'name' => 'typography_list_title',
    1287         'selector' => '{{WRAPPER}} .price-features li',
    1288       ]
    1289     );
    1290 
     1306      Group_Control_Border::get_type(),
     1307      [
     1308        'name' => 'table_list_border',
     1309        'selector' => '{{WRAPPER}} .price-block-inner .features',
     1310      ]
     1311    );
     1312
     1313    $this->add_control(
     1314      'table_list_radius',
     1315      [
     1316        'label' => esc_html__( 'Border Radius', 'month-annual-pricetable-elementor' ),
     1317        'type' => Controls_Manager::DIMENSIONS,
     1318        'size_units' => [ 'px', '%' ],
     1319        'selectors' => [
     1320          '{{WRAPPER}} .price-block-inner .features' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
     1321        ]
     1322      ]
     1323    );
    12911324
    12921325
     
    13261359    );
    13271360
     1361    $this->add_control(
     1362      'list_odd_bgcolor',
     1363      [
     1364        'label' => esc_html__( 'Odd Row Background', 'gum-elementor-addon' ),
     1365        'type' =>  Controls_Manager::COLOR,
     1366        'default' => '',
     1367        'selectors' => [
     1368          '{{WRAPPER}} .price-features li:nth-child(2n)' => 'background-color: {{VALUE}};',
     1369        ]
     1370      ]
     1371    );
     1372
     1373    $this->add_control(
     1374      'list_even_bgcolor',
     1375      [
     1376        'label' => esc_html__( 'Even Row Background', 'gum-elementor-addon' ),
     1377        'type' =>  Controls_Manager::COLOR,
     1378        'default' => '',
     1379        'selectors' => [
     1380          '{{WRAPPER}} .price-features li:nth-child(2n+1)' => 'background-color: {{VALUE}};',
     1381        ]
     1382      ]
     1383    );
    13281384
    13291385    $this->end_controls_tab();
     
    13501406
    13511407    $this->add_control(
     1408      'list_hover_icon_color',
     1409      [
     1410        'label' => esc_html__( 'Icon Color', 'gum-elementor-addon' ),
     1411        'type' =>  Controls_Manager::COLOR,
     1412        'default' => '',
     1413        'selectors' => [
     1414          '{{WRAPPER}} .price-block-inner:hover .price-features li i' => 'color: {{VALUE}};',
     1415        ]
     1416      ]
     1417    );
     1418
     1419
     1420    $this->add_control(
    13521421      'list_hover_bgcolor',
    13531422      [
     
    13611430    );
    13621431
    1363     $this->add_control(
    1364       'list_hover_icon_color',
    1365       [
    1366         'label' => esc_html__( 'Icon Color', 'gum-elementor-addon' ),
    1367         'type' =>  Controls_Manager::COLOR,
    1368         'default' => '',
    1369         'selectors' => [
    1370           '{{WRAPPER}} .price-block-inner:hover .price-features li i' => 'color: {{VALUE}};',
     1432
     1433    $this->add_control(
     1434      'list_odd_hover_bgcolor',
     1435      [
     1436        'label' => esc_html__( 'Odd Row Background', 'gum-elementor-addon' ),
     1437        'type' =>  Controls_Manager::COLOR,
     1438        'default' => '',
     1439        'selectors' => [
     1440          '{{WRAPPER}} .price-block-inner:hover .price-features li:nth-child(2n)' => 'background-color: {{VALUE}};',
     1441        ]
     1442      ]
     1443    );
     1444
     1445    $this->add_control(
     1446      'list_even_hover_bgcolor',
     1447      [
     1448        'label' => esc_html__( 'Even Row Background', 'gum-elementor-addon' ),
     1449        'type' =>  Controls_Manager::COLOR,
     1450        'default' => '',
     1451        'selectors' => [
     1452          '{{WRAPPER}} .price-block-inner:hover .price-features li:nth-child(2n+1)' => 'background-color: {{VALUE}};',
    13711453        ]
    13721454      ]
     
    18211903
    18221904    extract( $settings );
    1823 
    1824     if(!count($lists)) return;
    18251905
    18261906      $allowed_tags = array('h1','h2','h3','h4','h5','h6','div');
     
    19121992
    19131993    $compile .= '</div>';
     1994
     1995    if( isset($lists) && count($lists) && $show_list =='yes'){
     1996
    19141997    $compile .= '<ul class="price-features">';
    19151998
     
    19322015
    19332016    $compile .= '</ul>';
     2017
     2018    }
    19342019
    19352020    if($show_footer=='yes'){
     
    20872172    <# } #>
    20882173      </div>
     2174    <#
     2175    if ( settings.lists && settings.show_list == 'yes') { #>
    20892176      <ul class="price-features">
    20902177    <#
    2091     if ( settings.lists ) {
    20922178
    20932179    _.each( settings.lists, function( list, index) {
     
    21042190          } #>
    21052191          <span {{{ view.getRenderAttributeString( repeater_setting_key ) }}}>{{{ list.list_content }}}</span></li>
    2106     <# });
    2107     }
     2192    <# }); #>
     2193      </ul>
     2194    <# }
    21082195    #>
    2109       </ul>
    21102196    <# if ( settings.show_footer =='yes' ){
    21112197
  • gum-elementor-addon/trunk/widgets/progress.php

    r2760691 r2977861  
    1717
    1818        add_action( 'elementor/element/progress/section_progress_style/after_section_end', array( $this, 'register_section_progress_style_controls') , 999 );
     19
     20        add_action( 'elementor/element/progress/section_title/after_section_end', array( $this, 'register_section_title_controls') , 999 );
     21
    1922  }
    2023
     
    8790    $element->end_injection();
    8891
     92  }
     93
     94  public function register_section_title_controls( Controls_Stack $element ) {
     95
     96
     97   $element->start_injection( [
     98      'of' => 'section_title',
     99    ] );
     100
     101    $element->add_responsive_control(
     102      'section_title_padding',
     103      [
     104        'label' => esc_html__( 'Spacing', 'gum-elementor-addon' ),
     105        'type' => Controls_Manager::SLIDER,
     106        'size_units' => [ 'px', 'em' ],
     107        'selectors' => [
     108          '{{WRAPPER}} .elementor-title' => 'margin-bottom: {{SIZE}}{{UNIT}}; display: block;',
     109        ]
     110      ]
     111    );
     112
     113    $element->end_injection();
    89114
    90115  }
  • gum-elementor-addon/trunk/widgets/section.php

    r2964684 r2977861  
    2323        add_action( 'elementor/element/image/section_style_image/after_section_end', array( $this, 'register_widget_image_style_controls') , 999 );
    2424
     25
     26        /* since 1.3.0 */
     27        add_action( 'elementor/element/container/section_background_overlay/after_section_end', array( $this, 'register_container_controls') , 999 );
     28
     29
    2530  }
    2631
    27   public function register_column_controls( Controls_Stack $element ) {
     32  public function register_container_controls( Controls_Stack $element ) {
    2833
    2934
     
    131136      ]
    132137    );
    133    
     138
     139    $element->update_control(
     140      'background_overlay_color_stop',
     141      [
     142        'label' => esc_html__( 'Location', 'elementor' ),
     143        'type' => Controls_Manager::SLIDER,
     144        'size_units' => [ '%', 'custom' ],
     145        'default' => [
     146          'unit' => '%',
     147          'size' => 0,
     148        ],
     149        'range' => [
     150          '%' => [
     151            'min' => -100,
     152            'max' => 200,
     153          ],
     154        ],
     155        'render_type' => 'ui',
     156        'condition' => [
     157          'background_overlay_background' => [ 'gradient' ],
     158        ],
     159        'of_type' => 'gradient',
     160      ]
     161    );
     162
     163
     164    $element->update_control(
     165      'background_overlay_color_b_stop',
     166      [
     167        'label' => esc_html__( 'Location', 'elementor' ),
     168        'type' => Controls_Manager::SLIDER,
     169        'size_units' => [ '%', 'custom' ],
     170        'default' => [
     171          'unit' => '%',
     172          'size' => 100,
     173        ],
     174        'range' => [
     175          '%' => [
     176            'min' => -100,
     177            'max' => 200,
     178          ],
     179        ],
     180        'render_type' => 'ui',
     181        'condition' => [
     182          'background_overlay_background' => [ 'gradient' ],
     183        ],
     184        'of_type' => 'gradient',
     185      ]
     186    );
     187
     188
     189    $element->update_control(
     190      'background_overlay_hover_color_stop',
     191      [
     192        'label' => esc_html__( 'Location', 'elementor' ),
     193        'type' => Controls_Manager::SLIDER,
     194        'size_units' => [ '%', 'custom' ],
     195        'default' => [
     196          'unit' => '%',
     197          'size' => 0,
     198        ],
     199        'range' => [
     200          '%' => [
     201            'min' => -100,
     202            'max' => 200,
     203          ],
     204        ],
     205        'render_type' => 'ui',
     206        'condition' => [
     207          'background_overlay_hover_background' => [ 'gradient' ],
     208        ],
     209        'of_type' => 'gradient',
     210      ]
     211    );
     212
     213    $element->update_control(
     214      'background_overlay_hover_color_b_stop',
     215      [
     216        'label' => esc_html__( 'Location', 'elementor' ),
     217        'type' => Controls_Manager::SLIDER,
     218        'size_units' => [ '%', 'custom' ],
     219        'default' => [
     220          'unit' => '%',
     221          'size' => 100,
     222        ],
     223        'range' => [
     224          '%' => [
     225            'min' => -100,
     226            'max' => 200,
     227          ],
     228        ],
     229        'render_type' => 'ui',
     230        'condition' => [
     231          'background_overlay_hover_background' => [ 'gradient' ],
     232        ],
     233        'of_type' => 'gradient',
     234      ]
     235    );
    134236    $element->start_injection( [
    135237      'of' => 'overlay_blend_mode',
     
    146248        'condition' => [
    147249          'background_overlay_background' => [ 'classic', 'gradient' ],
    148           'background_overlay_maskimage[url]!' => '',
    149250        ],
    150251      ]
     
    162263          'active' => true,
    163264        ],
    164         'selectors' => [
    165           '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' => '-webkit-mask-image: url("{{URL}}");',
     265        'selectors' => [ '{{WRAPPER}}::before' => '-webkit-mask-image: url("{{URL}}");',
    166266        ],
    167267        'render_type' => 'template',
     
    184284        ],
    185285        'default' => 'contain',
    186         'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' => '-webkit-mask-size: {{VALUE}};' ],
     286        'selectors' => [ '{{WRAPPER}}::before' => '-webkit-mask-size: {{VALUE}};' ],
    187287        'condition' => [
    188288          'background_overlay_maskimage[url]!' => '',
     
    219319          'size' => 100,
    220320        ],
    221         'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' => '-webkit-mask-size: {{SIZE}}{{UNIT}};' ],
     321        'selectors' => [ '{{WRAPPER}}::before' => '-webkit-mask-size: {{SIZE}}{{UNIT}};' ],
    222322        'condition' => [
    223323          'background_overlay_maskimage[url]!' => '',
     
    246346        ],
    247347        'default' => 'center center',
    248         'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' =>  '-webkit-mask-position: {{VALUE}};' ],
     348        'selectors' => [ '{{WRAPPER}}::before' =>  '-webkit-mask-position: {{VALUE}};' ],
    249349        'condition' => [
    250350          'background_overlay_maskimage[url]!' => '',
     
    282382          'size' => 0,
    283383        ],
    284         'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' =>  '-webkit-mask-position-x: {{SIZE}}{{UNIT}};' ],
     384        'selectors' => [ '{{WRAPPER}}::before' =>  '-webkit-mask-position-x: {{SIZE}}{{UNIT}};' ],
    285385        'condition' => [
    286386          'background_overlay_maskimage[url]!' => '',
     
    318418          'size' => 0,
    319419        ],
    320         'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' =>  '-webkit-mask-position-y: {{SIZE}}{{UNIT}};' ],
     420        'selectors' => [ '{{WRAPPER}}::before' =>  '-webkit-mask-position-y: {{SIZE}}{{UNIT}};' ],
    321421        'condition' => [
    322422          'background_overlay_maskimage[url]!' => '',
     
    341441        ],
    342442        'default' => 'no-repeat',
    343         'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' => '-webkit-mask-repeat: {{VALUE}};' ],
     443        'selectors' => [ '{{WRAPPER}}::before' => '-webkit-mask-repeat: {{VALUE}};' ],
    344444        'condition' => [
    345445          'background_overlay_maskimage[url]!' => '',
     
    349449    );
    350450
    351 
    352451    $element->end_injection();
     452   
    353453
    354454  }
    355455
    356   public function register_section_controls( Controls_Stack $element ) {
     456  public function register_column_controls( Controls_Stack $element ) {
    357457
    358458
    359459    /**
    360     * - Add inner section width option like top section
    361     * Change range from px only to px, vh, and vw
    362     *
    363     * - position option like common widget
     460    * - Adding image mask background
     461    * @since 1.2.11
     462    *
    364463    */
     464
    365465
    366466    $element->update_control(
     
    460560      ]
    461561    );
    462 
    463     $element->update_responsive_control(
    464       'custom_height_inner',
    465       [
    466         'label' => esc_html__( 'Minimum Height', 'elementor' ),
    467         'type' => Controls_Manager::SLIDER,
    468         'default' => [
    469           'size' => 400,
    470         ],
    471         'range' => [
    472           'px' => [
    473             'min' => 0,
    474             'max' => 1440,
    475           ],
    476           'vh' => [
    477             'min' => 0,
    478             'max' => 100,
    479           ],
    480           'vw' => [
    481             'min' => 0,
    482             'max' => 100,
    483           ],
    484         ],
    485         'size_units' => [ 'px', 'vh', 'vw' ],
    486         'selectors' => [
    487           '{{WRAPPER}} > .elementor-container' => 'min-height: {{SIZE}}{{UNIT}};',
    488         ],
    489         'condition' => [
    490           'height_inner' => [ 'min-height' ],
    491         ],
    492         'hide_in_top' => true,
    493       ]
    494     );
    495 
    496     $element->start_controls_section(
    497       '_section_position',
    498       [
    499         'label' => esc_html__( 'Positioning', 'elementor' ),
    500         'tab' => Controls_Manager::TAB_ADVANCED,
    501         'hide_in_top' => true,
    502       ]
    503     );
    504 
    505     $element->add_responsive_control(
    506       '_element_width',
    507       [
    508         'label' => esc_html__( 'Width', 'elementor' ),
    509         'type' => Controls_Manager::SELECT,
    510         'default' => '',
    511         'options' => [
    512           '' => esc_html__( 'Default', 'elementor' ),
    513           'inherit' => esc_html__( 'Full Width', 'elementor' ) . ' (100%)',
    514           'auto' => esc_html__( 'Inline', 'elementor' ) . ' (auto)',
    515           'initial' => esc_html__( 'Custom', 'elementor' ),
    516         ],
    517         'selectors_dictionary' => [
    518           'inherit' => '100%',
    519         ],
    520         'prefix_class' => 'elementor-widget%s__width-',
    521         'selectors' => [
    522           '{{WRAPPER}}' => 'width: {{VALUE}}; max-width: {{VALUE}}',
    523         ],
    524       ]
    525     );
    526 
    527     $element->add_responsive_control(
    528       '_element_custom_width',
    529       [
    530         'label' => esc_html__( 'Custom Width', 'elementor' ),
    531         'type' => Controls_Manager::SLIDER,
    532         'range' => [
    533           'px' => [
    534             'max' => 2000,
    535             'step' => 1,
    536           ],
    537           '%' => [
    538             'max' => 100,
    539             'step' => 1,
    540           ],
    541         ],
    542         'condition' => [
    543           '_element_width' => 'initial',
    544         ],
    545         'size_units' => [ 'px', '%', 'vw' ],
    546         'selectors' => [
    547           '{{WRAPPER}}' => 'width: {{SIZE}}{{UNIT}}; max-width: {{SIZE}}{{UNIT}}',
    548         ],
    549       ]
    550     );
    551 
    552     $element->add_responsive_control(
    553       '_element_vertical_align',
    554       [
    555         'label' => esc_html__( 'Vertical Align', 'elementor' ),
    556         'type' => Controls_Manager::CHOOSE,
    557         'options' => [
    558           'flex-start' => [
    559             'title' => esc_html__( 'Start', 'elementor' ),
    560             'icon' => 'eicon-v-align-top',
    561           ],
    562           'center' => [
    563             'title' => esc_html__( 'Center', 'elementor' ),
    564             'icon' => 'eicon-v-align-middle',
    565           ],
    566           'flex-end' => [
    567             'title' => esc_html__( 'End', 'elementor' ),
    568             'icon' => 'eicon-v-align-bottom',
    569           ],
    570         ],
    571         'condition' => [
    572           '_element_width!' => '',
    573           '_position' => '',
    574         ],
    575         'selectors' => [
    576           '{{WRAPPER}}' => 'align-self: {{VALUE}}',
    577         ],
    578       ]
    579     );
    580 
    581     $element->add_control(
    582       '_position_description',
    583       [
    584         'raw' => '<strong>' . esc_html__( 'Please note!', 'elementor' ) . '</strong> ' . esc_html__( 'Custom positioning is not considered best practice for responsive web design and should not be used too frequently.', 'elementor' ),
    585         'type' => Controls_Manager::RAW_HTML,
    586         'content_classes' => 'elementor-panel-alert elementor-panel-alert-warning',
    587         'render_type' => 'ui',
    588         'condition' => [
    589           '_position!' => '',
    590         ],
    591       ]
    592     );
    593 
    594     $element->add_control(
    595       '_position',
    596       [
    597         'label' => esc_html__( 'Position', 'elementor' ),
    598         'type' => Controls_Manager::SELECT,
    599         'default' => '',
    600         'options' => [
    601           '' => esc_html__( 'Default', 'elementor' ),
    602           'absolute' => esc_html__( 'Absolute', 'elementor' ),
    603           'fixed' => esc_html__( 'Fixed', 'elementor' ),
    604         ],
    605         'prefix_class' => 'elementor-',
    606         'frontend_available' => true,
    607       ]
    608     );
    609 
    610     $start = is_rtl() ? esc_html__( 'Right', 'elementor' ) : esc_html__( 'Left', 'elementor' );
    611     $end = ! is_rtl() ? esc_html__( 'Right', 'elementor' ) : esc_html__( 'Left', 'elementor' );
    612 
    613     $element->add_control(
    614       '_offset_orientation_h',
    615       [
    616         'label' => esc_html__( 'Horizontal Orientation', 'elementor' ),
    617         'type' => Controls_Manager::CHOOSE,
    618         'toggle' => false,
    619         'default' => 'start',
    620         'options' => [
    621           'start' => [
    622             'title' => $start,
    623             'icon' => 'eicon-h-align-left',
    624           ],
    625           'end' => [
    626             'title' => $end,
    627             'icon' => 'eicon-h-align-right',
    628           ],
    629         ],
    630         'classes' => 'elementor-control-start-end',
    631         'render_type' => 'ui',
    632         'condition' => [
    633           '_position!' => '',
    634         ],
    635       ]
    636     );
    637 
    638     $element->add_responsive_control(
    639       '_offset_x',
    640       [
    641         'label' => esc_html__( 'Offset', 'elementor' ),
    642         'type' => Controls_Manager::SLIDER,
    643         'range' => [
    644           'px' => [
    645             'min' => -1000,
    646             'max' => 1000,
    647             'step' => 1,
    648           ],
    649           '%' => [
    650             'min' => -200,
    651             'max' => 200,
    652           ],
    653           'vw' => [
    654             'min' => -200,
    655             'max' => 200,
    656           ],
    657           'vh' => [
    658             'min' => -200,
    659             'max' => 200,
    660           ],
    661         ],
    662         'default' => [
    663           'size' => '0',
    664         ],
    665         'size_units' => [ 'px', '%', 'vw', 'vh' ],
    666         'selectors' => [
    667           'body:not(.rtl) {{WRAPPER}}' => 'left: {{SIZE}}{{UNIT}}',
    668           'body.rtl {{WRAPPER}}' => 'right: {{SIZE}}{{UNIT}}',
    669         ],
    670         'condition' => [
    671           '_offset_orientation_h!' => 'end',
    672           '_position!' => '',
    673         ],
    674       ]
    675     );
    676 
    677     $element->add_responsive_control(
    678       '_offset_x_end',
    679       [
    680         'label' => esc_html__( 'Offset', 'elementor' ),
    681         'type' => Controls_Manager::SLIDER,
    682         'range' => [
    683           'px' => [
    684             'min' => -1000,
    685             'max' => 1000,
    686             'step' => 0.1,
    687           ],
    688           '%' => [
    689             'min' => -200,
    690             'max' => 200,
    691           ],
    692           'vw' => [
    693             'min' => -200,
    694             'max' => 200,
    695           ],
    696           'vh' => [
    697             'min' => -200,
    698             'max' => 200,
    699           ],
    700         ],
    701         'default' => [
    702           'size' => '0',
    703         ],
    704         'size_units' => [ 'px', '%', 'vw', 'vh' ],
    705         'selectors' => [
    706           'body:not(.rtl) {{WRAPPER}}' => 'right: {{SIZE}}{{UNIT}}',
    707           'body.rtl {{WRAPPER}}' => 'left: {{SIZE}}{{UNIT}}',
    708         ],
    709         'condition' => [
    710           '_offset_orientation_h' => 'end',
    711           '_position!' => '',
    712         ],
    713       ]
    714     );
    715 
    716     $element->add_control(
    717       '_offset_orientation_v',
    718       [
    719         'label' => esc_html__( 'Vertical Orientation', 'elementor' ),
    720         'type' => Controls_Manager::CHOOSE,
    721         'toggle' => false,
    722         'default' => 'start',
    723         'options' => [
    724           'start' => [
    725             'title' => esc_html__( 'Top', 'elementor' ),
    726             'icon' => 'eicon-v-align-top',
    727           ],
    728           'end' => [
    729             'title' => esc_html__( 'Bottom', 'elementor' ),
    730             'icon' => 'eicon-v-align-bottom',
    731           ],
    732         ],
    733         'render_type' => 'ui',
    734         'condition' => [
    735           '_position!' => '',
    736         ],
    737       ]
    738     );
    739 
    740     $element->add_responsive_control(
    741       '_offset_y',
    742       [
    743         'label' => esc_html__( 'Offset', 'elementor' ),
    744         'type' => Controls_Manager::SLIDER,
    745         'range' => [
    746           'px' => [
    747             'min' => -1000,
    748             'max' => 1000,
    749             'step' => 1,
    750           ],
    751           '%' => [
    752             'min' => -200,
    753             'max' => 200,
    754           ],
    755           'vh' => [
    756             'min' => -200,
    757             'max' => 200,
    758           ],
    759           'vw' => [
    760             'min' => -200,
    761             'max' => 200,
    762           ],
    763         ],
    764         'size_units' => [ 'px', '%', 'vh', 'vw' ],
    765         'default' => [
    766           'size' => '0',
    767         ],
    768         'selectors' => [
    769           '{{WRAPPER}}' => 'top: {{SIZE}}{{UNIT}}',
    770         ],
    771         'condition' => [
    772           '_offset_orientation_v!' => 'end',
    773           '_position!' => '',
    774         ],
    775       ]
    776     );
    777 
    778     $element->add_responsive_control(
    779       '_offset_y_end',
    780       [
    781         'label' => esc_html__( 'Offset', 'elementor' ),
    782         'type' => Controls_Manager::SLIDER,
    783         'range' => [
    784           'px' => [
    785             'min' => -1000,
    786             'max' => 1000,
    787             'step' => 1,
    788           ],
    789           '%' => [
    790             'min' => -200,
    791             'max' => 200,
    792           ],
    793           'vh' => [
    794             'min' => -200,
    795             'max' => 200,
    796           ],
    797           'vw' => [
    798             'min' => -200,
    799             'max' => 200,
    800           ],
    801         ],
    802         'size_units' => [ 'px', '%', 'vh', 'vw' ],
    803         'default' => [
    804           'size' => '0',
    805         ],
    806         'selectors' => [
    807           '{{WRAPPER}}' => 'bottom: {{SIZE}}{{UNIT}}',
    808         ],
    809         'condition' => [
    810           '_offset_orientation_v' => 'end',
    811           '_position!' => '',
    812         ],
    813       ]
    814     );
    815 
    816     $element->end_controls_section();
    817 
    818     $element->start_controls_section(
    819       '_section_transform',
    820       [
    821         'label' => esc_html__( 'Transform', 'elementor' ),
    822         'tab' => Controls_Manager::TAB_ADVANCED,
    823         'hide_in_top' => true,
    824       ]
    825     );
    826 
    827 
    828     $element->add_control(
    829       "_transform_rotate_popover",
    830       [
    831         'label' => esc_html__( 'Rotate', 'elementor' ),
    832         'type' => Controls_Manager::POPOVER_TOGGLE,
    833         'prefix_class' => 'e-',
    834         'return_value' => 'transform',
    835       ]
    836     );
    837 
    838     $element->start_popover();
    839 
    840     $element->add_responsive_control(
    841       "_transform_rotateZ_effect",
    842       [
    843         'label' => esc_html__( 'Rotate', 'elementor' ),
    844         'type' => Controls_Manager::SLIDER,
    845         'range' => [
    846           'px' => [
    847             'min' => -360,
    848             'max' => 360,
    849           ],
    850         ],
    851         'selectors' => [
    852           "{{WRAPPER}}" => '--e-transform-rw-rotateZ: {{SIZE}}deg',
    853         ],
    854         'condition' => [
    855           "_transform_rotate_popover!" => '',
    856         ],
    857         'frontend_available' => true,
    858       ]
    859     );
    860 
    861     $element->add_control(
    862       "_transform_rotate_3d",
    863       [
    864         'label' => esc_html__( '3D Rotate', 'elementor' ),
    865         'type' => Controls_Manager::SWITCHER,
    866         'label_on' => esc_html__( 'On', 'elementor' ),
    867         'label_off' => esc_html__( 'Off', 'elementor' ),
    868         'selectors' => [
    869           "{{WRAPPER}}" => '--e-transform-rw-rotateX: 1deg;  --e-transform-rw-perspective: 20px;',
    870         ],
    871         'condition' => [
    872           "_transform_rotate_popover!" => '',
    873         ],
    874       ]
    875     );
    876 
    877     $element->add_responsive_control(
    878       "_transform_rotateX_effect",
    879       [
    880         'label' => esc_html__( 'Rotate X', 'elementor' ),
    881         'type' => Controls_Manager::SLIDER,
    882         'range' => [
    883           'px' => [
    884             'min' => -360,
    885             'max' => 360,
    886           ],
    887         ],
    888         'condition' => [
    889           "_transform_rotate_3d!" => '',
    890           "_transform_rotate_popover!" => '',
    891         ],
    892         'selectors' => [
    893           "{{WRAPPER}}" => '--e-transform-rw-rotateX: {{SIZE}}deg;',
    894         ],
    895         'frontend_available' => true,
    896       ]
    897     );
    898 
    899     $element->add_responsive_control(
    900       "_transform_rotateY_effect",
    901       [
    902         'label' => esc_html__( 'Rotate Y', 'elementor' ),
    903         'type' => Controls_Manager::SLIDER,
    904         'range' => [
    905           'px' => [
    906             'min' => -360,
    907             'max' => 360,
    908           ],
    909         ],
    910         'condition' => [
    911           "_transform_rotate_3d!" => '',
    912           "_transform_rotate_popover!" => '',
    913         ],
    914         'selectors' => [
    915           "{{WRAPPER}}" => '--e-transform-rw-rotateY: {{SIZE}}deg;',
    916         ],
    917         'frontend_available' => true,
    918       ]
    919     );
    920 
    921     $element->add_responsive_control(
    922       "_transform_perspective_effect",
    923       [
    924         'label' => esc_html__( 'Perspective', 'elementor' ),
    925         'type' => Controls_Manager::SLIDER,
    926         'range' => [
    927           'px' => [
    928             'min' => 0,
    929             'max' => 1000,
    930           ],
    931         ],
    932         'condition' => [
    933           "_transform_rotate_popover!" => '',
    934           "_transform_rotate_3d!" => '',
    935         ],
    936         'selectors' => [
    937           "{{WRAPPER}}" => '--e-transform-rw-perspective: {{SIZE}}px',
    938         ],
    939         'frontend_available' => true,
    940       ]
    941     );
    942     $element->end_popover();
    943 
    944 
    945     $element->add_control(
    946       "_transform_translate_popover",
    947       [
    948         'label' => esc_html__( 'Offset', 'elementor' ),
    949         'type' => Controls_Manager::POPOVER_TOGGLE,
    950         'prefix_class' => 'e-',
    951         'return_value' => 'transform',
    952       ]
    953     );
    954 
    955 
    956     $element->start_popover();
    957 
    958     $element->add_responsive_control(
    959       "_transform_translateX_effect",
    960       [
    961         'label' => esc_html__( 'Offset X', 'elementor' ),
    962         'type' => Controls_Manager::SLIDER,
    963         'size_units' => [ '%', 'px' ],
    964         'range' => [
    965           '%' => [
    966             'min' => -100,
    967             'max' => 100,
    968           ],
    969           'px' => [
    970             'min' => -1000,
    971             'max' => 1000,
    972           ],
    973         ],
    974         'condition' => [
    975           "_transform_translate_popover!" => '',
    976         ],
    977         'selectors' => [
    978           "{{WRAPPER}}" => '--e-transform-rw-translateX: {{SIZE}}{{UNIT}};',
    979         ],
    980         'frontend_available' => true,
    981       ]
    982     );
    983 
    984     $element->add_responsive_control(
    985       "_transform_translateY_effect",
    986       [
    987         'label' => esc_html__( 'Offset Y', 'elementor' ),
    988         'type' => Controls_Manager::SLIDER,
    989         'size_units' => [ '%', 'px' ],
    990         'range' => [
    991           '%' => [
    992             'min' => -100,
    993             'max' => 100,
    994           ],
    995           'px' => [
    996             'min' => -1000,
    997             'max' => 1000,
    998           ],
    999         ],
    1000         'condition' => [
    1001           "_transform_translate_popover!" => '',
    1002         ],
    1003         'selectors' => [
    1004           "{{WRAPPER}}" => '--e-transform-rw-translateY: {{SIZE}}{{UNIT}};',
    1005         ],
    1006         'frontend_available' => true,
    1007       ]
    1008     );
    1009 
    1010     $element->end_popover();
    1011 
    1012     $element->add_control(
    1013       "_transform_scale_popover",
    1014       [
    1015         'label' => esc_html__( 'Scale', 'elementor' ),
    1016         'type' => Controls_Manager::POPOVER_TOGGLE,
    1017         'prefix_class' => 'e-',
    1018         'return_value' => 'transform',
    1019       ]
    1020     );
    1021 
    1022 
    1023     $element->start_popover();
    1024 
    1025     $element->add_control(
    1026       "_transform_keep_proportions",
    1027       [
    1028         'label' => esc_html__( 'Keep Proportions', 'elementor' ),
    1029         'type' => Controls_Manager::SWITCHER,
    1030         'label_on' => esc_html__( 'On', 'elementor' ),
    1031         'label_off' => esc_html__( 'Off', 'elementor' ),
    1032         'default' => 'yes',
    1033       ]
    1034     );
    1035 
    1036     $element->add_responsive_control(
    1037       "_transform_scale_effect",
    1038       [
    1039         'label' => esc_html__( 'Scale', 'elementor' ),
    1040         'type' => Controls_Manager::SLIDER,
    1041         'range' => [
    1042           'px' => [
    1043             'min' => 0,
    1044             'max' => 2,
    1045             'step' => 0.1,
    1046           ],
    1047         ],
    1048         'condition' => [
    1049           "_transform_scale_popover!" => '',
    1050           "_transform_keep_proportions!" => '',
    1051         ],
    1052         'selectors' => [
    1053           "{{WRAPPER}}" => '--e-transform-rw-scale: {{SIZE}};',
    1054         ],
    1055         'frontend_available' => true,
    1056       ]
    1057     );
    1058 
    1059     $element->add_responsive_control(
    1060       "_transform_scaleX_effect",
    1061       [
    1062         'label' => esc_html__( 'Scale X', 'elementor' ),
    1063         'type' => Controls_Manager::SLIDER,
    1064         'range' => [
    1065           'px' => [
    1066             'min' => 0,
    1067             'max' => 2,
    1068             'step' => 0.1,
    1069           ],
    1070         ],
    1071         'condition' => [
    1072           "_transform_scale_popover!" => '',
    1073           "_transform_keep_proportions" => '',
    1074         ],
    1075         'selectors' => [
    1076           "{{WRAPPER}}" => '--e-transform-rw-scaleX: {{SIZE}};',
    1077         ],
    1078         'frontend_available' => true,
    1079       ]
    1080     );
    1081 
    1082     $element->add_responsive_control(
    1083       "_transform_scaleY_effect",
    1084       [
    1085         'label' => esc_html__( 'Scale Y', 'elementor' ),
    1086         'type' => Controls_Manager::SLIDER,
    1087         'range' => [
    1088           'px' => [
    1089             'min' => 0,
    1090             'max' => 2,
    1091             'step' => 0.1,
    1092           ],
    1093         ],
    1094         'condition' => [
    1095           "_transform_scale_popover!" => '',
    1096           "_transform_keep_proportions" => '',
    1097         ],
    1098         'selectors' => [
    1099           "{{WRAPPER}}" => '--e-transform-rw-scaleY: {{SIZE}};',
    1100         ],
    1101         'frontend_available' => true,
    1102       ]
    1103     );
    1104 
    1105     $element->end_popover();
    1106 
    1107     $element->end_controls_section();
    1108 
    1109 
    1110     $element->start_injection( [ 'of' => 'overlay_blend_mode' ] );
     562   
     563    $element->start_injection( [
     564      'of' => 'overlay_blend_mode',
     565    ] );
     566
     567
    1111568    $element->add_control(
    1112569      '_overlay_maskimage_description',
     
    1118575        'condition' => [
    1119576          'background_overlay_background' => [ 'classic', 'gradient' ],
    1120           'background_overlay_maskimage!' => '',
    1121577        ],
    1122578      ]
     
    1135591        ],
    1136592        'selectors' => [
    1137           '{{WRAPPER}} > .elementor-background-overlay' => '-webkit-mask-image: url("{{URL}}");',
     593          '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' => '-webkit-mask-image: url("{{URL}}");',
    1138594        ],
    1139595        'render_type' => 'template',
     
    1143599      ]
    1144600    );
    1145 
    1146601
    1147602
     
    1157612        ],
    1158613        'default' => 'contain',
    1159         'selectors' => [ '{{WRAPPER}} > .elementor-background-overlay' => '-webkit-mask-size: {{VALUE}};' ],
     614        'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' => '-webkit-mask-size: {{VALUE}};' ],
    1160615        'condition' => [
    1161616          'background_overlay_maskimage[url]!' => '',
     
    1192647          'size' => 100,
    1193648        ],
    1194         'selectors' => [ '{{WRAPPER}} > .elementor-background-overlay' => '-webkit-mask-size: {{SIZE}}{{UNIT}};' ],
     649        'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' => '-webkit-mask-size: {{SIZE}}{{UNIT}};' ],
    1195650        'condition' => [
    1196651          'background_overlay_maskimage[url]!' => '',
     
    1219674        ],
    1220675        'default' => 'center center',
     676        'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' =>  '-webkit-mask-position: {{VALUE}};' ],
     677        'condition' => [
     678          'background_overlay_maskimage[url]!' => '',
     679        ],
     680      ]
     681    );
     682
     683
     684    $element->add_responsive_control(
     685      'overlay_mask_position_x',
     686      [
     687        'label' => esc_html__( 'Mask X Position', 'gum-elementor-addon' ),
     688        'type' => Controls_Manager::SLIDER,
     689        'size_units' => [ 'px', 'em', '%', 'vw' ],
     690        'range' => [
     691          'px' => [
     692            'min' => -500,
     693            'max' => 500,
     694          ],
     695          'em' => [
     696            'min' => -100,
     697            'max' => 100,
     698          ],
     699          '%' => [
     700            'min' => -100,
     701            'max' => 100,
     702          ],
     703          'vw' => [
     704            'min' => -100,
     705            'max' => 100,
     706          ],
     707        ],
     708        'default' => [
     709          'unit' => '%',
     710          'size' => 0,
     711        ],
     712        'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' =>  '-webkit-mask-position-x: {{SIZE}}{{UNIT}};' ],
     713        'condition' => [
     714          'background_overlay_maskimage[url]!' => '',
     715          'overlay_mask_position' => 'custom',
     716        ],
     717      ]
     718    );
     719
     720    $element->add_responsive_control(
     721      'overlay_mask_position_y',
     722      [
     723        'label' => esc_html__( 'Mask Y Position', 'gum-elementor-addon' ),
     724        'type' => Controls_Manager::SLIDER,
     725        'size_units' => [ 'px', 'em', '%', 'vw' ],
     726        'range' => [
     727          'px' => [
     728            'min' => -500,
     729            'max' => 500,
     730          ],
     731          'em' => [
     732            'min' => -100,
     733            'max' => 100,
     734          ],
     735          '%' => [
     736            'min' => -100,
     737            'max' => 100,
     738          ],
     739          'vw' => [
     740            'min' => -100,
     741            'max' => 100,
     742          ],
     743        ],
     744        'default' => [
     745          'unit' => '%',
     746          'size' => 0,
     747        ],
     748        'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' =>  '-webkit-mask-position-y: {{SIZE}}{{UNIT}};' ],
     749        'condition' => [
     750          'background_overlay_maskimage[url]!' => '',
     751          'overlay_mask_position' => 'custom',
     752        ],
     753      ]
     754    );
     755
     756
     757    $element->add_responsive_control(
     758      'overlay_mask_repeat',
     759      [
     760        'label' => esc_html__( 'Mask Repeat', 'gum-elementor-addon' ),
     761        'type' => Controls_Manager::SELECT,
     762        'options' => [
     763          'no-repeat' => esc_html__( 'No-Repeat', 'elementor' ),
     764          'repeat' => esc_html__( 'Repeat', 'elementor' ),
     765          'repeat-x' => esc_html__( 'Repeat-X', 'elementor' ),
     766          'repeat-Y' => esc_html__( 'Repeat-Y', 'elementor' ),
     767          'round' => esc_html__( 'Round', 'elementor' ),
     768          'space' => esc_html__( 'Space', 'elementor' ),
     769        ],
     770        'default' => 'no-repeat',
     771        'selectors' => [ '{{WRAPPER}} > .elementor-element-populated > .elementor-background-overlay' => '-webkit-mask-repeat: {{VALUE}};' ],
     772        'condition' => [
     773          'background_overlay_maskimage[url]!' => '',
     774          'overlay_mask_size!' => 'cover',
     775        ],
     776      ]
     777    );
     778
     779
     780    $element->end_injection();
     781
     782  }
     783
     784  public function register_section_controls( Controls_Stack $element ) {
     785
     786
     787    /**
     788    * - Add inner section width option like top section
     789    * Change range from px only to px, vh, and vw
     790    *
     791    * - position option like common widget
     792    */
     793
     794    $element->update_control(
     795      'background_color_stop',
     796      [
     797        'label' => esc_html__( 'Location', 'elementor' ),
     798        'type' => Controls_Manager::SLIDER,
     799        'size_units' => [ '%', 'custom' ],
     800        'default' => [
     801          'unit' => '%',
     802          'size' => 0,
     803        ],
     804        'range' => [
     805          '%' => [
     806            'min' => -100,
     807            'max' => 200,
     808          ],
     809        ],
     810        'render_type' => 'ui',
     811        'condition' => [
     812          'background_background' => [ 'gradient' ],
     813        ],
     814        'of_type' => 'gradient',
     815      ]
     816    );
     817
     818    $element->update_control(
     819      'background_color_b_stop',
     820      [
     821        'label' => esc_html__( 'Location', 'elementor' ),
     822        'type' => Controls_Manager::SLIDER,
     823        'size_units' => [ '%', 'custom' ],
     824        'default' => [
     825          'unit' => '%',
     826          'size' => 100,
     827        ],
     828        'range' => [
     829          '%' => [
     830            'min' => -100,
     831            'max' => 200,
     832          ],
     833        ],
     834        'render_type' => 'ui',
     835        'condition' => [
     836          'background_background' => [ 'gradient' ],
     837        ],
     838        'of_type' => 'gradient',
     839      ]
     840    );
     841
     842
     843    $element->update_control(
     844      'background_hover_color_stop',
     845      [
     846        'label' => esc_html__( 'Location', 'elementor' ),
     847        'type' => Controls_Manager::SLIDER,
     848        'size_units' => [ '%', 'custom' ],
     849        'default' => [
     850          'unit' => '%',
     851          'size' => 0,
     852        ],
     853        'range' => [
     854          '%' => [
     855            'min' => -100,
     856            'max' => 200,
     857          ],
     858        ],
     859        'render_type' => 'ui',
     860        'condition' => [
     861          'background_hover_background' => [ 'gradient' ],
     862        ],
     863        'of_type' => 'gradient',
     864      ]
     865    );
     866
     867    $element->update_control(
     868      'background_hover_color_b_stop',
     869      [
     870        'label' => esc_html__( 'Location', 'elementor' ),
     871        'type' => Controls_Manager::SLIDER,
     872        'size_units' => [ '%', 'custom' ],
     873        'default' => [
     874          'unit' => '%',
     875          'size' => 100,
     876        ],
     877        'range' => [
     878          '%' => [
     879            'min' => -100,
     880            'max' => 200,
     881          ],
     882        ],
     883        'render_type' => 'ui',
     884        'condition' => [
     885          'background_hover_background' => [ 'gradient' ],
     886        ],
     887        'of_type' => 'gradient',
     888      ]
     889    );
     890
     891    $element->update_responsive_control(
     892      'custom_height_inner',
     893      [
     894        'label' => esc_html__( 'Minimum Height', 'elementor' ),
     895        'type' => Controls_Manager::SLIDER,
     896        'default' => [
     897          'size' => 400,
     898        ],
     899        'range' => [
     900          'px' => [
     901            'min' => 0,
     902            'max' => 1440,
     903          ],
     904          'vh' => [
     905            'min' => 0,
     906            'max' => 100,
     907          ],
     908          'vw' => [
     909            'min' => 0,
     910            'max' => 100,
     911          ],
     912        ],
     913        'size_units' => [ 'px', 'vh', 'vw' ],
     914        'selectors' => [
     915          '{{WRAPPER}} > .elementor-container' => 'min-height: {{SIZE}}{{UNIT}};',
     916        ],
     917        'condition' => [
     918          'height_inner' => [ 'min-height' ],
     919        ],
     920        'hide_in_top' => true,
     921      ]
     922    );
     923
     924    $element->start_controls_section(
     925      '_section_position',
     926      [
     927        'label' => esc_html__( 'Positioning', 'elementor' ),
     928        'tab' => Controls_Manager::TAB_ADVANCED,
     929        'hide_in_top' => true,
     930      ]
     931    );
     932
     933    $element->add_responsive_control(
     934      '_element_width',
     935      [
     936        'label' => esc_html__( 'Width', 'elementor' ),
     937        'type' => Controls_Manager::SELECT,
     938        'default' => '',
     939        'options' => [
     940          '' => esc_html__( 'Default', 'elementor' ),
     941          'inherit' => esc_html__( 'Full Width', 'elementor' ) . ' (100%)',
     942          'auto' => esc_html__( 'Inline', 'elementor' ) . ' (auto)',
     943          'initial' => esc_html__( 'Custom', 'elementor' ),
     944        ],
     945        'selectors_dictionary' => [
     946          'inherit' => '100%',
     947        ],
     948        'prefix_class' => 'elementor-widget%s__width-',
     949        'selectors' => [
     950          '{{WRAPPER}}' => 'width: {{VALUE}}; max-width: {{VALUE}}',
     951        ],
     952      ]
     953    );
     954
     955    $element->add_responsive_control(
     956      '_element_custom_width',
     957      [
     958        'label' => esc_html__( 'Custom Width', 'elementor' ),
     959        'type' => Controls_Manager::SLIDER,
     960        'range' => [
     961          'px' => [
     962            'max' => 2000,
     963            'step' => 1,
     964          ],
     965          '%' => [
     966            'max' => 100,
     967            'step' => 1,
     968          ],
     969        ],
     970        'condition' => [
     971          '_element_width' => 'initial',
     972        ],
     973        'size_units' => [ 'px', '%', 'vw' ],
     974        'selectors' => [
     975          '{{WRAPPER}}' => 'width: {{SIZE}}{{UNIT}}; max-width: {{SIZE}}{{UNIT}}',
     976        ],
     977      ]
     978    );
     979
     980    $element->add_responsive_control(
     981      '_element_vertical_align',
     982      [
     983        'label' => esc_html__( 'Vertical Align', 'elementor' ),
     984        'type' => Controls_Manager::CHOOSE,
     985        'options' => [
     986          'flex-start' => [
     987            'title' => esc_html__( 'Start', 'elementor' ),
     988            'icon' => 'eicon-v-align-top',
     989          ],
     990          'center' => [
     991            'title' => esc_html__( 'Center', 'elementor' ),
     992            'icon' => 'eicon-v-align-middle',
     993          ],
     994          'flex-end' => [
     995            'title' => esc_html__( 'End', 'elementor' ),
     996            'icon' => 'eicon-v-align-bottom',
     997          ],
     998        ],
     999        'condition' => [
     1000          '_element_width!' => '',
     1001          '_position' => '',
     1002        ],
     1003        'selectors' => [
     1004          '{{WRAPPER}}' => 'align-self: {{VALUE}}',
     1005        ],
     1006      ]
     1007    );
     1008
     1009    $element->add_control(
     1010      '_position_description',
     1011      [
     1012        'raw' => '<strong>' . esc_html__( 'Please note!', 'elementor' ) . '</strong> ' . esc_html__( 'Custom positioning is not considered best practice for responsive web design and should not be used too frequently.', 'elementor' ),
     1013        'type' => Controls_Manager::RAW_HTML,
     1014        'content_classes' => 'elementor-panel-alert elementor-panel-alert-warning',
     1015        'render_type' => 'ui',
     1016        'condition' => [
     1017          '_position!' => '',
     1018        ],
     1019      ]
     1020    );
     1021
     1022    $element->add_control(
     1023      '_position',
     1024      [
     1025        'label' => esc_html__( 'Position', 'elementor' ),
     1026        'type' => Controls_Manager::SELECT,
     1027        'default' => '',
     1028        'options' => [
     1029          '' => esc_html__( 'Default', 'elementor' ),
     1030          'absolute' => esc_html__( 'Absolute', 'elementor' ),
     1031          'fixed' => esc_html__( 'Fixed', 'elementor' ),
     1032        ],
     1033        'prefix_class' => 'elementor-',
     1034        'frontend_available' => true,
     1035      ]
     1036    );
     1037
     1038    $start = is_rtl() ? esc_html__( 'Right', 'elementor' ) : esc_html__( 'Left', 'elementor' );
     1039    $end = ! is_rtl() ? esc_html__( 'Right', 'elementor' ) : esc_html__( 'Left', 'elementor' );
     1040
     1041    $element->add_control(
     1042      '_offset_orientation_h',
     1043      [
     1044        'label' => esc_html__( 'Horizontal Orientation', 'elementor' ),
     1045        'type' => Controls_Manager::CHOOSE,
     1046        'toggle' => false,
     1047        'default' => 'start',
     1048        'options' => [
     1049          'start' => [
     1050            'title' => $start,
     1051            'icon' => 'eicon-h-align-left',
     1052          ],
     1053          'end' => [
     1054            'title' => $end,
     1055            'icon' => 'eicon-h-align-right',
     1056          ],
     1057        ],
     1058        'classes' => 'elementor-control-start-end',
     1059        'render_type' => 'ui',
     1060        'condition' => [
     1061          '_position!' => '',
     1062        ],
     1063      ]
     1064    );
     1065
     1066    $element->add_responsive_control(
     1067      '_offset_x',
     1068      [
     1069        'label' => esc_html__( 'Offset', 'elementor' ),
     1070        'type' => Controls_Manager::SLIDER,
     1071        'range' => [
     1072          'px' => [
     1073            'min' => -1000,
     1074            'max' => 1000,
     1075            'step' => 1,
     1076          ],
     1077          '%' => [
     1078            'min' => -200,
     1079            'max' => 200,
     1080          ],
     1081          'vw' => [
     1082            'min' => -200,
     1083            'max' => 200,
     1084          ],
     1085          'vh' => [
     1086            'min' => -200,
     1087            'max' => 200,
     1088          ],
     1089        ],
     1090        'default' => [
     1091          'size' => '0',
     1092        ],
     1093        'size_units' => [ 'px', '%', 'vw', 'vh' ],
     1094        'selectors' => [
     1095          'body:not(.rtl) {{WRAPPER}}' => 'left: {{SIZE}}{{UNIT}}',
     1096          'body.rtl {{WRAPPER}}' => 'right: {{SIZE}}{{UNIT}}',
     1097        ],
     1098        'condition' => [
     1099          '_offset_orientation_h!' => 'end',
     1100          '_position!' => '',
     1101        ],
     1102      ]
     1103    );
     1104
     1105    $element->add_responsive_control(
     1106      '_offset_x_end',
     1107      [
     1108        'label' => esc_html__( 'Offset', 'elementor' ),
     1109        'type' => Controls_Manager::SLIDER,
     1110        'range' => [
     1111          'px' => [
     1112            'min' => -1000,
     1113            'max' => 1000,
     1114            'step' => 0.1,
     1115          ],
     1116          '%' => [
     1117            'min' => -200,
     1118            'max' => 200,
     1119          ],
     1120          'vw' => [
     1121            'min' => -200,
     1122            'max' => 200,
     1123          ],
     1124          'vh' => [
     1125            'min' => -200,
     1126            'max' => 200,
     1127          ],
     1128        ],
     1129        'default' => [
     1130          'size' => '0',
     1131        ],
     1132        'size_units' => [ 'px', '%', 'vw', 'vh' ],
     1133        'selectors' => [
     1134          'body:not(.rtl) {{WRAPPER}}' => 'right: {{SIZE}}{{UNIT}}',
     1135          'body.rtl {{WRAPPER}}' => 'left: {{SIZE}}{{UNIT}}',
     1136        ],
     1137        'condition' => [
     1138          '_offset_orientation_h' => 'end',
     1139          '_position!' => '',
     1140        ],
     1141      ]
     1142    );
     1143
     1144    $element->add_control(
     1145      '_offset_orientation_v',
     1146      [
     1147        'label' => esc_html__( 'Vertical Orientation', 'elementor' ),
     1148        'type' => Controls_Manager::CHOOSE,
     1149        'toggle' => false,
     1150        'default' => 'start',
     1151        'options' => [
     1152          'start' => [
     1153            'title' => esc_html__( 'Top', 'elementor' ),
     1154            'icon' => 'eicon-v-align-top',
     1155          ],
     1156          'end' => [
     1157            'title' => esc_html__( 'Bottom', 'elementor' ),
     1158            'icon' => 'eicon-v-align-bottom',
     1159          ],
     1160        ],
     1161        'render_type' => 'ui',
     1162        'condition' => [
     1163          '_position!' => '',
     1164        ],
     1165      ]
     1166    );
     1167
     1168    $element->add_responsive_control(
     1169      '_offset_y',
     1170      [
     1171        'label' => esc_html__( 'Offset', 'elementor' ),
     1172        'type' => Controls_Manager::SLIDER,
     1173        'range' => [
     1174          'px' => [
     1175            'min' => -1000,
     1176            'max' => 1000,
     1177            'step' => 1,
     1178          ],
     1179          '%' => [
     1180            'min' => -200,
     1181            'max' => 200,
     1182          ],
     1183          'vh' => [
     1184            'min' => -200,
     1185            'max' => 200,
     1186          ],
     1187          'vw' => [
     1188            'min' => -200,
     1189            'max' => 200,
     1190          ],
     1191        ],
     1192        'size_units' => [ 'px', '%', 'vh', 'vw' ],
     1193        'default' => [
     1194          'size' => '0',
     1195        ],
     1196        'selectors' => [
     1197          '{{WRAPPER}}' => 'top: {{SIZE}}{{UNIT}}',
     1198        ],
     1199        'condition' => [
     1200          '_offset_orientation_v!' => 'end',
     1201          '_position!' => '',
     1202        ],
     1203      ]
     1204    );
     1205
     1206    $element->add_responsive_control(
     1207      '_offset_y_end',
     1208      [
     1209        'label' => esc_html__( 'Offset', 'elementor' ),
     1210        'type' => Controls_Manager::SLIDER,
     1211        'range' => [
     1212          'px' => [
     1213            'min' => -1000,
     1214            'max' => 1000,
     1215            'step' => 1,
     1216          ],
     1217          '%' => [
     1218            'min' => -200,
     1219            'max' => 200,
     1220          ],
     1221          'vh' => [
     1222            'min' => -200,
     1223            'max' => 200,
     1224          ],
     1225          'vw' => [
     1226            'min' => -200,
     1227            'max' => 200,
     1228          ],
     1229        ],
     1230        'size_units' => [ 'px', '%', 'vh', 'vw' ],
     1231        'default' => [
     1232          'size' => '0',
     1233        ],
     1234        'selectors' => [
     1235          '{{WRAPPER}}' => 'bottom: {{SIZE}}{{UNIT}}',
     1236        ],
     1237        'condition' => [
     1238          '_offset_orientation_v' => 'end',
     1239          '_position!' => '',
     1240        ],
     1241      ]
     1242    );
     1243
     1244    $element->end_controls_section();
     1245
     1246    $element->start_controls_section(
     1247      '_section_transform',
     1248      [
     1249        'label' => esc_html__( 'Transform', 'elementor' ),
     1250        'tab' => Controls_Manager::TAB_ADVANCED,
     1251        'hide_in_top' => true,
     1252      ]
     1253    );
     1254
     1255
     1256    $element->add_control(
     1257      "_transform_rotate_popover",
     1258      [
     1259        'label' => esc_html__( 'Rotate', 'elementor' ),
     1260        'type' => Controls_Manager::POPOVER_TOGGLE,
     1261        'prefix_class' => 'e-',
     1262        'return_value' => 'transform',
     1263      ]
     1264    );
     1265
     1266    $element->start_popover();
     1267
     1268    $element->add_responsive_control(
     1269      "_transform_rotateZ_effect",
     1270      [
     1271        'label' => esc_html__( 'Rotate', 'elementor' ),
     1272        'type' => Controls_Manager::SLIDER,
     1273        'range' => [
     1274          'px' => [
     1275            'min' => -360,
     1276            'max' => 360,
     1277          ],
     1278        ],
     1279        'selectors' => [
     1280          "{{WRAPPER}}" => '--e-transform-rw-rotateZ: {{SIZE}}deg',
     1281        ],
     1282        'condition' => [
     1283          "_transform_rotate_popover!" => '',
     1284        ],
     1285        'frontend_available' => true,
     1286      ]
     1287    );
     1288
     1289    $element->add_control(
     1290      "_transform_rotate_3d",
     1291      [
     1292        'label' => esc_html__( '3D Rotate', 'elementor' ),
     1293        'type' => Controls_Manager::SWITCHER,
     1294        'label_on' => esc_html__( 'On', 'elementor' ),
     1295        'label_off' => esc_html__( 'Off', 'elementor' ),
     1296        'selectors' => [
     1297          "{{WRAPPER}}" => '--e-transform-rw-rotateX: 1deg;  --e-transform-rw-perspective: 20px;',
     1298        ],
     1299        'condition' => [
     1300          "_transform_rotate_popover!" => '',
     1301        ],
     1302      ]
     1303    );
     1304
     1305    $element->add_responsive_control(
     1306      "_transform_rotateX_effect",
     1307      [
     1308        'label' => esc_html__( 'Rotate X', 'elementor' ),
     1309        'type' => Controls_Manager::SLIDER,
     1310        'range' => [
     1311          'px' => [
     1312            'min' => -360,
     1313            'max' => 360,
     1314          ],
     1315        ],
     1316        'condition' => [
     1317          "_transform_rotate_3d!" => '',
     1318          "_transform_rotate_popover!" => '',
     1319        ],
     1320        'selectors' => [
     1321          "{{WRAPPER}}" => '--e-transform-rw-rotateX: {{SIZE}}deg;',
     1322        ],
     1323        'frontend_available' => true,
     1324      ]
     1325    );
     1326
     1327    $element->add_responsive_control(
     1328      "_transform_rotateY_effect",
     1329      [
     1330        'label' => esc_html__( 'Rotate Y', 'elementor' ),
     1331        'type' => Controls_Manager::SLIDER,
     1332        'range' => [
     1333          'px' => [
     1334            'min' => -360,
     1335            'max' => 360,
     1336          ],
     1337        ],
     1338        'condition' => [
     1339          "_transform_rotate_3d!" => '',
     1340          "_transform_rotate_popover!" => '',
     1341        ],
     1342        'selectors' => [
     1343          "{{WRAPPER}}" => '--e-transform-rw-rotateY: {{SIZE}}deg;',
     1344        ],
     1345        'frontend_available' => true,
     1346      ]
     1347    );
     1348
     1349    $element->add_responsive_control(
     1350      "_transform_perspective_effect",
     1351      [
     1352        'label' => esc_html__( 'Perspective', 'elementor' ),
     1353        'type' => Controls_Manager::SLIDER,
     1354        'range' => [
     1355          'px' => [
     1356            'min' => 0,
     1357            'max' => 1000,
     1358          ],
     1359        ],
     1360        'condition' => [
     1361          "_transform_rotate_popover!" => '',
     1362          "_transform_rotate_3d!" => '',
     1363        ],
     1364        'selectors' => [
     1365          "{{WRAPPER}}" => '--e-transform-rw-perspective: {{SIZE}}px',
     1366        ],
     1367        'frontend_available' => true,
     1368      ]
     1369    );
     1370    $element->end_popover();
     1371
     1372
     1373    $element->add_control(
     1374      "_transform_translate_popover",
     1375      [
     1376        'label' => esc_html__( 'Offset', 'elementor' ),
     1377        'type' => Controls_Manager::POPOVER_TOGGLE,
     1378        'prefix_class' => 'e-',
     1379        'return_value' => 'transform',
     1380      ]
     1381    );
     1382
     1383
     1384    $element->start_popover();
     1385
     1386    $element->add_responsive_control(
     1387      "_transform_translateX_effect",
     1388      [
     1389        'label' => esc_html__( 'Offset X', 'elementor' ),
     1390        'type' => Controls_Manager::SLIDER,
     1391        'size_units' => [ '%', 'px' ],
     1392        'range' => [
     1393          '%' => [
     1394            'min' => -100,
     1395            'max' => 100,
     1396          ],
     1397          'px' => [
     1398            'min' => -1000,
     1399            'max' => 1000,
     1400          ],
     1401        ],
     1402        'condition' => [
     1403          "_transform_translate_popover!" => '',
     1404        ],
     1405        'selectors' => [
     1406          "{{WRAPPER}}" => '--e-transform-rw-translateX: {{SIZE}}{{UNIT}};',
     1407        ],
     1408        'frontend_available' => true,
     1409      ]
     1410    );
     1411
     1412    $element->add_responsive_control(
     1413      "_transform_translateY_effect",
     1414      [
     1415        'label' => esc_html__( 'Offset Y', 'elementor' ),
     1416        'type' => Controls_Manager::SLIDER,
     1417        'size_units' => [ '%', 'px' ],
     1418        'range' => [
     1419          '%' => [
     1420            'min' => -100,
     1421            'max' => 100,
     1422          ],
     1423          'px' => [
     1424            'min' => -1000,
     1425            'max' => 1000,
     1426          ],
     1427        ],
     1428        'condition' => [
     1429          "_transform_translate_popover!" => '',
     1430        ],
     1431        'selectors' => [
     1432          "{{WRAPPER}}" => '--e-transform-rw-translateY: {{SIZE}}{{UNIT}};',
     1433        ],
     1434        'frontend_available' => true,
     1435      ]
     1436    );
     1437
     1438    $element->end_popover();
     1439
     1440    $element->add_control(
     1441      "_transform_scale_popover",
     1442      [
     1443        'label' => esc_html__( 'Scale', 'elementor' ),
     1444        'type' => Controls_Manager::POPOVER_TOGGLE,
     1445        'prefix_class' => 'e-',
     1446        'return_value' => 'transform',
     1447      ]
     1448    );
     1449
     1450
     1451    $element->start_popover();
     1452
     1453    $element->add_control(
     1454      "_transform_keep_proportions",
     1455      [
     1456        'label' => esc_html__( 'Keep Proportions', 'elementor' ),
     1457        'type' => Controls_Manager::SWITCHER,
     1458        'label_on' => esc_html__( 'On', 'elementor' ),
     1459        'label_off' => esc_html__( 'Off', 'elementor' ),
     1460        'default' => 'yes',
     1461      ]
     1462    );
     1463
     1464    $element->add_responsive_control(
     1465      "_transform_scale_effect",
     1466      [
     1467        'label' => esc_html__( 'Scale', 'elementor' ),
     1468        'type' => Controls_Manager::SLIDER,
     1469        'range' => [
     1470          'px' => [
     1471            'min' => 0,
     1472            'max' => 2,
     1473            'step' => 0.1,
     1474          ],
     1475        ],
     1476        'condition' => [
     1477          "_transform_scale_popover!" => '',
     1478          "_transform_keep_proportions!" => '',
     1479        ],
     1480        'selectors' => [
     1481          "{{WRAPPER}}" => '--e-transform-rw-scale: {{SIZE}};',
     1482        ],
     1483        'frontend_available' => true,
     1484      ]
     1485    );
     1486
     1487    $element->add_responsive_control(
     1488      "_transform_scaleX_effect",
     1489      [
     1490        'label' => esc_html__( 'Scale X', 'elementor' ),
     1491        'type' => Controls_Manager::SLIDER,
     1492        'range' => [
     1493          'px' => [
     1494            'min' => 0,
     1495            'max' => 2,
     1496            'step' => 0.1,
     1497          ],
     1498        ],
     1499        'condition' => [
     1500          "_transform_scale_popover!" => '',
     1501          "_transform_keep_proportions" => '',
     1502        ],
     1503        'selectors' => [
     1504          "{{WRAPPER}}" => '--e-transform-rw-scaleX: {{SIZE}};',
     1505        ],
     1506        'frontend_available' => true,
     1507      ]
     1508    );
     1509
     1510    $element->add_responsive_control(
     1511      "_transform_scaleY_effect",
     1512      [
     1513        'label' => esc_html__( 'Scale Y', 'elementor' ),
     1514        'type' => Controls_Manager::SLIDER,
     1515        'range' => [
     1516          'px' => [
     1517            'min' => 0,
     1518            'max' => 2,
     1519            'step' => 0.1,
     1520          ],
     1521        ],
     1522        'condition' => [
     1523          "_transform_scale_popover!" => '',
     1524          "_transform_keep_proportions" => '',
     1525        ],
     1526        'selectors' => [
     1527          "{{WRAPPER}}" => '--e-transform-rw-scaleY: {{SIZE}};',
     1528        ],
     1529        'frontend_available' => true,
     1530      ]
     1531    );
     1532
     1533    $element->end_popover();
     1534
     1535    $element->end_controls_section();
     1536
     1537
     1538    $element->start_injection( [ 'of' => 'overlay_blend_mode' ] );
     1539    $element->add_control(
     1540      '_overlay_maskimage_description',
     1541      [
     1542        'raw' => '<strong>' . esc_html__( 'Please note!', 'elementor' ) . '</strong> ' . esc_html__( 'Image mask only actived when overlay color background not empty.', 'gum-elementor-addon' ),
     1543        'type' => Controls_Manager::RAW_HTML,
     1544        'content_classes' => 'elementor-panel-alert elementor-panel-alert-warning',
     1545        'render_type' => 'ui',
     1546        'condition' => [
     1547          'background_overlay_background' => [ 'classic', 'gradient' ],
     1548        ],
     1549      ]
     1550    );
     1551
     1552    $element->add_control(
     1553      'background_overlay_maskimage',
     1554      [
     1555        'label' => esc_html__( 'Image Mask', 'gum-elementor-addon' ),
     1556        'type' => Controls_Manager::MEDIA,
     1557        'media_type' => 'image',
     1558        'should_include_svg_inline_option' => true,
     1559        'library_type' => 'image/svg+xml',
     1560        'dynamic' => [
     1561          'active' => true,
     1562        ],
     1563        'selectors' => [
     1564          '{{WRAPPER}} > .elementor-background-overlay' => '-webkit-mask-image: url("{{URL}}");',
     1565        ],
     1566        'render_type' => 'template',
     1567        'condition' => [
     1568          'background_overlay_background' => [ 'classic', 'gradient' ],
     1569        ],
     1570      ]
     1571    );
     1572
     1573
     1574
     1575    $element->add_responsive_control(
     1576      'overlay_mask_size',
     1577      [
     1578        'label' => esc_html__( 'Mask Size', 'gum-elementor-addon' ),
     1579        'type' => Controls_Manager::SELECT,
     1580        'options' => [
     1581          'contain' => esc_html__( 'Fit', 'elementor' ),
     1582          'cover' => esc_html__( 'Fill', 'elementor' ),
     1583          'custom' => esc_html__( 'Custom', 'elementor' ),
     1584        ],
     1585        'default' => 'contain',
     1586        'selectors' => [ '{{WRAPPER}} > .elementor-background-overlay' => '-webkit-mask-size: {{VALUE}};' ],
     1587        'condition' => [
     1588          'background_overlay_maskimage[url]!' => '',
     1589        ],
     1590      ]
     1591    );
     1592
     1593    $element->add_responsive_control(
     1594      'overlay_mask_size_scale',
     1595      [
     1596        'label' => esc_html__( 'Mask Scale', 'gum-elementor-addon' ),
     1597        'type' => Controls_Manager::SLIDER,
     1598        'size_units' => [ 'px', 'em', '%', 'vw' ],
     1599        'range' => [
     1600          'px' => [
     1601            'min' => 0,
     1602            'max' => 500,
     1603          ],
     1604          'em' => [
     1605            'min' => 0,
     1606            'max' => 100,
     1607          ],
     1608          '%' => [
     1609            'min' => 0,
     1610            'max' => 200,
     1611          ],
     1612          'vw' => [
     1613            'min' => 0,
     1614            'max' => 100,
     1615          ],
     1616        ],
     1617        'default' => [
     1618          'unit' => '%',
     1619          'size' => 100,
     1620        ],
     1621        'selectors' => [ '{{WRAPPER}} > .elementor-background-overlay' => '-webkit-mask-size: {{SIZE}}{{UNIT}};' ],
     1622        'condition' => [
     1623          'background_overlay_maskimage[url]!' => '',
     1624          'overlay_mask_size' => 'custom',
     1625        ],
     1626      ]
     1627    );
     1628
     1629
     1630    $element->add_responsive_control(
     1631      'overlay_mask_position',
     1632      [
     1633        'label' => esc_html__( 'Mask Position', 'gum-elementor-addon' ),
     1634        'type' => Controls_Manager::SELECT,
     1635        'options' => [
     1636          'center center' => esc_html__( 'Center Center', 'elementor' ),
     1637          'center left' => esc_html__( 'Center Left', 'elementor' ),
     1638          'center right' => esc_html__( 'Center Right', 'elementor' ),
     1639          'top center' => esc_html__( 'Top Center', 'elementor' ),
     1640          'top left' => esc_html__( 'Top Left', 'elementor' ),
     1641          'top right' => esc_html__( 'Top Right', 'elementor' ),
     1642          'bottom center' => esc_html__( 'Bottom Center', 'elementor' ),
     1643          'bottom left' => esc_html__( 'Bottom Left', 'elementor' ),
     1644          'bottom right' => esc_html__( 'Bottom Right', 'elementor' ),
     1645          'custom' => esc_html__( 'Custom', 'elementor' ),
     1646        ],
     1647        'default' => 'center center',
    12211648        'selectors' => [ '{{WRAPPER}} > .elementor-background-overlay' =>  '-webkit-mask-position: {{VALUE}};' ],
    12221649        'condition' => [
  • gum-elementor-addon/trunk/widgets/toggle_period.php

    r2964684 r2977861  
    241241
    242242
     243    $this->add_control(
     244      'period_border_radius',
     245      [
     246        'label' => esc_html__( 'Border Radius', 'gum-elementor-addon' ),
     247        'type' => Controls_Manager::DIMENSIONS,
     248        'size_units' => [ 'px', '%' ],
     249        'selectors' => [
     250          '{{WRAPPER}} .price-period-switch .period.regular-period' => 'border-radius: {{TOP}}{{UNIT}} 0px 0px {{LEFT}}{{UNIT}};',
     251          '{{WRAPPER}} .price-period-switch .period.anual-period' => 'border-radius: 0px {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} 0px;',
     252        ]
     253      ]
     254    );
     255
     256
     257    $this->add_control(
     258      'mainperiod',
     259      [
     260        'label' => esc_html__( '1st Period', 'gum-elementor-addon' ),
     261        'type' => Controls_Manager::HEADING,
     262        'separator' => 'before'
     263      ]
     264    );
     265
    243266    $this->add_responsive_control(
    244267      'main_padding',
    245268      [
    246         'label' => esc_html__( '1st Period Padding', 'gum-elementor-addon' ),
     269        'label' => esc_html__( 'Padding', 'gum-elementor-addon' ),
    247270        'type' => Controls_Manager::DIMENSIONS,
    248271        'size_units' => [ 'px', 'em', '%' ],
     
    261284
    262285
    263 
     286    $this->add_control(
     287      'mainperiod_radius',
     288      [
     289        'label' => esc_html__( 'Border Radius', 'gum-elementor-addon' ),
     290        'type' => Controls_Manager::DIMENSIONS,
     291        'size_units' => [ 'px', '%' ],
     292        'description' => esc_html__( 'Warning: This style will remove next version. Please use radius on each period style', 'gum-elementor-addon' ),
     293        'selectors' => [
     294          '{{WRAPPER}} .price-period-switch .period.regular-period' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{LEFT}}{{UNIT}} {{LEFT}}{{UNIT}};',
     295        ]
     296      ]
     297    );
     298
     299    $this->add_control(
     300      'anualperiod',
     301      [
     302        'label' => esc_html__( '2nd Period', 'gum-elementor-addon' ),
     303        'type' => Controls_Manager::HEADING,
     304        'separator' => 'before'
     305      ]
     306    );
     307   
    264308    $this->add_responsive_control(
    265309      'anual_padding',
    266310      [
    267         'label' => esc_html__( '2nd Period Padding', 'gum-elementor-addon' ),
     311        'label' => esc_html__( 'Padding', 'gum-elementor-addon' ),
    268312        'type' => Controls_Manager::DIMENSIONS,
    269313        'size_units' => [ 'px', 'em', '%' ],
     
    283327
    284328    $this->add_control(
    285       'period_border_radius',
     329      'anualperiod_radius',
    286330      [
    287331        'label' => esc_html__( 'Border Radius', 'gum-elementor-addon' ),
     
    289333        'size_units' => [ 'px', '%' ],
    290334        'selectors' => [
    291           '{{WRAPPER}} .price-period-switch .period.regular-period' => 'border-radius: {{TOP}}{{UNIT}} 0px 0px {{LEFT}}{{UNIT}};',
    292           '{{WRAPPER}} .price-period-switch .period.anual-period' => 'border-radius: 0px {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} 0px;',
     335          '{{WRAPPER}} .price-period-switch .period.anual-period' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{LEFT}}{{UNIT}} {{LEFT}}{{UNIT}};',
    293336        ]
    294337      ]
     
    297340
    298341
    299     $this->start_controls_tabs( 'period_styles' );
     342    $this->start_controls_tabs( 'period_styles',['separator' => 'before'] );
    300343
    301344    $this->start_controls_tab(
Note: See TracChangeset for help on using the changeset viewer.