| @@ -2,14 +2,17 @@ | ||
| 2 | 2 | |
| 3 | 3 | namespace Elementor\Modules\AtomicWidgets; |
| 4 | 4 | |
| 5 | 5 | use Elementor\Core\Base\Module as BaseModule; |
| 6 | +use Elementor\Core\Common\Modules\Ajax\Module as Ajax; | |
| 6 | 7 | use Elementor\Core\Experiments\Manager as Experiments_Manager; |
| 7 | 8 | use Elementor\Elements_Manager; |
| 9 | +use Elementor\Modules\AtomicWidgets\Ajax\Render_Element_Action; | |
| 8 | 10 | use Elementor\Modules\AtomicWidgets\DynamicTags\Dynamic_Tags_Module; |
| 9 | 11 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Youtube\Atomic_Youtube; |
| 10 | 12 | use Elementor\Modules\AtomicWidgets\Elements\Div_Block\Div_Block; |
| 11 | 13 | use Elementor\Modules\AtomicWidgets\Elements\Flexbox\Flexbox; |
| 14 | +use Elementor\Modules\AtomicWidgets\Elements\Grid\Grid; | |
| 12 | 15 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Heading\Atomic_Heading; |
| 13 | 16 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Image\Atomic_Image; |
| 14 | 17 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Paragraph\Atomic_Paragraph; |
| 15 | 18 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Button\Atomic_Button; |
| @@ -19,8 +22,9 @@ | ||
| 19 | 22 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tabs_Menu\Atomic_Tabs_Menu; |
| 20 | 23 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tab\Atomic_Tab; |
| 21 | 24 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tabs_Content_Area\Atomic_Tabs_Content_Area; |
| 22 | 25 | use Elementor\Modules\AtomicWidgets\ImportExport\Atomic_Import_Export; |
| 26 | +use Elementor\Modules\AtomicWidgets\Elements\Promotions\Pro_Promotion_Data_Preservation; | |
| 23 | 27 | use Elementor\Modules\AtomicWidgets\Elements\Loader\Frontend_Assets_Loader; |
| 24 | 28 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Combine_Array_Transformer; |
| 25 | 29 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Export\Image_Src_Export_Transformer; |
| 26 | 30 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Export\Svg_Src_Export_Transformer; |
| @@ -42,8 +46,9 @@ | ||
| 42 | 46 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Color_Stop_Transformer; |
| 43 | 47 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Multi_Props_Transformer; |
| 44 | 48 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Position_Transformer; |
| 45 | 49 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Shadow_Transformer; |
| 50 | +use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Grid_Track_Size_Transformer; | |
| 46 | 51 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Size_Transformer; |
| 47 | 52 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Stroke_Transformer; |
| 48 | 53 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Transformer; |
| 49 | 54 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Size_Scale_Transformer; |
| @@ -48,8 +53,9 @@ | ||
| 48 | 53 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Transformer; |
| 49 | 54 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Size_Scale_Transformer; |
| 50 | 55 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Overlay_Transformer; |
| 51 | 56 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Filter_Transformer; |
| 57 | +use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Font_Family_Transformer; | |
| 52 | 58 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transform_Origin_Transformer; |
| 53 | 59 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transition_Transformer; |
| 54 | 60 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transform_Rotate_Transformer; |
| 55 | 61 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transform_Skew_Transformer; |
| @@ -88,8 +94,9 @@ | ||
| 88 | 94 | use Elementor\Modules\AtomicWidgets\PropTypes\Svg_Src_Prop_Type; |
| 89 | 95 | use Elementor\Modules\AtomicWidgets\PropTypes\Dimensions_Prop_Type; |
| 90 | 96 | use Elementor\Modules\AtomicWidgets\PropTypes\Position_Prop_Type; |
| 91 | 97 | use Elementor\Modules\AtomicWidgets\PropTypes\Shadow_Prop_Type; |
| 98 | +use Elementor\Modules\AtomicWidgets\PropTypes\Grid_Track_Size_Prop_Type; | |
| 92 | 99 | use Elementor\Modules\AtomicWidgets\PropTypes\Size_Prop_Type; |
| 93 | 100 | use Elementor\Modules\AtomicWidgets\PropTypes\Stroke_Prop_Type; |
| 94 | 101 | use Elementor\Modules\AtomicWidgets\PropTypes\Transform\Functions\Transform_Move_Prop_Type; |
| 95 | 102 | use Elementor\Modules\AtomicWidgets\PropTypes\Transform\Transform_Functions_Prop_Type; |
| @@ -103,10 +110,12 @@ | ||
| 103 | 110 | use Elementor\Modules\AtomicWidgets\Styles\Atomic_Widget_Base_Styles; |
| 104 | 111 | use Elementor\Modules\AtomicWidgets\Styles\Atomic_Widget_Styles; |
| 105 | 112 | use Elementor\Modules\AtomicWidgets\Styles\Size_Constants; |
| 106 | 113 | use Elementor\Modules\AtomicWidgets\Styles\Style_Schema; |
| 114 | +use Elementor\Modules\AtomicWidgets\CssConverter\Css_Converter_REST_API; | |
| 107 | 115 | use Elementor\Modules\AtomicWidgets\Database\Atomic_Widgets_Database_Updater; |
| 108 | 116 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tab_Content\Atomic_Tab_Content; |
| 117 | +use Elementor\Modules\AtomicWidgets\Elements\Atomic_Collection_Loop\Collection_Loop_Promotion; | |
| 109 | 118 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Atomic_Form; |
| 110 | 119 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Atomic_Form_Promotion; |
| 111 | 120 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Form_Success_Message\Form_Success_Message; |
| 112 | 121 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Form_Error_Message\Form_Error_Message; |
| @@ -123,8 +132,9 @@ | ||
| 123 | 132 | use Elementor\Modules\AtomicWidgets\Utils\Utils; |
| 124 | 133 | use Elementor\Modules\AtomicWidgets\Elements\Atomic_Self_Hosted_Video\Atomic_Self_Hosted_Video; |
| 125 | 134 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Span_Transformer; |
| 126 | 135 | use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Video_Src_Transformer; |
| 136 | +use Elementor\Modules\AtomicWidgets\PropTypes\Font_Family_Prop_Type; | |
| 127 | 137 | use Elementor\Modules\AtomicWidgets\PropTypes\Span_Prop_Type; |
| 128 | 138 | use Elementor\Modules\AtomicWidgets\PropTypes\Video_Src_Prop_Type; |
| 129 | 139 | |
| 130 | 140 | if ( ! defined( 'ABSPATH' ) ) { |
| @@ -134,10 +144,8 @@ | ||
| 134 | 144 | class Module extends BaseModule { |
| 135 | 145 | const EXPERIMENT_NAME = 'e_atomic_elements'; |
| 136 | 146 | const ENFORCE_CAPABILITIES_EXPERIMENT = 'atomic_widgets_should_enforce_capabilities'; |
| 137 | 147 | const EXPERIMENT_EDITOR_MCP = 'editor_mcp'; |
| 138 | - const EXPERIMENT_CSS_GRID = 'e_css_grid'; | |
| 139 | - const EXPERIMENT_DESIGN_SYSTEM_PANEL = 'e_editor_design_system_panel'; | |
| 140 | 148 | |
| 141 | 149 | const PACKAGES = [ |
| 142 | 150 | 'editor-canvas', |
| 143 | 151 | 'editor-controls', // TODO: Need to be registered and not enqueued. |
| @@ -177,8 +185,10 @@ | ||
| 177 | 185 | add_action( 'elementor/preview/enqueue_styles', fn () => $this->enqueue_promotion_styles() ); |
| 178 | 186 | add_action( 'elementor/frontend/before_register_scripts', fn () => $this->register_frontend_scripts() ); |
| 179 | 187 | add_action( 'elementor/frontend/after_enqueue_styles', fn () => $this->add_inline_styles() ); |
| 180 | 188 | |
| 189 | + add_action( 'elementor/ajax/register_actions', fn ( Ajax $ajax ) => ( new Render_Element_Action() )->register( $ajax ) ); | |
| 190 | + | |
| 181 | 191 | add_action( 'elementor/atomic-widgets/settings/transformers/register', fn ( $transformers ) => $this->register_settings_transformers( $transformers ) ); |
| 182 | 192 | add_action( 'elementor/atomic-widgets/styles/transformers/register', fn ( $transformers ) => $this->register_styles_transformers( $transformers ) ); |
| 183 | 193 | add_action( 'elementor/atomic-widgets/import/transformers/register', fn ( $transformers ) => $this->register_import_transformers( $transformers ) ); |
| 184 | 194 | add_action( 'elementor/atomic-widgets/export/transformers/register', fn ( $transformers ) => $this->register_export_transformers( $transformers ) ); |
| @@ -235,26 +245,8 @@ | ||
| 235 | 245 | 'default' => Experiments_Manager::STATE_ACTIVE, |
| 236 | 246 | 'release_status' => Experiments_Manager::RELEASE_STATUS_DEV, |
| 237 | 247 | ]); |
| 238 | 248 | |
| 239 | - Plugin::$instance->experiments->add_feature( [ | |
| 240 | - 'name' => self::EXPERIMENT_CSS_GRID, | |
| 241 | - 'title' => esc_html__( 'CSS Grid', 'elementor' ), | |
| 242 | - 'description' => esc_html__( 'Enable CSS Grid layout for containers.', 'elementor' ), | |
| 243 | - 'hidden' => true, | |
| 244 | - 'default' => Experiments_Manager::STATE_INACTIVE, | |
| 245 | - 'release_status' => Experiments_Manager::RELEASE_STATUS_DEV, | |
| 246 | - ] ); | |
| 247 | - | |
| 248 | - Plugin::$instance->experiments->add_feature([ | |
| 249 | - 'name' => self::EXPERIMENT_DESIGN_SYSTEM_PANEL, | |
| 250 | - 'title' => esc_html__( 'Editor design system panel', 'elementor' ), | |
| 251 | - 'description' => esc_html__( 'Unified design system entry in the editor (toolbar + single panel for variables and global classes).', 'elementor' ), | |
| 252 | - 'hidden' => true, | |
| 253 | - 'default' => Experiments_Manager::STATE_ACTIVE, | |
| 254 | - 'release_status' => Experiments_Manager::RELEASE_STATUS_DEV, | |
| 255 | - ]); | |
| 256 | - | |
| 257 | 249 | // When a new feature affects settings or style schema, global class, interactions, variable, etc |
| 258 | 250 | // anything in need of addressing migration for BC purposes, add it here. |
| 259 | 251 | $migrations_affecting_features = []; |
| 260 | 252 | |
| @@ -269,8 +261,10 @@ | ||
| 269 | 261 | ( new Atomic_Widget_Base_Styles() )->register_hooks(); |
| 270 | 262 | ( new Atomic_Widgets_Library() )->register_hooks(); |
| 271 | 263 | ( new Atomic_Import_Export() )->register_hooks(); |
| 272 | 264 | ( new Atomic_Widgets_Database_Updater() )->register(); |
| 265 | + ( new Css_Converter_REST_API() )->register_hooks(); | |
| 266 | + ( new Pro_Promotion_Data_Preservation() )->register_hooks(); | |
| 273 | 267 | } |
| 274 | 268 | |
| 275 | 269 | private function add_packages( $packages ) { |
| 276 | 270 | return array_merge( $packages, self::PACKAGES ); |
| @@ -307,8 +301,9 @@ | ||
| 307 | 301 | |
| 308 | 302 | private function register_elements( Elements_Manager $elements_manager ) { |
| 309 | 303 | $elements_manager->register_element_type( new Div_Block() ); |
| 310 | 304 | $elements_manager->register_element_type( new Flexbox() ); |
| 305 | + $elements_manager->register_element_type( new Grid() ); | |
| 311 | 306 | |
| 312 | 307 | $elements_manager->register_element_type( new Atomic_Tabs() ); |
| 313 | 308 | $elements_manager->register_element_type( new Atomic_Tabs_Menu() ); |
| 314 | 309 | $elements_manager->register_element_type( new Atomic_Tab() ); |
| @@ -321,8 +316,12 @@ | ||
| 321 | 316 | $elements_manager->register_element_type( new Form_Error_Message() ); |
| 322 | 317 | } elseif ( ! \Elementor\Utils::has_pro() ) { |
| 323 | 318 | $elements_manager->register_element_type( new Atomic_Form_Promotion() ); |
| 324 | 319 | } |
| 320 | + | |
| 321 | + if ( ! \Elementor\Utils::has_pro() ) { | |
| 322 | + $elements_manager->register_element_type( new Collection_Loop_Promotion() ); | |
| 323 | + } | |
| 325 | 324 | } |
| 326 | 325 | |
| 327 | 326 | private function register_settings_transformers( Transformers_Registry $transformers ) { |
| 328 | 327 | $transformers->register_fallback( new Plain_Transformer() ); |
| @@ -351,9 +350,11 @@ | ||
| 351 | 350 | $this->register_layout_styles_transformers( $transformers ); |
| 352 | 351 | } |
| 353 | 352 | |
| 354 | 353 | private function register_basic_styles_transformers( Transformers_Registry $transformers ): void { |
| 354 | + $transformers->register( Font_Family_Prop_Type::get_key(), new Font_Family_Transformer() ); | |
| 355 | 355 | $transformers->register( Size_Prop_Type::get_key(), new Size_Transformer() ); |
| 356 | + $transformers->register( Grid_Track_Size_Prop_Type::get_key(), new Grid_Track_Size_Transformer() ); | |
| 356 | 357 | $transformers->register( Box_Shadow_Prop_Type::get_key(), new Combine_Array_Transformer( ',' ) ); |
| 357 | 358 | $transformers->register( Shadow_Prop_Type::get_key(), new Shadow_Transformer() ); |
| 358 | 359 | $transformers->register( Flex_Prop_Type::get_key(), new Flex_Transformer() ); |
| 359 | 360 | $transformers->register( Stroke_Prop_Type::get_key(), new Stroke_Transformer() ); |