start_controls_section( 'content_section', [ 'label' => __( 'Testimonials', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_CONTENT, ] ); $repeater = new \Elementor\Repeater(); $repeater->add_control( 'name', [ 'label' => __( 'Name', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::TEXT, 'default' => 'John Doe', ] ); $repeater->add_control( 'designation', [ 'label' => __( 'Designation', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::TEXT, 'default' => 'CEO, Company', ] ); $repeater->add_control( 'review', [ 'label' => __( 'Review', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::TEXTAREA, 'default' => 'Amazing service! Highly recommend.', ] ); $repeater->add_control( 'rating', [ 'label' => __( 'Star Rating', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 5, 'step' => 1, 'default' => 5, ] ); $repeater->add_control( 'image', [ 'label' => __( 'Photo', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::MEDIA, ] ); $this->add_control( 'testimonials', [ 'type' => \Elementor\Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'default' => [ [ 'name' => 'Sarah Johnson', 'designation' => 'Marketing Director', 'review' => 'Outstanding quality and support. Exceeded all expectations!', 'rating' => 5 ], [ 'name' => 'Michael Chen', 'designation' => 'CTO, TechCorp', 'review' => 'Incredibly powerful tool. Our team loves it every day.', 'rating' => 5 ], [ 'name' => 'Emma Williams', 'designation' => 'Freelance Designer', 'review' => 'Simple to use yet packed with features. A must-have!', 'rating' => 4 ], ], 'title_field' => '{{{ name }}}', ] ); $this->end_controls_section(); /* ===== LAYOUT ===== */ $this->start_controls_section( 'layout_section', [ 'label' => __( 'Layout', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'layout', [ 'label' => __( 'Card Layout', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => 'card', 'options' => [ 'card' => 'Card (Stacked)', 'horizontal' => 'Horizontal (Image Left)', 'minimal' => 'Minimal (No Card)', ], ] ); $this->add_control( 'show_quote_icon', [ 'label' => __( 'Show Quote Icon', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => 'yes', 'return_value' => 'yes', ] ); $this->add_control( 'quote_icon', [ 'label' => __( 'Quote Icon', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::ICONS, 'default' => [ 'value' => 'fas fa-quote-left', 'library' => 'fa-solid' ], 'condition' => [ 'show_quote_icon' => 'yes' ], ] ); $this->add_control( 'author_position', [ 'label' => __( 'Author Row Position', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => 'bottom', 'options' => [ 'top' => 'Top (above review)', 'bottom' => 'Bottom (below review)', ], ] ); $this->end_controls_section(); /* ===== SLIDER SETTINGS ===== */ $this->start_controls_section( 'slider_settings', [ 'label' => __( 'Slider Settings', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_CONTENT, ] ); $this->add_responsive_control( 'slides_per_view', [ 'label' => __( 'Slides Per View', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::NUMBER, 'default' => 1, 'tablet_default' => 1, 'mobile_default' => 1, 'min' => 1, 'max' => 4, ] ); $this->add_control( 'space_between', [ 'label' => __( 'Space Between (px)', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::NUMBER, 'default' => 24, ] ); $this->add_control( 'autoplay', [ 'label' => __( 'Autoplay', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => 'yes', ] ); $this->add_control( 'autoplay_delay', [ 'label' => __( 'Autoplay Delay (ms)', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::NUMBER, 'default' => 4000, 'condition' => [ 'autoplay' => 'yes' ], ] ); $this->add_control( 'pause_on_hover', [ 'label' => __( 'Pause On Hover', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => 'yes', 'condition' => [ 'autoplay' => 'yes' ], ] ); $this->add_control( 'show_arrows', [ 'label' => __( 'Show Arrows', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => 'yes', ] ); $this->add_control( 'prev_icon', [ 'label' => __( 'Prev Arrow Icon', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::ICONS, 'default' => [ 'library' => 'eicons', 'value' => 'eicon-chevron-left' ], 'condition' => [ 'show_arrows' => 'yes' ], ] ); $this->add_control( 'next_icon', [ 'label' => __( 'Next Arrow Icon', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::ICONS, 'default' => [ 'library' => 'eicons', 'value' => 'eicon-chevron-right' ], 'condition' => [ 'show_arrows' => 'yes' ], ] ); $this->add_control( 'show_pagination', [ 'label' => __( 'Show Dots', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => 'yes', ] ); $this->add_control( 'loop', [ 'label' => __( 'Infinite Loop', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => 'yes', ] ); $this->add_control( 'grab_cursor', [ 'label' => __( 'Grab Cursor', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => 'yes', ] ); $this->add_control( 'effect', [ 'label' => __( 'Transition Effect', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => 'slide', 'options' => [ 'slide' => __( 'Slide', 'admore-widgets-suite' ), 'fade' => __( 'Fade', 'admore-widgets-suite' ), 'coverflow' => __( 'Coverflow', 'admore-widgets-suite' ), 'cards' => __( 'Cards', 'admore-widgets-suite' ), 'creative' => __( 'Creative', 'admore-widgets-suite' ), ], 'separator' => 'before', ] ); $this->add_control( 'speed', [ 'label' => __( 'Transition Speed (ms)', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::NUMBER, 'default' => 500, 'min' => 100, 'max' => 2000, 'step' => 50, ] ); $this->add_control( 'centered_slides', [ 'label' => __( 'Centered Slides', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'return_value' => 'yes', ] ); $this->end_controls_section(); /* ===== STYLE: CARD ===== */ $this->start_controls_section( 'style_card', [ 'label' => __( 'Card', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'card_bg', [ 'label' => __( 'Background', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-card' => 'background-color: {{VALUE}};' ], ] ); $this->add_responsive_control( 'card_padding', [ 'label' => __( 'Padding', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em' ], 'default' => [ 'top' => '32', 'right' => '28', 'bottom' => '32', 'left' => '28', 'unit' => 'px', 'isLinked' => false ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-card' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};' ], ] ); $this->add_group_control( \Elementor\Group_Control_Border::get_type(), [ 'name' => 'card_border', 'selector' => '{{WRAPPER}} .eppro-testimonial-card', ] ); $this->add_responsive_control( 'card_radius', [ 'label' => __( 'Border Radius', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'default' => [ 'top' => '12', 'right' => '12', 'bottom' => '12', 'left' => '12', 'unit' => 'px', 'isLinked' => true ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-card' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};' ], ] ); $this->add_group_control( \Elementor\Group_Control_Box_Shadow::get_type(), [ 'name' => 'card_shadow', 'selector' => '{{WRAPPER}} .eppro-testimonial-card', ] ); $this->add_control( 'card_hover_heading', [ 'label' => __( 'Hover', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'card_hover_bg', [ 'label' => __( 'Background on Hover', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-card:hover' => 'background-color: {{VALUE}};' ], ] ); $this->add_group_control( \Elementor\Group_Control_Box_Shadow::get_type(), [ 'name' => 'card_hover_shadow', 'label' => __( 'Box Shadow on Hover', 'admore-widgets-suite' ), 'selector' => '{{WRAPPER}} .eppro-testimonial-card:hover', ] ); $this->add_control( 'card_hover_translate', [ 'label' => __( 'Lift on Hover (px)', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 20 ] ], 'default' => [ 'size' => 4 ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-card:hover' => 'transform: translateY(-{{SIZE}}{{UNIT}});' ], ] ); $this->end_controls_section(); /* ===== STYLE: IMAGE ===== */ $this->start_controls_section( 'style_image', [ 'label' => __( 'Photo', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'image_size', [ 'label' => __( 'Size', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 40, 'max' => 160 ] ], 'default' => [ 'size' => 52 ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-photo' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'image_radius', [ 'label' => __( 'Border Radius', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px', '%' ], 'default' => [ 'size' => 50, 'unit' => '%' ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-photo' => 'border-radius: {{SIZE}}{{UNIT}};' ], ] ); $this->add_group_control( \Elementor\Group_Control_Border::get_type(), [ 'name' => 'image_border', 'selector' => '{{WRAPPER}} .eppro-testimonial-photo', ] ); $this->add_control( 'image_bg', [ 'label' => __( 'Background Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-photo' => 'background-color: {{VALUE}};' ], ] ); $this->end_controls_section(); /* ===== STYLE: QUOTE ICON ===== */ $this->start_controls_section( 'style_quote', [ 'label' => __( 'Quote Icon', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, 'condition' => [ 'show_quote_icon' => 'yes' ], ] ); $this->add_control( 'quote_color', [ 'label' => __( 'Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => '#ede9fe', 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-quote' => 'color: {{VALUE}};' ], ] ); $this->add_responsive_control( 'quote_size', [ 'label' => __( 'Size', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 20, 'max' => 120 ] ], 'default' => [ 'size' => 48 ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-quote' => 'font-size: {{SIZE}}{{UNIT}};' ], ] ); $this->add_responsive_control( 'quote_margin', [ 'label' => __( 'Spacing', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::DIMENSIONS, 'size_units' => [ 'px' ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-quote' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};' ], ] ); $this->add_control( 'quote_opacity', [ 'label' => __( 'Opacity', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 0, 'max' => 1, 'step' => 0.05 ] ], 'default' => [ 'size' => 0.15 ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-quote' => 'opacity: {{SIZE}};' ], ] ); $this->end_controls_section(); /* ===== STYLE: REVIEW ===== */ $this->start_controls_section( 'style_review', [ 'label' => __( 'Review Text', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( \Elementor\Group_Control_Typography::get_type(), [ 'name' => 'review_typography', 'selector' => '{{WRAPPER}} .eppro-testimonial-review', ] ); $this->add_control( 'review_color', [ 'label' => __( 'Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-review' => 'color: {{VALUE}};' ], ] ); $this->add_responsive_control( 'review_margin', [ 'label' => __( 'Bottom Spacing', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-review' => 'margin-bottom: {{SIZE}}{{UNIT}};' ], ] ); $this->add_responsive_control( 'review_align', [ 'label' => __( 'Text Alignment', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => __( 'Left', 'admore-widgets-suite' ), 'icon' => 'eicon-text-align-left' ], 'center' => [ 'title' => __( 'Center', 'admore-widgets-suite' ), 'icon' => 'eicon-text-align-center' ], 'right' => [ 'title' => __( 'Right', 'admore-widgets-suite' ), 'icon' => 'eicon-text-align-right' ], ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-review' => 'text-align: {{VALUE}};' ], ] ); $this->add_control( 'review_font_style', [ 'label' => __( 'Font Style', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => 'normal', 'options' => [ 'normal' => __( 'Normal', 'admore-widgets-suite' ), 'italic' => __( 'Italic', 'admore-widgets-suite' ), ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-review' => 'font-style: {{VALUE}};' ], ] ); $this->end_controls_section(); /* ===== STYLE: NAME ===== */ $this->start_controls_section( 'style_name', [ 'label' => __( 'Name', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( \Elementor\Group_Control_Typography::get_type(), [ 'name' => 'name_typography', 'selector' => '{{WRAPPER}} .eppro-testimonial-name', ] ); $this->add_control( 'name_color', [ 'label' => __( 'Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-name' => 'color: {{VALUE}};' ], ] ); $this->add_group_control( \Elementor\Group_Control_Typography::get_type(), [ 'name' => 'designation_typography', 'label' => __( 'Designation Typography', 'admore-widgets-suite' ), 'selector' => '{{WRAPPER}} .eppro-testimonial-designation', ] ); $this->add_control( 'designation_color', [ 'label' => __( 'Designation Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-designation' => 'color: {{VALUE}};' ], ] ); $this->end_controls_section(); /* ===== STYLE: NAV ARROWS ===== */ $this->start_controls_section( 'style_nav', [ 'label' => __( 'Navigation Arrows', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, 'condition' => [ 'show_arrows' => 'yes' ], ] ); $this->add_control( 'arrow_icon_size', [ 'label' => __( 'Icon Size (px)', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 10, 'max' => 48 ] ], 'default' => [ 'size' => 18 ], 'selectors' => [ '{{WRAPPER}} .eppro-testi-arrow i' => 'font-size: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .eppro-testi-arrow svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'arrow_color', [ 'label' => __( 'Icon Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .eppro-testi-arrow i' => 'color: {{VALUE}};', '{{WRAPPER}} .eppro-testi-arrow svg' => 'fill: {{VALUE}};', ], ] ); $this->add_control( 'arrow_hover_color', [ 'label' => __( 'Icon Hover Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .swiper-button-prev:hover .eppro-testi-arrow i' => 'color: {{VALUE}};', '{{WRAPPER}} .swiper-button-prev:hover .eppro-testi-arrow svg' => 'fill: {{VALUE}};', '{{WRAPPER}} .swiper-button-next:hover .eppro-testi-arrow i' => 'color: {{VALUE}};', '{{WRAPPER}} .swiper-button-next:hover .eppro-testi-arrow svg' => 'fill: {{VALUE}};', ], ] ); $this->add_control( 'arrow_bg', [ 'label' => __( 'Background', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => 'rgba(0,0,0,0.3)', 'selectors' => [ '{{WRAPPER}} .swiper-button-prev' => 'background-color: {{VALUE}};', '{{WRAPPER}} .swiper-button-next' => 'background-color: {{VALUE}};', ], ] ); $this->add_control( 'arrow_hover_bg', [ 'label' => __( 'Background on Hover', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .swiper-button-prev:hover' => 'background-color: {{VALUE}};', '{{WRAPPER}} .swiper-button-next:hover' => 'background-color: {{VALUE}};', ], ] ); $this->add_control( 'arrow_size', [ 'label' => __( 'Button Size (px)', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 24, 'max' => 80 ] ], 'default' => [ 'size' => 40 ], 'selectors' => [ // margin-top keeps the button vertically centred at any size. '{{WRAPPER}} .swiper-button-prev' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}; margin-top: calc({{SIZE}}{{UNIT}} / -2);', '{{WRAPPER}} .swiper-button-next' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}; margin-top: calc({{SIZE}}{{UNIT}} / -2);', ], ] ); $this->add_control( 'arrow_radius', [ 'label' => __( 'Border Radius', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px', '%' ], 'default' => [ 'size' => 50, 'unit' => '%' ], 'selectors' => [ '{{WRAPPER}} .swiper-button-prev' => 'border-radius: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .swiper-button-next' => 'border-radius: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'arrow_border_color', [ 'label' => __( 'Border Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .swiper-button-prev' => 'border-color: {{VALUE}};', '{{WRAPPER}} .swiper-button-next' => 'border-color: {{VALUE}};', ], ] ); // No shadow by default; add one here if wanted. $this->add_group_control( \Elementor\Group_Control_Box_Shadow::get_type(), [ 'name' => 'arrow_box_shadow', 'label' => __( 'Shadow', 'admore-widgets-suite' ), 'selector' => '{{WRAPPER}} .swiper-button-prev, {{WRAPPER}} .swiper-button-next', ] ); $this->add_group_control( \Elementor\Group_Control_Box_Shadow::get_type(), [ 'name' => 'arrow_box_shadow_hover', 'label' => __( 'Hover Shadow', 'admore-widgets-suite' ), 'selector' => '{{WRAPPER}} .swiper-button-prev:hover, {{WRAPPER}} .swiper-button-next:hover', ] ); $this->end_controls_section(); /* ===== STYLE: STARS ===== */ $this->start_controls_section( 'style_stars', [ 'label' => __( 'Stars', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'star_color', [ 'label' => __( 'Star Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => '#f59e0b', 'selectors' => [ '{{WRAPPER}} .eppro-star-filled' => 'color: {{VALUE}};' ], ] ); $this->add_control( 'star_empty_color', [ 'label' => __( 'Empty Star Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => '#d1d5db', 'selectors' => [ '{{WRAPPER}} .eppro-star-empty' => 'color: {{VALUE}};' ], ] ); $this->add_responsive_control( 'star_size', [ 'label' => __( 'Star Size', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 10, 'max' => 40 ] ], 'default' => [ 'size' => 16 ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-rating' => 'font-size: {{SIZE}}{{UNIT}};' ], ] ); $this->add_responsive_control( 'star_gap', [ 'label' => __( 'Star Gap', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 12 ] ], 'default' => [ 'size' => 2 ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-rating' => 'gap: {{SIZE}}{{UNIT}};' ], ] ); $this->add_responsive_control( 'star_margin', [ 'label' => __( 'Bottom Spacing', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 30 ] ], 'selectors' => [ '{{WRAPPER}} .eppro-testimonial-rating' => 'margin-bottom: {{SIZE}}{{UNIT}};' ], ] ); $this->end_controls_section(); /* ===== STYLE: DOTS ===== */ $this->start_controls_section( 'style_dots', [ 'label' => __( 'Pagination Dots', 'admore-widgets-suite' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, 'condition' => [ 'show_pagination' => 'yes' ], ] ); $this->add_control( 'dot_color', [ 'label' => __( 'Dot Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => 'rgba(0,0,0,0.25)', 'selectors' => [ '{{WRAPPER}} .swiper-pagination-bullet' => 'background: {{VALUE}};' ], ] ); $this->add_control( 'dot_active_color', [ 'label' => __( 'Active Dot Color', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => '#7c3aed', 'selectors' => [ '{{WRAPPER}} .swiper-pagination-bullet-active' => 'background: {{VALUE}};' ], ] ); $this->add_responsive_control( 'dot_size', [ 'label' => __( 'Dot Size', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 4, 'max' => 24 ] ], 'default' => [ 'size' => 8 ], 'selectors' => [ '{{WRAPPER}} .swiper-pagination-bullet' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};' ], ] ); $this->add_control( 'dot_active_width', [ 'label' => __( 'Active Dot Width (pill)', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 4, 'max' => 48 ] ], 'default' => [ 'size' => 24 ], 'selectors' => [ '{{WRAPPER}} .swiper-pagination-bullet-active' => 'width: {{SIZE}}{{UNIT}};' ], ] ); $this->add_control( 'dot_border_radius', [ 'label' => __( 'Dot Border Radius', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 50 ] ], 'default' => [ 'size' => 50 ], 'selectors' => [ '{{WRAPPER}} .swiper-pagination-bullet' => 'border-radius: {{SIZE}}{{UNIT}};' ], ] ); $this->add_responsive_control( 'dot_gap', [ 'label' => __( 'Gap Between Dots', 'admore-widgets-suite' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 2, 'max' => 20 ] ], 'default' => [ 'size' => 4 ], 'selectors' => [ '{{WRAPPER}} .swiper-pagination-bullet' => 'margin: 0 {{SIZE}}{{UNIT}} !important;' ], ] ); $this->end_controls_section(); // Entrance animation — inherited from base $this->eppro_register_entrance_animation_controls(); } protected function render() { $s = $this->get_settings_for_display(); if ( empty( $s['testimonials'] ) ) { if ( \Elementor\Plugin::$instance->editor->is_edit_mode() ) { echo '
' . esc_html__( 'Testimonial Slider', 'admore-widgets-suite' ) . '
' . esc_html__( 'Add testimonials in the Content tab.', 'admore-widgets-suite' ) . '