PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.3.0
ShopBuilder – WooCommerce Builder For Elementor v3.3.0
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
← All changes | app/Elementor/Helper/ControlSelectors.php +70 -138 3.4.23.3.0 View file →
@@ -282,9 +282,9 @@
282 282 'arrows_border_color' => '{{WRAPPER}} .rtsb-carousel-slider .rtsb-slider-btn',
283 283 'arrows_hover_color' => '{{WRAPPER}} .rtsb-carousel-slider .rtsb-slider-btn:hover',
284 284 'arrows_hover_bg_color' => '{{WRAPPER}} .rtsb-carousel-slider .rtsb-slider-btn:hover',
285 285 'arrows_hover_border_color' => '{{WRAPPER}} .rtsb-carousel-slider .rtsb-slider-btn:hover',
286 - 'dots_gap' => '{{WRAPPER}} .rtsb-slider-pagination .swiper-pagination-bullet',
286 + 'dots_gap' => '{{WRAPPER}} .rtsb-carousel-slider .swiper-wrapper',
287 287 'dots_size' => '{{WRAPPER}} .rtsb-slider-pagination .swiper-pagination-bullet',
288 288 'dot_color' => '{{WRAPPER}} .rtsb-slider-pagination .swiper-pagination-bullet',
289 289 'dot_active_color' => '{{WRAPPER}} .rtsb-slider-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active',
290 290 // Pagination.
@@ -327,9 +327,9 @@
327 327 */
328 328 private static function general_widget_selectors(): array {
329 329 $selectors = [
330 330 'rtsb-product-breadcrumbs' => [
331 - 'breadcrumbs_align' => '{{WRAPPER}} .rtsb-breadcrumb .woocommerce-breadcrumb',
331 + 'breadcrumbs_align' => '{{WRAPPER}} .rtsb-breadcrumb',
332 332 'text_color' => '{{WRAPPER}} .rtsb-breadcrumb .woocommerce-breadcrumb',
333 333 'link_color' => '{{WRAPPER}} .rtsb-breadcrumb .woocommerce-breadcrumb a',
334 334 'link_hover_color' => '{{WRAPPER}} .rtsb-breadcrumb .woocommerce-breadcrumb a:hover',
335 335 'item_spacing' => '{{WRAPPER}} .rtsb-breadcrumb .woocommerce-breadcrumb .breadcrumb-separator',
@@ -426,14 +426,14 @@
426 426 'table_header_typo' => '{{WRAPPER}} .rtsb-wishlist-content table thead th',
427 427 'table_header_align' => '{{WRAPPER}} .rtsb-wishlist-content table thead th',
428 428 'table_header_color' => '{{WRAPPER}} .rtsb-wishlist-content table thead th',
429 429 'table_header_bg_color' => '{{WRAPPER}} .rtsb-wishlist-content table thead th',
430 - 'table_item_typo' => '{{WRAPPER}} .rtsb-wishlist-content table td,{{WRAPPER}} .rtsb-wishlist-content table td a,{{WRAPPER}} .rtsb-wishlist-content table td .rtsb-partial-pay-avail-note span,{{WRAPPER}} .rtsb-wishlist-content table td .rtsb-bis-out-of-stock-message,{{WRAPPER}} .rtsb-wishlist-content table td .rtsb-bis-out-of-stock-details-message,{{WRAPPER}} .rtsb-wishlist-content table td .rtsb-bis-privacy-checkbox label span',
430 + 'table_item_typo' => '{{WRAPPER}} .rtsb-wishlist-content table td,{{WRAPPER}} .rtsb-wishlist-content table td a',
431 431 'table_item_align' => '{{WRAPPER}} .rtsb-wishlist-content table td',
432 - 'table_item_color' => '{{WRAPPER}} .rtsb-wishlist-content table td,{{WRAPPER}} .rtsb-wishlist-content table td a,{{WRAPPER}} .rtsb-wishlist-content table td .rtsb-partial-pay-avail-note span,{{WRAPPER}} .rtsb-wishlist-content table td .rtsb-bis-out-of-stock-message,{{WRAPPER}} .rtsb-wishlist-content table td .rtsb-bis-out-of-stock-details-message,{{WRAPPER}} .rtsb-wishlist-content table td .rtsb-bis-privacy-checkbox label span',
432 + 'table_item_color' => '{{WRAPPER}} .rtsb-wishlist-content table td,{{WRAPPER}} .rtsb-wishlist-content table td a',
433 433 'table_item_bg_color' => '{{WRAPPER}} .rtsb-wishlist-content table td',
434 - 'column_width' => '{{WRAPPER}} .rtsb-wishlist-content table thead th,{{WRAPPER}} .rtsb-wishlist-content table tbody td',
435 - 'table_item_text_decoration' => '{{WRAPPER}} .rtsb-wishlist-content table td, {{WRAPPER}} .rtsb-wishlist-content table td a, {{WRAPPER}} .rtsb-wishlist-content table td a span, {{WRAPPER}} .rtsb-wishlist-content table td .rtsb-partial-pay-avail-note span, {{WRAPPER}} .rtsb-wishlist-content table td .rtsb-bis-out-of-stock-message, {{WRAPPER}} .rtsb-wishlist-content table td .rtsb-bis-out-of-stock-details-message, {{WRAPPER}} .rtsb-wishlist-content table td .rtsb-bis-privacy-checkbox label span',
434 + 'header_cell_width' => '{{WRAPPER}} .rtsb-wishlist-content table thead th',
435 + 'item_cell_width' => '{{WRAPPER}} .rtsb-wishlist-content table tbody td',
436 436 ],
437 437 'rtsb-advanced-heading' => AdvancedHeading\Selectors::get_selectors(),
438 438 'rtsb-dropcaps' => DropCaps\Selectors::get_selectors(),
439 439 'rtsb-shopbuilder-button' => ShopBuilderButton\Selectors::get_selectors(),
@@ -461,18 +461,8 @@
461 461 *
462 462 * @return array
463 463 */
464 464 private static function product_widget_selectors(): array {
465 - // Swatch size belongs to the Variation Swatches plugin once it is active: it
466 - // prints its own Color & Image width/height rule, which this widget's size
467 - // controls would outrank (element-scoped Elementor CSS, and these controls
468 - // carry a default so they always print). Dropping the plugin's terms from
469 - // the size selectors leaves that setting in charge, while the controls keep
470 - // sizing ShopBuilder's own markup — the dropdowns and the built-in module.
471 - $swatch_size_target = defined( 'RTWPVS_VERSION' )
472 - ? ''
473 - : '.rtwpvs {{WRAPPER}} .rtwpvs-terms-wrapper .rtwpvs-term:not(.rtwpvs-radio-term), ';
474 -
475 465 $selectors = [
476 466 'rtsb-related-product' => array_merge(
477 467 self::products_loop_default_selector(),
478 468 self::carousel_selector(),
@@ -545,14 +535,9 @@
545 535 'rtsb-product-additional-info' => [
546 536 'heading_typography' => '{{WRAPPER}} .rtsb-product-additional-information h2',
547 537 'heading_color' => '{{WRAPPER}} .rtsb-product-additional-information h2',
548 538 'heading_margin' => '{{WRAPPER}} .rtsb-product-additional-information h2',
549 - // Target the label + value cells (and the value's <p>) directly, by their WooCommerce
550 - // classes, so Content Typography (font-weight, text-transform, …) reliably overrides the
551 - // theme's higher-specificity `.woocommerce-js table.shop_attributes th` (0,2,2) rule and
552 - // applies UNIFORMLY. Styling only `.shop_attributes` (the table) let the theme's direct
553 - // th/cell rules win the cascade, so labels and values ended up styled inconsistently.
554 - 'content_typography' => '{{WRAPPER}} .shop_attributes th.woocommerce-product-attributes-item__label, {{WRAPPER}} .shop_attributes td.woocommerce-product-attributes-item__value, {{WRAPPER}} .shop_attributes td.woocommerce-product-attributes-item__value p',
539 + 'content_typography' => '{{WRAPPER}} .shop_attributes',
555 540 'content_color' => '{{WRAPPER}} .shop_attributes',
556 541 'content_border' => '{{WRAPPER}} .shop_attributes td, {{WRAPPER}} .shop_attributes th',
557 542 'content_padding' => '{{WRAPPER}} .shop_attributes td, {{WRAPPER}} .shop_attributes th',
558 543 ],
@@ -601,30 +586,23 @@
601 586 'qunatity_padding' => '{{WRAPPER}} .rtsb-product-add-to-cart .quantity input',
602 587 'quantity_wrapper_background_color' => '{{WRAPPER}} .rtsb-product-add-to-cart .quantity .rtsb-quantity-box-group',
603 588 'qunatity_wrapper_padding' => '{{WRAPPER}} .rtsb-product-add-to-cart .quantity .rtsb-quantity-box-group',
604 589 'quantity_wrapper_radius' => '{{WRAPPER}} .rtsb-product-add-to-cart .quantity .rtsb-quantity-box-group',
605 - 'variation_padding' => '{{WRAPPER}} .rtsb-product-add-to-cart .variations select, .rtwpvs {{WRAPPER}} .rtwpvs-terms-wrapper .rtwpvs-term:not(.rtwpvs-radio-term).rtwpvs-button-term, {{WRAPPER}} .rtsb-product-add-to-cart .rtsb-terms-wrapper .rtsb-term:not(.rtsb-radio-term).rtsb-button-term',
590 + 'variation_padding' => '{{WRAPPER}} .rtsb-product-add-to-cart .variations select, .rtwpvs {{WRAPPER}} .rtwpvs-terms-wrapper .rtwpvs-term:not(.rtwpvs-radio-term).rtwpvs-button-term',
606 591 'variation_label_margin' => '{{WRAPPER}} .rtsb-product-add-to-cart table.variations tr .label label',
607 592 'variation_item_margin' => '{{WRAPPER}} .rtsb-product-add-to-cart table.variations tr:not(:last-child) .value',
608 - 'variation_border' => '{{WRAPPER}} .rtsb-product-add-to-cart .variations select, {{WRAPPER}} .rtsb-product-add-to-cart .rtsb-terms-wrapper .rtsb-term:not(.rtsb-radio-term)',
593 + 'variation_border' => '{{WRAPPER}} .rtsb-product-add-to-cart .variations select',
609 594 'price_typography' => '.single-product {{WRAPPER}} .single_variation .price',
610 595 'price_color' => '.single-product {{WRAPPER}} .single_variation :is(.price, .price .amount, .price ins)',
611 596 'price_margin' => '.single-product {{WRAPPER}} .single_variation :is(.price, .price .amount, .price ins)',
612 - 'variation_height' => $swatch_size_target . '{{WRAPPER}} .rtsb-product-add-to-cart .variations select, {{WRAPPER}} .rtsb-product-add-to-cart .rtsb-terms-wrapper .rtsb-term:not(.rtsb-radio-term)',
613 - 'variation_width' => $swatch_size_target . '{{WRAPPER}} .rtsb-product-add-to-cart .variations select, {{WRAPPER}} .rtsb-product-add-to-cart .rtsb-terms-wrapper .rtsb-term:not(.rtsb-radio-term)',
614 - 'variation_border_radius' => '.rtwpvs {{WRAPPER}} .rtwpvs-terms-wrapper .rtwpvs-term:not(.rtwpvs-radio-term), {{WRAPPER}} .rtsb-product-add-to-cart .variations select, {{WRAPPER}} .rtsb-product-add-to-cart .rtsb-terms-wrapper .rtsb-term:not(.rtsb-radio-term)',
597 + 'variation_height' => '.rtwpvs {{WRAPPER}} .rtwpvs-terms-wrapper .rtwpvs-term:not(.rtwpvs-radio-term), {{WRAPPER}} .rtsb-product-add-to-cart .variations select',
598 + 'variation_width' => '.rtwpvs {{WRAPPER}} .rtwpvs-terms-wrapper .rtwpvs-term:not(.rtwpvs-radio-term), {{WRAPPER}} .rtsb-product-add-to-cart .variations select',
599 + 'variation_border_radius' => '.rtwpvs {{WRAPPER}} .rtwpvs-terms-wrapper .rtwpvs-term:not(.rtwpvs-radio-term), {{WRAPPER}} .rtsb-product-add-to-cart .variations select',
615 600 'variation_label_typography' => '{{WRAPPER}} .rtsb-product-add-to-cart table.variations tr .label label',
616 601 'variation_stock_typography' => '{{WRAPPER}} .rtsb-product-add-to-cart .woocommerce-variation-availability .stock',
617 602 'variation_label_color' => '{{WRAPPER}} .rtsb-product-add-to-cart table.variations tr .label label',
618 603 'variation_stock_color' => '{{WRAPPER}} .rtsb-product-add-to-cart .woocommerce-variation-availability .stock',
619 604 'variation_outofstock_color' => '{{WRAPPER}} .rtsb-product-add-to-cart .woocommerce-variation-availability .stock.out-of-stock',
620 - 'variation_swatch_border_color' => '{{WRAPPER}} .rtsb-product-add-to-cart',
621 - 'variation_swatch_selected_color' => '{{WRAPPER}} .rtsb-product-add-to-cart',
622 - 'variation_checkmark_bg_color' => '{{WRAPPER}} .rtsb-product-add-to-cart',
623 - 'variation_checkmark_size' => '{{WRAPPER}} .rtsb-product-add-to-cart',
624 - 'variation_checkmark_icon_size' => '{{WRAPPER}} .rtsb-product-add-to-cart',
625 - 'variation_clear_margin' => '{{WRAPPER}} .rtsb-product-add-to-cart .reset_variations',
626 - 'variation_clear_padding' => '{{WRAPPER}} .rtsb-product-add-to-cart .reset_variations',
627 605
628 606 ],
629 607 'rtsb-product-categories' => [
630 608 'align' => '{{WRAPPER}} .rtsb-product-categories',
@@ -653,11 +631,10 @@
653 631 'image_width' => '{{WRAPPER}} .rtsb-product-images .woocommerce-product-gallery__image a > img',
654 632 'image_border' => '{{WRAPPER}} .rtwpvg-wrapper .rtwpvg-slider-wrapper,{{WRAPPER}} .rtsb-product-images .woocommerce-product-gallery__image, {{WRAPPER}} .rtsb-product-images .product-vg-gallery',
655 633 'image_border_radius' => '{{WRAPPER}} .rtsb-product-images .woocommerce-product-gallery__image',
656 634 'gallery_thumbs_column' => '{{WRAPPER}} div.images .flex-control-thumbs li',
657 - 'thumb_border' => '{{WRAPPER}} .rtsb-vg-main-slider-wrapper .rtsb-vs-thumb-item, {{WRAPPER}} .rtsb-product-images div.images .flex-control-thumbs li img, {{WRAPPER}} .rtsb-product-images .rtwpvg-thumbnail-wrapper .rtwpvg-thumbnail-slider .rtwpvg-thumbnail-image, {{WRAPPER}} .rtsb-product-images .rtwpvg-grid-wrapper .rtwpvg-grid-layout .rtwpvg-gallery-image',
658 - 'thumbs_border_radius' => '{{WRAPPER}} .rtsb-vg-main-slider-wrapper :is(.rtsb-vs-thumb-item, .rtsb-vs-thumb-item img), {{WRAPPER}} .rtsb-product-images div.images .flex-control-thumbs li img, {{WRAPPER}} .rtsb-product-images .rtwpvg-thumbnail-wrapper .rtwpvg-thumbnail-slider :is(.rtwpvg-thumbnail-image, img), {{WRAPPER}} .rtsb-product-images .rtwpvg-grid-wrapper .rtwpvg-grid-layout :is(.rtwpvg-gallery-image, img)',
659 - 'gallery_thumbs_padding' => '{{WRAPPER}} .rtsb-vg-main-slider-wrapper .rtsb-vs-thumb-item, {{WRAPPER}} .rtsb-product-images div.images .flex-control-thumbs li img, {{WRAPPER}} .rtsb-product-images .rtwpvg-thumbnail-wrapper .rtwpvg-thumbnail-slider .rtwpvg-thumbnail-image, {{WRAPPER}} .rtsb-product-images .rtwpvg-grid-wrapper .rtwpvg-grid-layout .rtwpvg-gallery-image',
635 + 'thumb_border' => '{{WRAPPER}} .rtsb-vg-main-slider-wrapper .rtsb-vs-thumb-item, {{WRAPPER}} .rtsb-product-images div.images .flex-control-thumbs li img, {{WRAPPER}} .rtsb-product-images .rtwpvg-thumbnail-image img, {{WRAPPER}} .rtsb-product-images .rtwpvg-grid-layout .rtwpvg-gallery-image',
636 + 'thumbs_border_radius' => '{{WRAPPER}} .rtsb-product-images div.images .flex-control-thumbs li img, {{WRAPPER}} .rtsb-product-images :is( .rtwpvg-thumbnail-image, img), {{WRAPPER}} .rtsb-product-images .rtwpvg-grid-layout .rtwpvg-gallery-image',
660 637 'flash_sale_typography' => '{{WRAPPER}} .rtsb-product-images .onsale',
661 638 'product_flash_sale_color' => '{{WRAPPER}} .rtsb-product-images .onsale',
662 639 'flash_sale_bg_color' => '{{WRAPPER}} .rtsb-product-images .onsale',
663 640 'flash_sale_badge_width' => '{{WRAPPER}} .rtsb-product-images .onsale',
@@ -691,10 +668,10 @@
691 668 'align' => '{{WRAPPER}} .product_meta',
692 669 'row_gap' => '{{WRAPPER}} .rtsb-product-meta .product_meta',
693 670 'column_gap' => '{{WRAPPER}} .rtsb-product-meta .product_meta',
694 671 'meta_padding' => '{{WRAPPER}} .rtsb-product-meta .product_meta :is(.sku_wrapper, .posted_in, .tagged_as)',
695 - 'label_typo' => '{{WRAPPER}} .rtsb-product-meta .product_meta .rtsb-meta-label',
696 - 'meta_label_color' => '{{WRAPPER}} .rtsb-product-meta .product_meta .rtsb-meta-label',
672 + 'label_typo' => '{{WRAPPER}} .rtsb-product-meta .product_meta :is(.sku_wrapper, .posted_in, .tagged_as)',
673 + 'meta_label_color' => '{{WRAPPER}} .rtsb-product-meta .product_meta :is(.sku_wrapper, .posted_in, .tagged_as)',
697 674 'value_typo' => '{{WRAPPER}} .rtsb-product-meta .product_meta :is(.sku, .posted_in a, .tagged_as a)',
698 675 'meta_value_color' => '{{WRAPPER}} .rtsb-product-meta .product_meta :is(.sku, .posted_in a, .tagged_as a)',
699 676 'meta_value_hover_color' => '{{WRAPPER}} .rtsb-product-meta .product_meta :is(.posted_in a, .tagged_as a):hover',
700 677 ],
@@ -732,20 +709,20 @@
732 709 'meta_value_color' => '{{WRAPPER}} .rtsb-product-sku .sku-value',
733 710 'meta_value_hover_color' => '{{WRAPPER}} .rtsb-product-sku .sku-value:hover',
734 711 ],
735 712 'rtsb-product-stock' => [
736 - 'stock_text_typography' => '{{WRAPPER}} .rtsb-product-stock .stock .rtsb-stock-text',
737 - 'in_stock_color' => '{{WRAPPER}} .rtsb-product-stock .stock.in-stock .rtsb-stock-text',
738 - 'outof_stock_color' => '{{WRAPPER}} .rtsb-product-stock .stock.out-of-stock .rtsb-stock-text',
739 - 'backorder_stock_color' => '{{WRAPPER}} .rtsb-product-stock .stock.available-on-backorder .rtsb-stock-text',
713 + 'stock_text_typography' => '{{WRAPPER}} .rtsb-product-stock .stock',
714 + 'in_stock_color' => '{{WRAPPER}} .rtsb-product-stock .stock.in-stock',
715 + 'outof_stock_color' => '{{WRAPPER}} .rtsb-product-stock .stock.out-of-stock',
716 + 'backorder_stock_color' => '{{WRAPPER}} .rtsb-product-stock .stock.available-on-backorder',
740 717 'icon_size' => [
741 718 'icon' => '{{WRAPPER}} .rtsb-product-stock .stock i',
742 719 'svg' => '{{WRAPPER}} .rtsb-product-stock .stock svg',
743 720 ],
744 - 'icon_gap' => '{{WRAPPER}} .rtsb-product-stock .stock :is(i, svg)',
745 - 'stock_alignment' => '{{WRAPPER}} .rtsb-product-stock > .stock',
746 - 'stock_padding' => '{{WRAPPER}} .rtsb-product-stock > .stock',
747 - 'stock_margin' => '{{WRAPPER}} .rtsb-product-stock > .stock',
721 + 'icon_gap' => '{{WRAPPER}} .rtsb-product-stock .stock i',
722 + 'stock_alignment' => '{{WRAPPER}} .rtsb-product-stock p',
723 + 'stock_padding' => '{{WRAPPER}} .rtsb-product-stock p',
724 + 'stock_margin' => '{{WRAPPER}} .rtsb-product-stock p',
748 725 ],
749 726 'rtsb-product-tabs' => array_merge(
750 727 self::reviews_settings_selecotor(),
751 728 [
@@ -770,9 +747,9 @@
770 747 'tab_title_typography' => '.rtsb-builder-content {{WRAPPER}} .rtsb-product-tabs .woocommerce-tabs .wc-tab h2',
771 748 'tab_title_gap' => '.rtsb-builder-content {{WRAPPER}} .rtsb-product-tabs .woocommerce-tabs .wc-tab h2',
772 749 'tab_content_title_color' => '.rtsb-builder-content {{WRAPPER}} .rtsb-product-tabs .woocommerce-tabs .woocommerce-Tabs-panel > h2:first-child, {{WRAPPER}} .rtsb-product-tabs .woocommerce-tabs .woocommerce-Tabs-panel .woocommerce-Reviews-title',
773 750
774 - 'additional_info_typography' => '.rtsb-builder-content {{WRAPPER}} .rtsb-product-tabs .woocommerce-tabs .wc-tab .shop_attributes :is(th, td, td p)',
751 + 'additional_info_typography' => '.rtsb-builder-content {{WRAPPER}} .rtsb-product-tabs .woocommerce-tabs .wc-tab .shop_attributes',
775 752 'attributes_gap' => '.rtsb-builder-content {{WRAPPER}} .rtsb-product-tabs table.shop_attributes td,{{WRAPPER}} .rtsb-product-tabs table.shop_attributes th',
776 753 ]
777 754 ),
778 755 'rtsb-product-title' => [
@@ -790,48 +767,30 @@
790 767 'align' => '{{WRAPPER}}',
791 768 'text_color' => '{{WRAPPER}} :is(.rtsb-short-description , p)',
792 769 'text_shadow' => '{{WRAPPER}} .rtsb-short-description, {{WRAPPER}} .rtsb-short-description p',
793 770 ],
794 - // The widget badge lives inside `{{WRAPPER}} .rtsb-product-onsale`; the Badges
795 - // module also renders group badges on the main product gallery (above-image
796 - // position). Style both from the same controls by pairing the widget selector
797 - // with a gallery-scoped selector for the module group badges. The gallery
798 - // scope (`.woocommerce-product-gallery`/`.rtsb-product-images`) keeps related
799 - // product card badges untouched.
800 771 'rtsb-product-onsale' => [
801 - 'flash_sale_typography' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline), :is(.woocommerce-product-gallery, .rtsb-product-images) .rtsb-badge-group-style :is(.rtsb-tag-fill, .rtsb-tag-outline)',
802 - 'product_flash_sale_color' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline), :is(.woocommerce-product-gallery, .rtsb-product-images) .rtsb-badge-group-style :is(.rtsb-tag-fill, .rtsb-tag-outline)',
803 - 'flash_sale_bg_color' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline), :is(.woocommerce-product-gallery, .rtsb-product-images) .rtsb-badge-group-style :is(.rtsb-tag-fill, .rtsb-tag-outline)',
804 - 'flash_sale_border_color' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline), {{WRAPPER}} .rtsb-tag-outline.angle-right::after, :is(.woocommerce-product-gallery, .rtsb-product-images) .rtsb-badge-group-style :is(.rtsb-tag-fill, .rtsb-tag-outline)',
805 - 'flash_sale_badge_width' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline), :is(.woocommerce-product-gallery, .rtsb-product-images) .rtsb-badge-group-style :is(.rtsb-tag-fill, .rtsb-tag-outline)',
806 - 'flash_sale_badge_height' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline), :is(.woocommerce-product-gallery, .rtsb-product-images) .rtsb-badge-group-style :is(.rtsb-tag-fill, .rtsb-tag-outline)',
807 - 'flash_sale_badge_border_radius' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline), :is(.woocommerce-product-gallery, .rtsb-product-images) .rtsb-badge-group-style :is(.rtsb-tag-fill, .rtsb-tag-outline)',
772 + 'flash_sale_typography' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline)',
773 + 'product_flash_sale_color' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline)',
774 + 'flash_sale_bg_color' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline)',
775 + 'flash_sale_border_color' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline), {{WRAPPER}} .rtsb-tag-outline.angle-right::after',
776 + 'flash_sale_badge_width' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline)',
777 + 'flash_sale_badge_height' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline)',
778 + 'flash_sale_badge_border_radius' => '{{WRAPPER}} .rtsb-product-onsale :is(.onsale, .rtsb-tag-fill, .rtsb-tag-outline)',
808 779 'product_badges' => [
809 - // Match BOTH the free wrapper (.rtsb-product-onsale, from
810 - // templates/elementor/single-product/product-badges.php) AND the pro wrapper
811 - // (.rtsb-product-badges-widgets, from the pro template override). Scoping only to
812 - // `.rtsb-product-onsale` made every badge style control (typography/color/bg/
813 - // border/padding/margin) silently no-op on pro sites, where that div is absent.
814 - // `:is()` matches the most specific arg, preserving the original (0,3,0) specificity.
815 - // Padding/margin also target the Badges-module group badges on the product gallery.
816 - 'typography' => '{{WRAPPER}} :is(.rtsb-product-onsale, .rtsb-product-badges-widgets) :is(.rtsb-tag-fill, .rtsb-tag-outline)',
817 - 'color' => '{{WRAPPER}} :is(.rtsb-product-onsale, .rtsb-product-badges-widgets) :is(.rtsb-tag-fill,.rtsb-tag-outline)',
818 - 'bg_color' => '{{WRAPPER}} :is(.rtsb-product-onsale, .rtsb-product-badges-widgets) :is(.rtsb-tag-fill,.rtsb-tag-outline)',
819 - 'border_color' => '{{WRAPPER}} :is(.rtsb-product-onsale, .rtsb-product-badges-widgets) :is(.rtsb-tag-fill,.rtsb-tag-outline),{{WRAPPER}} .rtsb-tag-outline.angle-right::after',
820 - 'border_radius' => '{{WRAPPER}} :is(.rtsb-product-onsale, .rtsb-product-badges-widgets) :is(.rtsb-tag-fill,.rtsb-tag-outline)',
821 - 'padding' => '{{WRAPPER}} :is(.rtsb-product-onsale, .rtsb-product-badges-widgets) :is(.rtsb-tag-fill,.rtsb-tag-outline), :is(.woocommerce-product-gallery, .rtsb-product-images) .rtsb-badge-group-style :is(.rtsb-tag-fill, .rtsb-tag-outline)',
822 - 'margin' => '{{WRAPPER}} :is(.rtsb-product-onsale, .rtsb-product-badges-widgets) :is(.rtsb-tag-fill,.rtsb-tag-outline), :is(.woocommerce-product-gallery, .rtsb-product-images) .rtsb-badge-group-style :is(.rtsb-tag-fill, .rtsb-tag-outline)',
780 + 'typography' => '{{WRAPPER}} .rtsb-product-onsale :is(.rtsb-tag-fill, .rtsb-tag-outline)',
781 + 'color' => '{{WRAPPER}} .rtsb-product-onsale :is(.rtsb-tag-fill,.rtsb-tag-outline)',
782 + 'bg_color' => '{{WRAPPER}} .rtsb-product-onsale :is(.rtsb-tag-fill,.rtsb-tag-outline)',
783 + 'border_color' => '{{WRAPPER}} .rtsb-product-onsale :is(.rtsb-tag-fill,.rtsb-tag-outline),{{WRAPPER}} .rtsb-tag-outline.angle-right::after',
784 + 'border_radius' => '{{WRAPPER}} .rtsb-product-onsale :is(.rtsb-tag-fill,.rtsb-tag-outline)',
785 + 'padding' => '{{WRAPPER}} .rtsb-product-onsale :is(.rtsb-tag-fill,.rtsb-tag-outline)',
786 + 'margin' => '{{WRAPPER}} .rtsb-product-onsale :is(.rtsb-tag-fill,.rtsb-tag-outline)',
823 787 'position_x' => '',
824 788 'position_y' => '',
825 789 ],
826 790 'badges_module' => [
827 - // Compound (no descendant combinator): `.rtsb-badge-group-style` and `.rtsb-promotion`
828 - // are emitted on the SAME element by BadgesFrontEnd::group_badges_html(). The pro
829 - // single-product template drops the outer `.rtsb-promotion` wrapper, so a descendant
830 - // selector matches nothing and the Direction/Alignment controls silently no-op.
831 - 'direction' => '{{WRAPPER}} .rtsb-promotion.rtsb-badge-group-style',
832 - 'alignment' => '{{WRAPPER}} .rtsb-promotion.rtsb-badge-group-style',
833 - 'alignment_wrap' => '{{WRAPPER}} .rtsb-badge-container .rtsb-promotion:not(.rtsb-badge-group-style)',
791 + 'direction' => '{{WRAPPER}} .rtsb-promotion .rtsb-badge-group-style',
792 + 'alignment' => '{{WRAPPER}} .rtsb-promotion .rtsb-badge-group-style',
834 793 ],
835 794 ],
836 795 ];
837 796
@@ -886,8 +845,9 @@
886 845 'mode_button_align' => '{{WRAPPER}}',
887 846 'mode_button_height' => '{{WRAPPER}} .rtsb-archive-view-mode a',
888 847 'mode_button_width' => '{{WRAPPER}} .rtsb-archive-view-mode a',
889 848 'mode_button_gap' => '{{WRAPPER}} .rtsb-archive-view-mode',
849 + 'mode_button_color' => '{{WRAPPER}} .rtsb-archive-view-mode a',
890 850 'mode_button_bg_color' => '{{WRAPPER}} .rtsb-archive-view-mode a',
891 851 'text_color' => '{{WRAPPER}} .rtsb-archive-view-mode a',
892 852 'mode_button_border' => '{{WRAPPER}} .rtsb-archive-view-mode a',
893 853 'mode_button_bg_hover_color' => '{{WRAPPER}} .rtsb-archive-view-mode a:hover,{{WRAPPER}} .rtsb-archive-view-mode a.active',
@@ -897,12 +857,9 @@
897 857 ],
898 858 'rtsb-archive-result-count' => [
899 859 'align' => '{{WRAPPER}}',
900 860 'text_color' => '{{WRAPPER}}',
901 - // Also target the inner <p> (woocommerce_result_count output): text-decoration
902 - // is not inherited and does not draw through the descendant block, so it must
903 - // hit the text element directly. Other typography keeps working via the div.
904 - 'typo' => '{{WRAPPER}} .rtsb-archive-result-count, {{WRAPPER}} .rtsb-archive-result-count .woocommerce-result-count',
861 + 'typo' => '{{WRAPPER}} .rtsb-archive-result-count',
905 862 'text_shadow' => '{{WRAPPER}} .rtsb-archive-result-count',
906 863 ],
907 864 'rtsb-products-ordering' => [
908 865 'typo' => '{{WRAPPER}} .rtsb-archive-catalog-ordering :is( .woocommerce-ordering, select )',
@@ -956,9 +913,9 @@
956 913 'rtsb-product-cart-totals' => [
957 914 'show_title' => '{{WRAPPER}} .rtsb-cart-totals h2',
958 915 'table_min_width' => '.rtsb-builder-content {{WRAPPER}} .rtsb-table-horizontal-scroll-on-mobile table.shop_table',
959 916 // Title Style.
960 - 'title_align' => '{{WRAPPER}} .rtsb-cart-totals h2',
917 + 'title_align' => '{{WRAPPER}}',
961 918 'title_typo' => '{{WRAPPER}} .rtsb-cart-totals h2',
962 919 'title_color' => '{{WRAPPER}} .rtsb-cart-totals h2',
963 920 'title_text_stroke' => '{{WRAPPER}} .rtsb-cart-totals h2',
964 921 'title_text_shadow' => '{{WRAPPER}} .rtsb-cart-totals h2',
@@ -1012,9 +969,9 @@
1012 969 'coupon_input_width' => '{{WRAPPER}} .woocommerce-cart-form .coupon input',
1013 970 'coupon_padding' => '{{WRAPPER}} .woocommerce-cart-form .coupon input',
1014 971 'coupon_border_radius' => '{{WRAPPER}} .woocommerce-cart-form .coupon input',
1015 972 'coupon_input_border' => '{{WRAPPER}} .woocommerce-cart-form .coupon .input-text',
1016 - 'input_text_color' => '{{WRAPPER}} .woocommerce-cart-form input, {{WRAPPER}} .woocommerce-cart-form input::placeholder',
973 + 'input_text_color' => '{{WRAPPER}} .woocommerce-cart-form input',
1017 974 'input_bg_color' => '{{WRAPPER}} .woocommerce-cart-form input',
1018 975
1019 976 'return_shop_button_typography' => '{{WRAPPER}} .return-to-shop .button',
1020 977 'return_shop_button_height' => '{{WRAPPER}} .return-to-shop .button',
@@ -1078,14 +1035,14 @@
1078 1035 'th' => '{{WRAPPER}} .shop_table.cart tr th',
1079 1036 'td' => '{{WRAPPER}} .shop_table.cart tr td',
1080 1037 ],
1081 1038
1082 - 'clear_cart_button_bg_color' => '{{WRAPPER}} .woocommerce-cart-form .button.rtsb-clear-cart-items',
1083 - 'clear_cart_button_text_color' => '{{WRAPPER}} .woocommerce-cart-form .button.rtsb-clear-cart-items',
1084 - 'clear_cart_button_border_color' => '{{WRAPPER}} .woocommerce-cart-form .button.rtsb-clear-cart-items',
1085 - 'clear_cart_button_bg_color_hover' => '{{WRAPPER}} .woocommerce-cart-form .button.rtsb-clear-cart-items:hover',
1086 - 'clear_cart_button_text_color_hover' => '{{WRAPPER}} .woocommerce-cart-form .button.rtsb-clear-cart-items:hover',
1087 - 'clear_cart_button_border_color_hover' => '{{WRAPPER}} .woocommerce-cart-form .button.rtsb-clear-cart-items:hover',
1039 + 'clear_cart_button_bg_color' => '{{WRAPPER}} .woocommerce-cart-form .rtsb-clear-cart-items',
1040 + 'clear_cart_button_text_color' => '{{WRAPPER}} .woocommerce-cart-form .rtsb-clear-cart-items',
1041 + 'clear_cart_button_border_color' => '{{WRAPPER}} .woocommerce-cart-form .rtsb-clear-cart-items',
1042 + 'clear_cart_button_bg_color_hover' => '{{WRAPPER}} .woocommerce-cart-form .rtsb-clear-cart-items:hover',
1043 + 'clear_cart_button_text_color_hover' => '{{WRAPPER}} .woocommerce-cart-form .rtsb-clear-cart-items:hover',
1044 + 'clear_cart_button_border_color_hover' => '{{WRAPPER}} .woocommerce-cart-form .rtsb-clear-cart-items:hover',
1088 1045
1089 1046 // Table.
1090 1047 'table_row_border' => '.rtsb-builder-content {{WRAPPER}} .rtsb-cart-table table.shop_table :is( thead, tbody ) tr',
1091 1048
@@ -1282,26 +1239,8 @@
1282 1239 'table_body_bg_color' => '{{WRAPPER}} #order_review tbody td',
1283 1240 // Counter.
1284 1241 'counter_text_color' => '{{WRAPPER}} .product-quantity',
1285 1242 'counter_style' => '{{WRAPPER}} .product-quantity',
1286 - // Quantity selector.
1287 - 'qty_align' => '{{WRAPPER}} .rtsb-order-review-quantity',
1288 - 'qty_wrapper_margin' => '{{WRAPPER}} .rtsb-order-review-quantity',
1289 - 'qty_box_border' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-group',
1290 - 'qty_box_radius' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-group',
1291 - 'qty_box_bg_color' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-group',
1292 - 'qty_box_height' => '{{WRAPPER}} .rtsb-order-review-quantity :is( .rtsb-order-qty-btn, .rtsb-order-qty-input )',
1293 - 'qty_input_width' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-input',
1294 - 'qty_input_typo' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-input',
1295 - 'qty_input_color' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-input',
1296 - 'qty_input_bg_color' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-input',
1297 - 'qty_input_border_color' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-input',
1298 - 'qty_btn_width' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-btn',
1299 - 'qty_icon_size' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-btn svg',
1300 - 'qty_btn_color' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-btn',
1301 - 'qty_btn_bg_color' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-btn',
1302 - 'qty_btn_hover_color' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-btn:hover',
1303 - 'qty_btn_hover_bg_color' => '{{WRAPPER}} .rtsb-order-review-quantity .rtsb-order-qty-btn:hover',
1304 1243 // Table Footer.
1305 1244 'table_footer_label_typo' => '{{WRAPPER}} #order_review tfoot :is( th, td )',
1306 1245 'table_footer_label_color' => '{{WRAPPER}} #order_review tfoot th',
1307 1246 'table_footer_text_color' => '{{WRAPPER}} #order_review tfoot td',
@@ -1528,9 +1467,9 @@
1528 1467 'bg_color' => '{{WRAPPER}} .rtsb-elementor-container [class*=category-single-layout] .rtsb-category-grid .single-category-area .product-count, {{WRAPPER}} .rtsb-elementor-container [class*=rtsb-category-layout] .rtsb-category-grid .category-wrapper .product-count',
1529 1468 'hover_color' => '{{WRAPPER}} .rtsb-elementor-container [class*=category-single-layout] .rtsb-category-grid:hover .single-category-area .product-count, {{WRAPPER}} .rtsb-elementor-container [class*=rtsb-category-layout] .rtsb-category-grid:hover .category-wrapper .product-count',
1530 1469 'hover_bg_color' => '{{WRAPPER}} .rtsb-elementor-container [class*=category-single-layout] .rtsb-category-grid:hover .single-category-area .product-count, {{WRAPPER}} .rtsb-elementor-container [class*=rtsb-category-layout] .rtsb-category-grid:hover .category-wrapper .product-count',
1531 1470 'border' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-category-grid .product-count',
1532 - 'border_hover_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-category-grid .product-count:hover',
1471 + 'border_hover_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-category-grid:hover .product-count',
1533 1472 'border_radius' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-category-grid .product-count',
1534 1473 'padding' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-category-grid .product-count',
1535 1474 'margin' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-category-grid .product-count',
1536 1475 ],
@@ -1577,11 +1516,10 @@
1577 1516 'content_border_hover_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-content:hover, {{WRAPPER}} .rtsb-elementor-container .rtsb-row:not(.rtsb-category-layout2) .rtsb-category-content:hover, {{WRAPPER}} .rtsb-elementor-container .rtsb-category-layout2 .category-title-with-image:hover',
1578 1517 'content_border_radius' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-content, {{WRAPPER}} .rtsb-elementor-container .rtsb-row:not(.rtsb-category-layout2) .rtsb-category-content, {{WRAPPER}} .rtsb-elementor-container .rtsb-category-layout2 .category-title-with-image',
1579 1518 ],
1580 1519 'badges_module' => [
1581 - 'direction' => '{{WRAPPER}} .rtsb-promotion .rtsb-badge-group-style',
1582 - 'alignment' => '{{WRAPPER}} .rtsb-promotion .rtsb-badge-group-style',
1583 - 'alignment_wrap' => '{{WRAPPER}} .rtsb-badge-container .rtsb-promotion:not(.rtsb-badge-group-style)',
1520 + 'direction' => '{{WRAPPER}} .rtsb-promotion .rtsb-badge-group-style',
1521 + 'alignment' => '{{WRAPPER}} .rtsb-promotion .rtsb-badge-group-style',
1584 1522 ],
1585 1523 ]
1586 1524 );
1587 1525 }
@@ -1644,16 +1582,12 @@
1644 1582 'typography' => '{{WRAPPER}} .rtsb-elementor-container .product-title',
1645 1583 'alignment' => '{{WRAPPER}} .rtsb-elementor-container .product-title',
1646 1584 'color' => '{{WRAPPER}} .rtsb-elementor-container .product-title',
1647 1585 'bg_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper,{{WRAPPER}} .rtsb-elementor-container .product-title',
1648 - // Layout 2 (grid/slider) reveals a hover button that overlays the title wrapper and captures :hover, so the
1649 - // wrapper's own :hover never fires; the extra `.rtsb-product:hover .product-title-with-btn` clause re-applies the
1650 - // hover text/bg/border color on product-card hover. NOTE: layout 2 fades the title text out on hover, so the
1651 - // hover *text* color is not visibly noticeable there — the wrapper background and border remain visible.
1652 - 'hover_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper:hover .product-title, {{WRAPPER}} .rtsb-elementor-container .rtsb-product:hover .product-title-with-btn .product-title',
1653 - 'hover_bg_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper:hover,{{WRAPPER}} .rtsb-elementor-container .product-title:hover, {{WRAPPER}} .rtsb-elementor-container .rtsb-product:hover .product-title-with-btn .rtsb-product-title-wrapper',
1586 + 'hover_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper:hover .product-title',
1587 + 'hover_bg_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper:hover,{{WRAPPER}} .rtsb-elementor-container .product-title:hover',
1654 1588 'border' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper',
1655 - 'border_hover_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper:hover, {{WRAPPER}} .rtsb-elementor-container .rtsb-product:hover .product-title-with-btn .rtsb-product-title-wrapper',
1589 + 'border_hover_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper:hover',
1656 1590 'padding' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper,{{WRAPPER}} .rtsb-elementor-container .product-title',
1657 1591 'margin' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-title-wrapper,{{WRAPPER}} .rtsb-elementor-container .product-title',
1658 1592 ],
1659 1593 'short_description' => array_fill_keys(
@@ -1670,13 +1604,12 @@
1670 1604 ),
1671 1605 'action_buttons' => [
1672 1606 'action_btn_alignment' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product .rtsb-action-buttons.horizontal-floating-btn .rtsb-action-button-list',
1673 1607 'action_btn_gap' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-action-button-list',
1674 - 'icon_gap' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-action-btn.has-text',
1675 1608 ],
1676 1609 'product_price' => [
1677 - 'typography' => '{{WRAPPER}} .rtsb-elementor-container .price-wrapper .price > .woocommerce-Price-amount, {{WRAPPER}} .rtsb-elementor-container .price-wrapper del',
1678 - 'sale_typography' => '{{WRAPPER}} .rtsb-elementor-container .price-wrapper ins',
1610 + 'typography' => '{{WRAPPER}} .rtsb-elementor-container .price-wrapper, {{WRAPPER}} .rtsb-elementor-container .price-wrapper ins .woocommerce-Price-amount, {{WRAPPER}}.elementor-element .rtsb-elementor-container.products .price-wrapper > p',
1611 + 'sale_typography' => '{{WRAPPER}} .rtsb-elementor-container.products .price-wrapper del',
1679 1612 'regular_text_decoration' => '{{WRAPPER}} .rtsb-elementor-container .price-wrapper .price > .woocommerce-Price-amount, {{WRAPPER}} .rtsb-elementor-container .price-wrapper del',
1680 1613 'sale_text_decoration' => '{{WRAPPER}} .rtsb-elementor-container .price-wrapper ins',
1681 1614 'alignment' => '{{WRAPPER}} .rtsb-elementor-container .product-price',
1682 1615 'color' => '{{WRAPPER}} .rtsb-elementor-container .price-wrapper :is( ins, ins span bdi)',
@@ -1687,15 +1620,14 @@
1687 1620 'padding' => '{{WRAPPER}} .rtsb-elementor-container .product-price',
1688 1621 'margin' => '{{WRAPPER}} .rtsb-elementor-container .product-price',
1689 1622 ],
1690 1623 'product_rating' => [
1691 - 'typography' => '{{WRAPPER}} .rtsb-elementor-container .star-rating',
1692 - 'alignment' => '{{WRAPPER}} .rtsb-elementor-container .product-rating',
1693 - 'color' => '{{WRAPPER}} .rtsb-elementor-container :is(.star-rating span):before',
1694 - 'bg_color' => '{{WRAPPER}} .rtsb-elementor-container :is(.star-rating):before',
1695 - 'padding' => '{{WRAPPER}} .rtsb-elementor-container .star-rating',
1696 - 'spacing_preset2' => '{{WRAPPER}} .rtsb-elementor-container .product-rating.preset2, {{WRAPPER}} .rtsb-elementor-container .product-rating.preset2 .inner-wrapper',
1697 - 'margin' => '{{WRAPPER}} .rtsb-elementor-container .product-rating',
1624 + 'typography' => '{{WRAPPER}} .rtsb-elementor-container .star-rating',
1625 + 'alignment' => '{{WRAPPER}} .rtsb-elementor-container .product-rating',
1626 + 'color' => '{{WRAPPER}} .rtsb-elementor-container :is(.star-rating span):before',
1627 + 'bg_color' => '{{WRAPPER}} .rtsb-elementor-container :is(.star-rating):before',
1628 + 'padding' => '{{WRAPPER}} .rtsb-elementor-container .star-rating',
1629 + 'margin' => '{{WRAPPER}} .rtsb-elementor-container .product-rating',
1698 1630 ],
1699 1631 'product_categories' => [
1700 1632 'typography' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-category-list li > a',
1701 1633 'alignment' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-product-content .rtsb-product-category',
@@ -1748,8 +1680,12 @@
1748 1680 'icon_size' => [
1749 1681 'font_size' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-cart .rtsb-action-btn .icon',
1750 1682 'width' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-cart .rtsb-action-btn .icon svg',
1751 1683 ],
1684 + 'cart_icon_spacing' => [
1685 + 'margin_left' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-action-button-list .rtsb-cart .rtsb-action-btn.icon-left .icon + .text',
1686 + 'margin_right' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-action-button-list .rtsb-cart .rtsb-action-btn.icon-right .icon + .text',
1687 + ],
1752 1688 'cart_width' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-cart .rtsb-action-btn',
1753 1689 'cart_height' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-cart .rtsb-action-btn',
1754 1690 'color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-cart .rtsb-action-btn',
1755 1691 'bg_color' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-cart .rtsb-action-btn',
@@ -1814,13 +1750,9 @@
1814 1750 'padding' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-quick-view .rtsb-action-btn',
1815 1751 'margin' => '{{WRAPPER}} .rtsb-elementor-container .rtsb-quick-view .rtsb-action-btn',
1816 1752 ],
1817 1753 'hover_icon_button' => [
1818 - // Include `.text` (the label span): the button is display:inline-flex, so its
1819 - // `.text` child is a flex item and `text-decoration` set on the <a> does NOT
1820 - // propagate to it (the Text Decoration control would silently do nothing).
1821 - // Other typography props inherit fine; decoration must hit `.text` directly.
1822 - 'typography' => '{{WRAPPER}} .rtsb-elementor-container .product-title-with-btn .btn-wrap a, {{WRAPPER}} .rtsb-elementor-container .product-title-with-btn .btn-wrap a .text',
1754 + 'typography' => '{{WRAPPER}} .rtsb-elementor-container .product-title-with-btn .btn-wrap a',
1823 1755 'icon_size' => [
1824 1756 'font_size' => '{{WRAPPER}} .rtsb-elementor-container .product-title-with-btn .btn-wrap a .icon',
1825 1757 'svg' => '{{WRAPPER}} .rtsb-elementor-container .product-title-with-btn .btn-wrap a .icon svg',
1826 1758 ],