Premium Addons for Elementor - Version 3.6.0

Version Description

  • New: Introducing Premium Templates - The Easiest Way to insert templates with just ONE click.
  • Fixed: Grid widget categorization doesn't work with non English characters.
Download this release

Release Info

Developer leap13
Plugin Icon 128x128 Premium Addons for Elementor
Version 3.6.0
Comparing to
See all releases

Code changes from version 3.5.9 to 3.6.0

Files changed (44) hide show
  1. admin/includes/admin-notices.php +23 -49
  2. admin/includes/papro-actions.php +4 -2
  3. admin/includes/plugin-info.php +1 -1
  4. admin/includes/version-control.php +1 -1
  5. admin/settings/modules-setting.php +36 -5
  6. assets/editor/templates/css/editor.css +515 -0
  7. assets/editor/templates/css/preview.css +5 -0
  8. assets/editor/templates/js/editor.js +1022 -0
  9. includes/class-addons-integration.php +10 -42
  10. includes/class-helper-functions.php +27 -0
  11. includes/elementor-helper.php +40 -1
  12. includes/templates/classes/api.php +173 -0
  13. includes/templates/classes/assets.php +195 -0
  14. includes/templates/classes/config.php +223 -0
  15. includes/templates/classes/manager.php +374 -0
  16. includes/templates/documents/base.php +27 -0
  17. includes/templates/documents/section.php +21 -0
  18. includes/templates/scripts/template-modal-content.php +10 -0
  19. includes/templates/scripts/template-modal-error.php +21 -0
  20. includes/templates/scripts/template-modal-filters-item.php +9 -0
  21. includes/templates/scripts/template-modal-filters.php +6 -0
  22. includes/templates/scripts/template-modal-header-back.php +9 -0
  23. includes/templates/scripts/template-modal-header-logo.php +12 -0
  24. includes/templates/scripts/template-modal-header.php +11 -0
  25. includes/templates/scripts/template-modal-insert-button.php +17 -0
  26. includes/templates/scripts/template-modal-item.php +29 -0
  27. includes/templates/scripts/template-modal-keywords.php +18 -0
  28. includes/templates/scripts/template-modal-loading.php +14 -0
  29. includes/templates/scripts/template-modal-preview.php +9 -0
  30. includes/templates/scripts/template-modal-tabs-item.php +9 -0
  31. includes/templates/scripts/template-modal-tabs.php +6 -0
  32. includes/templates/scripts/template-modal-templates.php +6 -0
  33. includes/templates/sources/base.php +286 -0
  34. includes/templates/sources/premium-api.php +422 -0
  35. includes/templates/templates.php +239 -0
  36. includes/templates/types/base.php +64 -0
  37. includes/templates/types/manager.php +143 -0
  38. includes/templates/types/section.php +53 -0
  39. premium-addons-for-elementor.php +8 -5
  40. readme.txt +9 -3
  41. widgets/premium-carousel.php +5 -7
  42. widgets/premium-grid.php +1 -1
  43. widgets/premium-modalbox.php +3 -4
  44. widgets/premium-vscroll.php +2 -12
admin/includes/admin-notices.php CHANGED
@@ -2,6 +2,8 @@
2
 
3
  namespace PremiumAddons\Admin\Includes;
4
 
 
 
5
  if( ! defined( 'ABSPATH') ) exit();
6
 
7
  class Admin_Notices {
@@ -36,7 +38,7 @@ class Admin_Notices {
36
 
37
  $this->handle_review_notice();
38
 
39
- $this->handle_fb_notice();
40
 
41
  }
42
 
@@ -56,7 +58,7 @@ class Admin_Notices {
56
  }
57
  //$this->get_pbg_notice();
58
 
59
- $this->get_fb_notice();
60
 
61
  }
62
 
@@ -109,25 +111,25 @@ class Admin_Notices {
109
  }
110
 
111
  /**
112
- * Checks if Facebook Reviews message is dismissed.
113
  *
114
- * @since 3.5.2
115
  * @access public
116
  *
117
  * @return void
118
  */
119
- public function handle_fb_notice() {
120
- if ( ! isset( $_GET['fb'] ) ) {
121
  return;
122
  }
123
 
124
- if ( 'opt_out' === $_GET['fb'] ) {
125
  check_admin_referer( 'opt_out' );
126
 
127
- update_option( 'fb_notice', '1' );
128
  }
129
 
130
- wp_redirect( remove_query_arg( 'fb' ) );
131
  exit;
132
  }
133
 
@@ -273,64 +275,36 @@ class Admin_Notices {
273
 
274
  /**
275
  *
276
- * Shows an admin notice for Facebook Reviews.
277
  *
278
- * @since 3.5.2
279
  * @access public
280
  *
281
  * @return void
282
  */
283
- public function get_fb_notice() {
284
 
285
- $fb_notice = get_option( 'fb_notice' );
286
 
287
- $theme = self::get_installed_theme();
288
 
289
- $notice_url = sprintf( 'http://premiumaddons.com/facebook-reviews-widget-for-elementor-page-builder/?utm_source=fb-notification&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme );
290
 
291
- if ( '1' === $fb_notice ) {
292
  return;
293
- } else if ( '1' !== $fb_notice ) {
294
- $optout_url = wp_nonce_url( add_query_arg( 'fb', 'opt_out' ), 'opt_out' );
295
 
296
- $fb_message = sprintf( __('<p class="pa-text-wrap" style="display: flex; align-items: center; padding:10px 10px 10px 0;"><img src="%s" style="margin-right: 0.8em; width: 40px;"><strong><span>Facebook Reviews Widget for Elementor&nbsp</strong> has been amazingly improved.&nbsp</span><a href="%s" target="_blank" style="flex-grow: 2;"> Check it out now.</a>', 'premium-addons-for-elementor' ), PREMIUM_ADDONS_URL .'admin/images/premium-addons-logo.png', $notice_url );
297
 
298
- $fb_message .= sprintf(__('<a href="%s" style="text-decoration: none; margin-left: 1em; float:right; "><span class="dashicons dashicons-dismiss"></span></a></p>', 'premium-addons-for-elementor'), $optout_url );
299
 
300
- $this->render_admin_notices( $fb_message );
301
 
302
  }
303
 
304
  }
305
 
306
- /**
307
- * Get Installed Theme
308
- *
309
- * Returns the active theme slug
310
- *
311
- * @access public
312
- * @return string theme slug
313
- */
314
- public static function get_installed_theme() {
315
-
316
- $theme = wp_get_theme();
317
-
318
- if( $theme->parent() ) {
319
-
320
- $theme_name = $theme->parent()->get('Name');
321
-
322
- } else {
323
-
324
- $theme_name = $theme->get('Name');
325
-
326
- }
327
-
328
- $theme_name = sanitize_key( $theme_name );
329
-
330
- return $theme_name;
331
- }
332
-
333
-
334
  /**
335
  * Checks if a plugin is installed
336
  *
2
 
3
  namespace PremiumAddons\Admin\Includes;
4
 
5
+ use PremiumAddons\Helper_Functions;
6
+
7
  if( ! defined( 'ABSPATH') ) exit();
8
 
9
  class Admin_Notices {
38
 
39
  $this->handle_review_notice();
40
 
41
+ $this->handle_templates_notice();
42
 
43
  }
44
 
58
  }
59
  //$this->get_pbg_notice();
60
 
61
+ $this->get_templates_notice();
62
 
63
  }
64
 
111
  }
112
 
113
  /**
114
+ * Checks if Premium Templates message is dismissed.
115
  *
116
+ * @since 3.6.0
117
  * @access public
118
  *
119
  * @return void
120
  */
121
+ public function handle_templates_notice() {
122
+ if ( ! isset( $_GET['templates'] ) ) {
123
  return;
124
  }
125
 
126
+ if ( 'opt_out' === $_GET['templates'] ) {
127
  check_admin_referer( 'opt_out' );
128
 
129
+ update_option( 'templates_notice', '1' );
130
  }
131
 
132
+ wp_redirect( remove_query_arg( 'templates' ) );
133
  exit;
134
  }
135
 
275
 
276
  /**
277
  *
278
+ * Shows an admin notice for Premium Templates.
279
  *
280
+ * @since 3.6.0
281
  * @access public
282
  *
283
  * @return void
284
  */
285
+ public function get_templates_notice() {
286
 
287
+ $templates_notice = get_option( 'templates_notice' );
288
 
289
+ $theme = Helper_Functions::get_installed_theme();
290
 
291
+ $notice_url = sprintf( 'https://premiumaddons.com/premium-templates-for-elementor/?utm_source=templates-notification&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme );
292
 
293
+ if ( '1' === $templates_notice ) {
294
  return;
295
+ } else if ( '1' !== $templates_notice ) {
296
+ $optout_url = wp_nonce_url( add_query_arg( 'templates', 'opt_out' ), 'opt_out' );
297
 
298
+ $templates_message = sprintf( __('<p class="pa-text-wrap" style="display: flex; align-items: center; padding:10px 10px 10px 0;"><img src="%s" style="margin-right: 0.8em; width: 40px;"><strong><span>Premium Templates&nbsp</strong> is now available in Premium Addons for Elementor.&nbsp</span><a href="%s" target="_blank" style="flex-grow: 2;"> Check it out now.</a>', 'premium-addons-for-elementor' ), PREMIUM_ADDONS_URL .'admin/images/premium-addons-logo.png', $notice_url );
299
 
300
+ $templates_message .= sprintf(__('<a href="%s" style="text-decoration: none; margin-left: 1em; float:right; "><span class="dashicons dashicons-dismiss"></span></a></p>', 'premium-addons-for-elementor'), $optout_url );
301
 
302
+ $this->render_admin_notices( $templates_message );
303
 
304
  }
305
 
306
  }
307
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
308
  /**
309
  * Checks if a plugin is installed
310
  *
admin/includes/papro-actions.php CHANGED
@@ -2,6 +2,8 @@
2
 
3
  namespace PremiumAddons\Admin\Includes;
4
 
 
 
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
  class Papro_Actions {
@@ -22,7 +24,7 @@ class Papro_Actions {
22
 
23
  public function handle_custom_redirects() {
24
 
25
- $theme_name = Admin_Notices::get_installed_theme();
26
 
27
  if ( empty( $_GET['page'] ) ) {
28
  return;
@@ -30,7 +32,7 @@ class Papro_Actions {
30
 
31
  if ( 'premium-addons-pro' === $_GET['page'] ) {
32
 
33
- $url = sprintf('https://premiumaddons.com/pro/?utm_source=wp-menu&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme_name );
34
 
35
  wp_redirect( $url );
36
 
2
 
3
  namespace PremiumAddons\Admin\Includes;
4
 
5
+ use PremiumAddons\Helper_Functions;
6
+
7
  if ( ! defined( 'ABSPATH' ) ) exit;
8
 
9
  class Papro_Actions {
24
 
25
  public function handle_custom_redirects() {
26
 
27
+ $theme_slug = Helper_Functions::get_installed_theme();
28
 
29
  if ( empty( $_GET['page'] ) ) {
30
  return;
32
 
33
  if ( 'premium-addons-pro' === $_GET['page'] ) {
34
 
35
+ $url = sprintf('https://premiumaddons.com/pro/?utm_source=wp-menu&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme_slug );
36
 
37
  wp_redirect( $url );
38
 
admin/includes/plugin-info.php CHANGED
@@ -25,7 +25,7 @@ class Plugin_Info {
25
 
26
  public function pa_about_page() {
27
 
28
- $theme_name = Admin_Notices::get_installed_theme();
29
 
30
  $url = sprintf('https://premiumaddons.com/pro/?utm_source=about-page&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme_name );
31
 
25
 
26
  public function pa_about_page() {
27
 
28
+ $theme_name = Helper_Functions::get_installed_theme();
29
 
30
  $url = sprintf('https://premiumaddons.com/pro/?utm_source=about-page&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme_name );
31
 
admin/includes/version-control.php CHANGED
@@ -91,7 +91,7 @@ class Version_Control {
91
  <tr class="pa-roll-row">
92
  <th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
  <td>
94
- <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.5.8', 'premium-addons-for-elementor') ); ?></div>
95
  <p class="pa-roll-desc">
96
  <span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
  </p>
91
  <tr class="pa-roll-row">
92
  <th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
  <td>
94
+ <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.5.9', 'premium-addons-for-elementor') ); ?></div>
95
  <p class="pa-roll-desc">
96
  <span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
  </p>
admin/settings/modules-setting.php CHANGED
@@ -12,7 +12,7 @@ class Modules_Settings {
12
 
13
  protected $page_slug = 'premium-addons';
14
 
15
- public static $pa_elements_keys = ['premium-banner', 'premium-blog','premium-carousel', 'premium-countdown','premium-counter','premium-dual-header','premium-fancytext','premium-image-separator','premium-maps','premium-modalbox','premium-person','premium-progressbar','premium-testimonials','premium-title','premium-videobox','premium-pricing-table','premium-button','premium-contactform', 'premium-image-button', 'premium-grid','premium-vscroll', 'premium-image-scroll'];
16
 
17
  private $pa_default_settings;
18
 
@@ -140,11 +140,11 @@ class Modules_Settings {
140
 
141
  public function pa_admin_page() {
142
 
143
- $theme_name = Admin_Notices::get_installed_theme();
144
 
145
  $js_info = array(
146
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
147
- 'theme' => $theme_name
148
  );
149
 
150
  wp_localize_script( 'pa-admin-js', 'settings', $js_info );
@@ -353,16 +353,26 @@ class Modules_Settings {
353
  </label>
354
  </td>
355
 
356
- <th><?php echo sprintf( '%1$s %2$s', $prefix, __('Title', 'premium-addons-for-elementor') ); ?></th>
357
  <td>
358
  <label class="switch">
359
- <input type="checkbox" id="premium-title" name="premium-title" <?php checked(1, $this->pa_get_settings['premium-title'], true) ?>>
360
  <span class="slider round"></span>
361
  </label>
362
  </td>
 
363
  </tr>
364
 
365
  <tr>
 
 
 
 
 
 
 
 
 
366
  <th><?php echo sprintf( '%1$s %2$s', $prefix, __('Video Box', 'premium-addons-for-elementor') ); ?></th>
367
  <td>
368
  <label class="switch">
@@ -370,6 +380,11 @@ class Modules_Settings {
370
  <span class="slider round"></span>
371
  </label>
372
  </td>
 
 
 
 
 
373
  <th><?php echo sprintf( '%1$s %2$s', $prefix, __('Vertical Scroll', 'premium-addons-for-elementor') ); ?></th>
374
  <td>
375
  <label class="switch">
@@ -665,6 +680,21 @@ class Modules_Settings {
665
 
666
  return $enabled_keys;
667
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
668
 
669
  public function pa_save_settings() {
670
 
@@ -689,6 +719,7 @@ class Modules_Settings {
689
  'premium-progressbar' => intval( $settings['premium-progressbar'] ? 1 : 0 ),
690
  'premium-testimonials' => intval( $settings['premium-testimonials'] ? 1 : 0 ),
691
  'premium-title' => intval( $settings['premium-title'] ? 1 : 0 ),
 
692
  'premium-videobox' => intval( $settings['premium-videobox'] ? 1 : 0 ),
693
  'premium-pricing-table' => intval( $settings['premium-pricing-table'] ? 1 : 0),
694
  'premium-button' => intval( $settings['premium-button'] ? 1 : 0),
12
 
13
  protected $page_slug = 'premium-addons';
14
 
15
+ public static $pa_elements_keys = ['premium-banner', 'premium-blog','premium-carousel', 'premium-countdown','premium-counter','premium-dual-header','premium-fancytext','premium-image-separator','premium-maps','premium-modalbox','premium-person','premium-progressbar','premium-testimonials','premium-title','premium-videobox','premium-pricing-table','premium-button','premium-contactform', 'premium-image-button', 'premium-grid','premium-vscroll', 'premium-image-scroll', 'premium-templates'];
16
 
17
  private $pa_default_settings;
18
 
140
 
141
  public function pa_admin_page() {
142
 
143
+ $theme_slug = Helper_Functions::get_installed_theme();
144
 
145
  $js_info = array(
146
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
147
+ 'theme' => $theme_slug
148
  );
149
 
150
  wp_localize_script( 'pa-admin-js', 'settings', $js_info );
353
  </label>
354
  </td>
355
 
356
+ <th><?php echo sprintf( '%1$s %2$s', $prefix, __('Templates', 'premium-addons-for-elementor') ); ?></th>
357
  <td>
358
  <label class="switch">
359
+ <input type="checkbox" id="premium-templates" name="premium-templates" <?php checked(1, $this->pa_get_settings['premium-templates'], true) ?>>
360
  <span class="slider round"></span>
361
  </label>
362
  </td>
363
+
364
  </tr>
365
 
366
  <tr>
367
+
368
+ <th><?php echo sprintf( '%1$s %2$s', $prefix, __('Title', 'premium-addons-for-elementor') ); ?></th>
369
+ <td>
370
+ <label class="switch">
371
+ <input type="checkbox" id="premium-title" name="premium-title" <?php checked(1, $this->pa_get_settings['premium-title'], true) ?>>
372
+ <span class="slider round"></span>
373
+ </label>
374
+ </td>
375
+
376
  <th><?php echo sprintf( '%1$s %2$s', $prefix, __('Video Box', 'premium-addons-for-elementor') ); ?></th>
377
  <td>
378
  <label class="switch">
380
  <span class="slider round"></span>
381
  </label>
382
  </td>
383
+
384
+ </tr>
385
+
386
+ <tr>
387
+
388
  <th><?php echo sprintf( '%1$s %2$s', $prefix, __('Vertical Scroll', 'premium-addons-for-elementor') ); ?></th>
389
  <td>
390
  <label class="switch">
680
 
681
  return $enabled_keys;
682
  }
683
+
684
+ /*
685
+ * Check If Premium Templates is enabled
686
+ *
687
+ * @since 3.6.0
688
+ * @access public
689
+ *
690
+ * @return boolean
691
+ */
692
+ public static function check_premium_templates() {
693
+
694
+ $premium_templates = self::get_enabled_keys()['premium-templates'];
695
+
696
+ return $premium_templates;
697
+ }
698
 
699
  public function pa_save_settings() {
700
 
719
  'premium-progressbar' => intval( $settings['premium-progressbar'] ? 1 : 0 ),
720
  'premium-testimonials' => intval( $settings['premium-testimonials'] ? 1 : 0 ),
721
  'premium-title' => intval( $settings['premium-title'] ? 1 : 0 ),
722
+ 'premium-templates' => intval( $settings['premium-templates'] ? 1 : 0 ),
723
  'premium-videobox' => intval( $settings['premium-videobox'] ? 1 : 0 ),
724
  'premium-pricing-table' => intval( $settings['premium-pricing-table'] ? 1 : 0),
725
  'premium-button' => intval( $settings['premium-button'] ? 1 : 0),
assets/editor/templates/css/editor.css ADDED
@@ -0,0 +1,515 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #premium-template-modal .dialog-widget-content {
2
+ background-color: #f1f3f5;
3
+ width: 100%;
4
+ }
5
+ @media (max-width: 1439px) {
6
+ #premium-template-modal .dialog-widget-content {
7
+ max-width: 990px;
8
+ }
9
+ }
10
+ @media (min-width: 1440px) {
11
+ #premium-template-modal .dialog-widget-content {
12
+ max-width: 1200px;
13
+ }
14
+ }
15
+ #premium-template-modal .dialog-widget-header,
16
+ #premium-template-modal .dialog-header {
17
+ padding: 0;
18
+ background-color: #fff;
19
+ -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
20
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
21
+ position: relative;
22
+ z-index: 1;
23
+ }
24
+ #premium-template-modal .dialog-buttons-wrapper {
25
+ display: none;
26
+ }
27
+ #premium-template-modal a,
28
+ #premium-template-modal a:hover {
29
+ color: inherit;
30
+ }
31
+ #premium-template-modal a.elementor-template-library-blank-footer-link {
32
+ -webkit-transition: color 0.5s;
33
+ transition: color 0.5s;
34
+ }
35
+ #premium-template-modal a.elementor-template-library-blank-footer-link:hover {
36
+ color: #9b0a46;
37
+ }
38
+ #premium-template-modal .elementor-button {
39
+ text-transform: uppercase;
40
+ }
41
+ #premium-template-modal ::-webkit-scrollbar {
42
+ width: 6px;
43
+ height: 0;
44
+ border-radius: 3px;
45
+ }
46
+ #premium-template-modal ::-webkit-scrollbar-button {
47
+ width: 0;
48
+ height: 10px;
49
+ }
50
+ #premium-template-modal ::-webkit-scrollbar-thumb {
51
+ background-color: #d5dadf;
52
+ border: 0 none #d5dadf;
53
+ border-radius: 0;
54
+ border-radius: 3px;
55
+ }
56
+ #premium-template-modal ::-webkit-scrollbar-track {
57
+ border: 0 none #fff;
58
+ border-radius: 0;
59
+ }
60
+ #premium-template-modal ::-webkit-scrollbar-corner {
61
+ background: transparent;
62
+ }
63
+ #premium-template-modal-header {
64
+ display: -webkit-box;
65
+ display: -ms-flexbox;
66
+ display: flex;
67
+ -webkit-box-pack: justify;
68
+ -ms-flex-pack: justify;
69
+ display: -webkit-box;
70
+ display: -webkit-flex;
71
+ display: -ms-flexbox;
72
+ display: flex;
73
+ -webkit-box-align: center;
74
+ -webkit-align-items: center;
75
+ -ms-flex-align: center;
76
+ align-items: center;
77
+ -webkit-box-pack: justify;
78
+ -ms-flex-pack: justify;
79
+
80
+ height: 50px;
81
+ }
82
+ #premium-template-modal-header .premium-template-modal-back {
83
+ background: none;
84
+ border: none;
85
+ border-right: 1px solid #e6e9ec;
86
+ padding: 15px 20px 15px 15px;
87
+ line-height: 20px;
88
+ font-size: 13px;
89
+ font-weight: 700;
90
+ outline: none;
91
+ -webkit-transition: all 200ms linear;
92
+ transition: all 200ms linear;
93
+ cursor: pointer;
94
+ color: #6d7882;
95
+ }
96
+ #premium-template-modal-header .premium-template-modal-back:not(:hover) {
97
+ color: #a4afb7;
98
+ }
99
+ #premium-template-modal-header .elementor-button {
100
+ padding: 8px 10px;
101
+ }
102
+ #premium-template-modal-header-close-modal {
103
+ width: 45px;
104
+ border-left: 1px solid #e6e9ec;
105
+ display: -webkit-box;
106
+ display: -ms-flexbox;
107
+ display: flex;
108
+ -webkit-box-align: center;
109
+ -ms-flex-align: center;
110
+ align-items: center;
111
+ -webkit-box-pack: center;
112
+ -ms-flex-pack: center;
113
+ justify-content: center;
114
+ cursor: pointer;
115
+ -webkit-transition: all 200ms linear;
116
+ transition: all 200ms linear;
117
+ }
118
+ #premium-template-modal-header-close-modal i {
119
+ color: #a4afb7;
120
+ font-size: 16px;
121
+ }
122
+ #premium-template-modal-header-close-modal:hover i {
123
+ color: #6d7882;
124
+ }
125
+ #premium-template-modal-header-actions .template-library-activate-license {
126
+ display: block;
127
+ padding: 8px 10px;
128
+ color: #fff;
129
+ }
130
+ #premium-template-modal-header-actions
131
+ .template-library-activate-license:hover {
132
+ color: #fff;
133
+ opacity: 0.85;
134
+ -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12),
135
+ 0 2px 2px rgba(0, 0, 0, 0.2);
136
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
137
+ }
138
+ #premium-template-modal .elementor-library-error {
139
+ margin: 18% 0 0;
140
+ }
141
+ #premium-template-modal .elementor-library-error-message {
142
+ font-size: 18px;
143
+ padding: 0 0 20px;
144
+ }
145
+ #premium-template-modal .elementor-library-error-link a {
146
+ display: inline-block;
147
+ color: #fff;
148
+ background-image: none;
149
+ background: #fcb92c;
150
+ font-size: 13px;
151
+ font-weight: 400;
152
+ font-style: normal;
153
+ text-transform: uppercase;
154
+ line-height: 1;
155
+ height: 40px;
156
+ line-height: 40px;
157
+ min-width: 170px;
158
+ padding: 0 20px;
159
+ border: none;
160
+ border-radius: 3px;
161
+ cursor: pointer;
162
+ -webkit-transition: all 0.5s;
163
+ transition: all 0.5s;
164
+ }
165
+ #premium-template-modal .elementor-library-error-link a:hover {
166
+ opacity: 0.85;
167
+ -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12),
168
+ 0 2px 2px rgba(0, 0, 0, 0.2);
169
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
170
+ }
171
+ #premium-modal-tabs-items {
172
+ display: none;
173
+ }
174
+ #premium-template-modal-header-tabs {
175
+ display: -webkit-box;
176
+ display: -webkit-flex;
177
+ display: -ms-flexbox;
178
+ display: flex;
179
+ flex: 2;
180
+ -webkit-box-align: center;
181
+ -webkit-align-items: center;
182
+ -ms-flex-align: center;
183
+ align-items: center;
184
+ -webkit-box-pack: justify;
185
+ -webkit-justify-content: space-between;
186
+ -ms-flex-pack: justify;
187
+ justify-content: space-between;
188
+ }
189
+ #premium-template-modal-header-logo-area {
190
+ text-align: left;
191
+ padding-left: 15px;
192
+ }
193
+ #premium-template-modal-header-logo-area > * {
194
+ display: -webkit-box;
195
+ display: -webkit-flex;
196
+ display: -ms-flexbox;
197
+ display: flex;
198
+ -webkit-box-align: center;
199
+ -webkit-align-items: center;
200
+ -ms-flex-align: center;
201
+ align-items: center;
202
+ }
203
+ #premium-template-modal-header-logo .premium-template-modal-header-logo-icon {
204
+ margin-right: 5px;
205
+ }
206
+ #premium-template-modal-header-logo
207
+ .premium-template-modal-header-logo-icon
208
+ img {
209
+ width: 30px;
210
+ height: 30px;
211
+ }
212
+ #premium-template-modal-header-logo {
213
+ line-height: 1;
214
+ text-transform: uppercase;
215
+ font-weight: 700;
216
+ cursor: pointer;
217
+ }
218
+ #premium-template-library-content {
219
+ display: -webkit-box;
220
+ display: -ms-flexbox;
221
+ display: flex;
222
+ height: calc(100% - 20px);
223
+ }
224
+ #premium-template-library-content .premium-filters-list {
225
+ width: 18%;
226
+ padding: 0px 10px 10px 0px;
227
+ height: 100%;
228
+ overflow: auto;
229
+ }
230
+ #premium-template-library-content .premium-templates-wrap {
231
+ width: 85%;
232
+ }
233
+ #premium-template-library-content .premium-templates-list {
234
+ height: 100%;
235
+ overflow: auto;
236
+ margin-top: 12px;
237
+ }
238
+ #premium-template-library-content .premium-keywords-list {
239
+ padding-left: 10px;
240
+ }
241
+ #elementor-template-library-filter {
242
+ display: -webkit-box;
243
+ display: -ms-flexbox;
244
+ display: flex;
245
+ align-items: center;
246
+ }
247
+ #elementor-template-library-filter label {
248
+ font-size: 14px;s
249
+ font-weight: 500;
250
+ margin-right: 0.5em;
251
+ }
252
+ #premium-template-modal .elementor-loader {
253
+ position: relative;
254
+ }
255
+ #premium-template-modal .elementor-loader .elementor-loader-box:first-of-type {
256
+ left: 40px;
257
+ top: 40px;
258
+ width: 14px;
259
+ height: 70px;
260
+ }
261
+ #premium-template-modal .elementor-loader .elementor-loader-box:nth-of-type(2) {
262
+ top: 40px;
263
+ }
264
+ #premium-template-modal .elementor-loader .elementor-loader-box:nth-of-type(3) {
265
+ top: 68px;
266
+ }
267
+ #premium-template-modal .elementor-loader .elementor-loader-box:nth-of-type(4) {
268
+ bottom: 40px;
269
+ }
270
+ #premium-template-modal
271
+ .elementor-loader
272
+ .elementor-loader-box:not(:first-of-type) {
273
+ right: 40px;
274
+ height: 14px;
275
+ width: 42px;
276
+ }
277
+ #premium-template-library-content .premium-template-filter-label {
278
+ display: block;
279
+ position: relative;
280
+ text-align: left;
281
+ padding: 9px 0;
282
+ }
283
+ #premium-template-library-content
284
+ .premium-template-filter-label
285
+ input[type="radio"] {
286
+ position: absolute;
287
+ left: 0;
288
+ top: 0;
289
+ right: 0;
290
+ bottom: 0;
291
+ margin: 0;
292
+ opacity: 0;
293
+ display: block;
294
+ width: 100%;
295
+ height: 100%;
296
+ }
297
+ #premium-template-library-content .premium-template-filter-label:hover span,
298
+ #premium-template-library-content
299
+ .premium-template-filter-label
300
+ input:checked
301
+ + span {
302
+ color: #f47216;
303
+ }
304
+ #premium-template-library-content .premium-template-filter-item {
305
+ border-top: 1px solid rgba(213, 218, 223, 0.5);
306
+ }
307
+ #premium-template-library-content .premium-template-filter-item:first-child {
308
+ border-top: none;
309
+ }
310
+ #premium-template-library-content .premium-templates-wrap {
311
+ width: 100%;
312
+ }
313
+ #premium-template-library-content .premium-template-insert {
314
+ padding: 5px 12px;
315
+ }
316
+ #premium-template-library-content .premium-template-insert i {
317
+ margin-right: 2px;
318
+ }
319
+ #premium-template-library-content .premium-template-insert span {
320
+ font-size: 11px;
321
+ }
322
+ #premium-template-library-content .elementor-template-library-template-name {
323
+ width: 200px;
324
+ }
325
+ #premium-modal-templates-container {
326
+ display: -webkit-box;
327
+ display: -ms-flexbox;
328
+ display: flex;
329
+ -ms-flex-wrap: wrap;
330
+ flex-wrap: wrap;
331
+ -webkit-box-align: start;
332
+ -ms-flex-align: start;
333
+ align-items: flex-start;
334
+ }
335
+ #premium-modal-templates-container .elementor-template-library-template {
336
+ position: relative;
337
+ }
338
+ #premium-modal-templates-container .premium-template-pro::before {
339
+ position: absolute;
340
+ right: -76px;
341
+ top: 2px;
342
+ content: "PRO";
343
+ z-index: 10;
344
+ width: 180px;
345
+ height: 20px;
346
+ padding: 0 20px;
347
+ font-size: 12px;
348
+ line-height: 10px;
349
+ text-align: center;
350
+ color: #fff;
351
+ font-weight: bold;
352
+ box-shadow: 0px 1px 3px #888888;
353
+ background: #f47216;
354
+ border-top: 5px solid #f47216;
355
+ border-bottom: 5px solid #f47216;
356
+ -webkit-transform: rotate(35deg);
357
+ transform: rotate(35deg);
358
+ }
359
+ #premium-modal-templates-container .elementor-template-library-template-remote {
360
+ width: calc(33.3333% - 30px);
361
+ }
362
+ #premium-template-library-content
363
+ #premium-modal-templates-container
364
+ .elementor-template-library-template-controls {
365
+ position: absolute;
366
+ background-color: #fff;
367
+ left: 0;
368
+ bottom: -15px;
369
+ right: 0;
370
+ display: -webkit-box;
371
+ display: -ms-flexbox;
372
+ display: flex;
373
+ -webkit-box-pack: justify;
374
+ -ms-flex-pack: justify;
375
+ -webkit-transition: all 0.3s ease;
376
+ transition: all 0.3s ease;
377
+ justify-content: center;
378
+ padding: 9px 10px 9px 8px;
379
+ z-index: 10;
380
+ }
381
+ #premium-template-library-content
382
+ #premium-modal-templates-container
383
+ .elementor-template-library-template:hover
384
+ .elementor-template-library-template-controls {
385
+ bottom: 0;
386
+ }
387
+ #premium-template-library-content
388
+ #premium-modal-templates-container
389
+ .premium-template-insert {
390
+ padding: 0;
391
+ margin: 0;
392
+ color: #39b54a;
393
+ background: none;
394
+ text-transform: none;
395
+ font-size: 12px;
396
+ }
397
+ #premium-template-library-content
398
+ #premium-modal-templates-container
399
+ .premium-clone-template {
400
+ background: none;
401
+ border: none;
402
+ padding: 0;
403
+ margin: 0;
404
+ color: #9b0a46;
405
+ cursor: pointer;
406
+ display: none;
407
+ font-size: 12px;
408
+ -webkit-box-shadow: none;
409
+ box-shadow: none;
410
+ outline: none;
411
+ font-weight: bold;
412
+ }
413
+ div.premium-template-has-url:hover .premium-clone-template {
414
+ display: block !important;
415
+ }
416
+ #premium-template-library-content
417
+ #premium-modal-templates-container
418
+ .premium-template-insert:hover {
419
+ -webkit-box-shadow: none;
420
+ box-shadow: none;
421
+ }
422
+ #premium-template-library-content
423
+ #premium-modal-templates-container
424
+ .elementor-template-library-template-name {
425
+ padding: 5px 0 0;
426
+ text-align: center;
427
+ display: block !important;
428
+ }
429
+ #premium-template-library-content
430
+ #premium-modal-templates-container
431
+ .elementor-template-library-template-name-holder {
432
+ height: 23px;
433
+ }
434
+ #premium-template-library-content
435
+ #premium-modal-templates-container
436
+ .template-library-activate-license {
437
+ display: none;
438
+ color: #fcb92c;
439
+ font-size: 12px;
440
+ }
441
+ #premium-template-library-content
442
+ #premium-modal-templates-container
443
+ .template-library-activate-license:hover {
444
+ color: #d89403;
445
+ }
446
+ #premium-template-library-content
447
+ #premium-modal-templates-container
448
+ .elementor-template-library-template:hover
449
+ .elementor-template-library-template-name {
450
+ opacity: 0;
451
+ }
452
+ .library-tab-premium_page
453
+ #premium-modal-templates-container
454
+ .elementor-template-library-template-remote {
455
+ width: calc(25% - 20px);
456
+ margin: 10px;
457
+ }
458
+ .library-tab-premium_page
459
+ #premium-modal-templates-container
460
+ .elementor-template-library-template-remote
461
+ .elementor-template-library-template-action {
462
+ padding: 8px;
463
+ }
464
+ #premium-modal-templates-container
465
+ .premium-template-no-url
466
+ .elementor-template-library-template-preview {
467
+ cursor: default !important;
468
+ opacity: 0 !important;
469
+ }
470
+ #premium-modal-templates-container .premium-template-no-url .fa-search-plus {
471
+ display: none !important;
472
+ }
473
+ #premium-modal-templates-container
474
+ .elementor-template-library-template:hover
475
+ .template-library-activate-license {
476
+ display: block !important;
477
+ }
478
+ .elementor-template-library-template-screenshot img {
479
+ width: 100%;
480
+ max-width: 100%;
481
+ height: auto;
482
+ display: block;
483
+ }
484
+ /* * Preview Iframe */
485
+ #premium-templatate-item-preview-wrap,
486
+ #premium-templatate-item-preview-wrap .premium-template-item-preview-iframe {
487
+ height: 100%;
488
+ overflow: hidden;
489
+ }
490
+ #premium-templatate-item-preview-wrap iframe {
491
+ height: 140%;
492
+ -webkit-transform: scale(0.666) translateX(-25%) translateY(-25%);
493
+ -ms-transform: scale(0.666) translateX(-25%) translateY(-25%);
494
+ transform: scale(0.666) translateX(-25%) translateY(-25%);
495
+ }
496
+ @media (max-width: 1439px) {
497
+ #premium-templatate-item-preview-wrap iframe {
498
+ width: 1440px;
499
+ }
500
+ }
501
+ @media (min-width: 1440px) {
502
+ #premium-templatate-item-preview-wrap iframe {
503
+ width: 1710px;
504
+ }
505
+ }
506
+ .premium-template-item-notice div {
507
+ color: #31708f;
508
+ background-color: #d9edf7;
509
+ border-color: #bcdff1;
510
+ padding: 15px;
511
+ border-left: 5px solid #bcdff1;
512
+ position: relative;
513
+ text-align: left;
514
+ margin-bottom: 8px;
515
+ }
assets/editor/templates/css/preview.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ .elementor-add-new-section .pa-add-section-btn {
2
+ color: #fff;
3
+ background: #F47216;
4
+ margin-right: 5px;
5
+ }
assets/editor/templates/js/editor.js ADDED
@@ -0,0 +1,1022 @@