| @@ -12,9 +12,8 @@ | ||
| 12 | 12 | use Elementor\Modules\AtomicWidgets\PlainResolvers\Plain_Resolvers_Registry; |
| 13 | 13 | use Elementor\Modules\AtomicWidgets\PlainResolvers\Plain_Values_Resolver; |
| 14 | 14 | use Elementor\Modules\AtomicWidgets\PlainResolvers\Resolvers\Boolean_Plain_Resolver; |
| 15 | 15 | use Elementor\Modules\AtomicWidgets\PlainResolvers\Resolvers\Dynamic_Plain_Resolver; |
| 16 | -use Elementor\Modules\AtomicWidgets\PlainResolvers\Resolvers\Html_V3_Plain_Resolver; | |
| 17 | 16 | use Elementor\Modules\AtomicWidgets\PlainResolvers\Resolvers\Passthrough_Plain_Resolver; |
| 18 | 17 | use Elementor\Modules\AtomicWidgets\PlainResolvers\Resolvers\Number_Plain_Resolver; |
| 19 | 18 | use Elementor\Modules\AtomicWidgets\PlainResolvers\Resolvers\Size_Plain_Resolver; |
| 20 | 19 | use Elementor\Modules\AtomicWidgets\PlainResolvers\Resolvers\String_Plain_Resolver; |
| @@ -157,8 +156,9 @@ | ||
| 157 | 156 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Settings\Time_Range_Transformer; |
| 158 | 157 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Perspective_Origin_Transformer; |
| 159 | 158 | use Elementor\Modules\AtomicWidgets\PropTypes\Query_Prop_Type; |
| 160 | 159 | use Elementor\Modules\AtomicWidgets\PropTypes\Transform\Perspective_Origin_Prop_Type; |
| 160 | +use Elementor\Modules\AtomicWidgets\Utils\Atomic_Prop_Remap; | |
| 161 | 161 | use Elementor\Modules\AtomicWidgets\Utils\Utils; |
| 162 | 162 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Self_Hosted_Video\Atomic_Self_Hosted_Video; |
| 163 | 163 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Span_Transformer; |
| 164 | 164 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Video_Src_Transformer; |
| @@ -311,8 +311,9 @@ | ||
| 311 | 311 | ( new Atomic_Widget_Styles() )->register_hooks(); |
| 312 | 312 | ( new Atomic_Widget_Base_Styles() )->register_hooks(); |
| 313 | 313 | ( new Atomic_Widgets_Library() )->register_hooks(); |
| 314 | 314 | ( new Atomic_Import_Export() )->register_hooks(); |
| 315 | + Atomic_Prop_Remap::register_builtin_handlers(); | |
| 315 | 316 | ( new Atomic_Widgets_Database_Updater() )->register(); |
| 316 | 317 | ( new Css_Converter_REST_API() )->register_hooks(); |
| 317 | 318 | ( new Pro_Promotion_Data_Preservation() )->register_hooks(); |
| 318 | 319 | |
| @@ -586,9 +587,8 @@ | ||
| 586 | 587 | |
| 587 | 588 | $resolver = new Plain_Values_Resolver( $registry ); |
| 588 | 589 | |
| 589 | 590 | $registry->register( Dynamic_Prop_Type::get_key(), new Dynamic_Plain_Resolver( $resolver ) ); |
| 590 | - $registry->register( Html_V3_Prop_Type::get_key(), new Html_V3_Plain_Resolver( $resolver ) ); | |
| 591 | 591 | $registry->register( Escaped_Html_Prop_Type::get_key(), new String_Plain_Resolver() ); |
| 592 | 592 | |
| 593 | 593 | return $resolver; |
| 594 | 594 | } |
| @@ -648,8 +648,14 @@ | ||
| 648 | 648 | '.e-heading-base a, .e-paragraph-base a { all: unset; cursor: pointer; }', |
| 649 | 649 | 'form[data-element_type="e-form"].form-state-success [data-element_type="e-form-success-message"],', |
| 650 | 650 | 'form[data-element_type="e-form"].form-state-error [data-element_type="e-form-error-message"]', |
| 651 | 651 | '{ display: block; }', |
| 652 | + // Base style is `display: none`. In the editor, still show the slot when it is | |
| 653 | + // selected (navigator / canvas), when a nested child is selected, or when empty | |
| 654 | + // so the plus/drop target has a hit area. Frontend and unselected Normal stay hidden. | |
| 655 | + '.elementor-edit-mode [data-element_type="e-form-success-message"]:is(.elementor-element-editable, :has(.elementor-element-editable), :has(> .elementor-empty-view)),', | |
| 656 | + '.elementor-edit-mode [data-element_type="e-form-error-message"]:is(.elementor-element-editable, :has(.elementor-element-editable), :has(> .elementor-empty-view))', | |
| 657 | + '{ display: block; }', | |
| 652 | 658 | '.e-background-video { position: relative; overflow: hidden; }', |
| 653 | 659 | '.e-background-video__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; z-index: 0; }', |
| 654 | 660 | '.e-background-video__content { position: relative; z-index: 1; flex: 1 1 auto; }', |
| 655 | 661 | // Editor empty state: content is a nested flex child inside padded root (overflow:hidden). |
| @@ -660,11 +666,14 @@ | ||
| 660 | 666 | '.e-background-video__controls { z-index: 2; }', |
| 661 | 667 | '.e-background-video__play, .e-background-video__pause { appearance: none; -webkit-appearance: none; }', |
| 662 | 668 | '.e-background-video.e-background-video--playing .e-background-video__play { display: none; }', |
| 663 | 669 | '.e-background-video.e-background-video--paused .e-background-video__pause { display: none; }', |
| 664 | - // No state pinned (editor "States" unselected): hide both buttons. The two `:not` guards lift | |
| 665 | - // specificity above the atomic base style so `display: none` wins. On the frontend Alpine always | |
| 666 | - // sets one of the state classes from real playback, so exactly one button shows there. | |
| 670 | + // No state pinned (editor "States" unselected): hide the controls wrapper and both buttons. The | |
| 671 | + // two `:not` guards lift specificity above the atomic base style so `display: none` wins. The | |
| 672 | + // button rules are kept because the buttons can be reparented out of the wrapper. On the | |
| 673 | + // frontend Alpine always sets one of the state classes from real playback, so the controls show | |
| 674 | + // there with exactly one button. | |
| 675 | + '.e-background-video:not(.e-background-video--playing):not(.e-background-video--paused) .e-background-video__controls,', | |
| 667 | 676 | '.e-background-video:not(.e-background-video--playing):not(.e-background-video--paused) .e-background-video__play,', |
| 668 | 677 | '.e-background-video:not(.e-background-video--playing):not(.e-background-video--paused) .e-background-video__pause { display: none; }', |
| 669 | 678 | // Accordion: `<summary>` already loses its native marker via `display: flex` on the header's |
| 670 | 679 | // base style in Chrome/Firefox, but Safari renders `::-webkit-details-marker` regardless of |