Commit 77e1f8a6 authored by Laury Bueno's avatar Laury Bueno
Browse files

Div updated to version 3.0.40 ( published in 4-4-17 )

parent 52cd5a7b
......@@ -71,7 +71,7 @@ The MIT License (MIT)
Underscore.js 1.8.3
http://underscorejs.org
(c) 2009-2015 Jeremy Ashkenas,
(c) 2009-2015 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
Permission is hereby granted, free of charge, to any person obtaining a copy
......@@ -429,6 +429,45 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
Media Player Elements
---------------------
includes/builder/frontend-builder/assets/css/mediaelement-images/
```text
Adapted from WordPress
http://www.wordpress.org
@copyright by the WordPress contributors.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
This program incorporates work covered by the following copyright and
permission notices:
b2 is (c) 2001, 2002 Michel Valdrighi - m@tidakada.com - http://tidakada.com
b2 is released under the GPL
WordPress - Web publishing software
Copyright 2003-2010 by the contributors
WordPress is released under the GPL
```
WP Color Picker Alpha
---------------------
......@@ -1290,7 +1329,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
Underscoe
Underscore
---------
includes/builder/frontend-builder/bundle.js
......@@ -1384,6 +1423,84 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
```
User Specific Localization of Visual Builder
--------------------------------------------
et-pagebuilder/et-pagebuilder.php
```text
Adapted from WordPress
@copyright 2016 by the WordPress contributors.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
This program incorporates work covered by the following copyright and
permission notices:
b2 is (c) 2001, 2002 Michel Valdrighi - m@tidakada.com - http://tidakada.com
b2 is released under the GPL
WordPress - Web publishing software
Copyright 2003-2010 by the contributors
WordPress is released under the GPL
```
Autosave and Heartbeat Features
--------------------------------------------
includes/builder/frontend-builder/app/lib/autosave.js
includes/builder/frontend-builder/app/lib/heartbeat.js
includes/builder/core.php
```text
Adapted from WordPress
@copyright 2016 by the WordPress contributors.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
This program incorporates work covered by the following copyright and
permission notices:
b2 is (c) 2001, 2002 Michel Valdrighi - m@tidakada.com - http://tidakada.com
b2 is released under the GPL
WordPress - Web publishing software
Copyright 2003-2010 by the contributors
WordPress is released under the GPL
```
ET Theme Options
================
......
This diff is collapsed.
......@@ -168,6 +168,12 @@ body button.et-core-button {
font-family: 'Open Sans', sans-serif !important;
}
.rtl .et-core-button,
body.rtl button.et-core-button {
margin-right: 7px;
margin-left: 0;
}
.et-core-button:focus,
.et-core-button:hover,
.et-core-button:active {
......@@ -298,6 +304,11 @@ body button.et-core-button {
transition: background .5s;
}
.rtl .et-core-modal-close {
right: auto;
left: 0;
}
.et-core-modal-close:hover,
.et-core-modal-close:focus,
.et-core-modal-close:active {
......@@ -524,6 +535,11 @@ body button.et-core-button {
background: none;
}
.rtl .et-core-tabs li,
.rtl .et-core-tabs li.ui-state-default {
float: right;
}
.et-core-tabs li a,
.et-core-tabs li.ui-state-default a {
color: #fff;
......
......@@ -43,6 +43,10 @@
overflow: hidden;
}
.rtl .et-core-portability-import-placeholder {
float: right;
}
.et-core-portability-import-form input[type="file"] {
position: absolute;
left: 0;
......@@ -51,6 +55,11 @@
opacity: 0;
}
.rtl .et-core-portability-import-form input[type="file"] {
left: auto;
right: 0;
}
.et-core-portability-import-placeholder {
width: 166px;
}
......@@ -63,6 +72,10 @@
float: left;
}
.rtl .et-core-portability-import-form .et-core-button {
float: right;
}
/*-----------------------------------------------------------------------------
3.0 - Loader, Progress Bar and Messages
------------------------------------------------------------------------------*/
......@@ -124,5 +137,4 @@
.customize-controls-close[data-et-core-modal*="data-et-core-portability"]:before {
font-size: 13px;
left: 15px;
top: 2px;
}
\ No newline at end of file
......@@ -23,7 +23,8 @@ final class ET_Core_Portability {
* @param string $context Protability context previously registered.
*/
public function __construct( $context ) {
if ( ! current_user_can( 'switch_themes' ) ) {
// perform this check only in admin area to make sure class loaded properly in Frontend Builder
if ( ! current_user_can( 'switch_themes' ) && is_admin() ) {
return false;
}
......@@ -265,18 +266,34 @@ final class ET_Core_Portability {
if ( 0 == $term->parent || isset( $terms[$term->parent] ) ) {
$terms[$term->term_id] = $term;
} else {
$get_terms[] = $term;
// if parent category is also exporting then add the term to the end of the list and process it later
// otherwise add a term as usual
if ( $this->is_parent_term_included( $get_terms, $term->parent ) ) {
$get_terms[] = $term;
} else {
$terms[$term->term_id] = $term;
}
}
}
$posts[$post->ID]->terms = array();
foreach ( $terms as $term ) {
$parents_data = array();
if ( $term->parent ) {
$parent_slug = isset( $terms[$term->parent] ) ? $terms[$term->parent]->slug : $this->get_parent_slug( $term->parent, $term->taxonomy );
$parents_data = $this->get_all_parents( $term->parent, $term->taxonomy );
} else {
$parent_slug = 0;
}
$posts[$post->ID]->terms[$term->term_id] = array(
'name' => $term->name,
'slug' => $term->slug,
'taxonomy' => $term->taxonomy,
'parent' => $term->parent ? $terms[$term->parent]->slug : 0,
'parent' => $parent_slug,
'all_parents' => $parents_data,
'description' => $term->description
);
}
......@@ -285,6 +302,70 @@ final class ET_Core_Portability {
return $posts;
}
/**
* Check whether the $parent_id included into the $terms_list.
*
* @since 1.0.0
*
* @param array $terms_list Array of term objects.
* @param int $parent_id.
*/
private function is_parent_term_included( $terms_list, $parent_id ) {
$is_parent_found = false;
foreach ( $terms_list as $term => $term_details ) {
if ( $parent_id === $term_details->term_id ) {
$is_parent_found = true;
}
}
return $is_parent_found;
}
/**
* Retrieve the term slug.
*
* @since 1.0.0
*
* @param int $parent_id.
* @param string $taxonomy.
*/
private function get_parent_slug( $parent_id, $taxonomy ) {
$term_data = get_term( $parent_id, $taxonomy );
$slug = '' === $term_data->slug ? 0 : $term_data->slug;
return $slug;
}
/**
* Prepare array of all parents so the correct hierarchy can be restored during the import.
*
* @since 1.0.0
*
* @param int $parent_id.
* @param string $taxonomy.
*/
private function get_all_parents( $parent_id, $taxonomy ) {
$parents_data_array = array();
$parent = $parent_id;
// retrieve data for all parent categories
if ( 0 !== $parent ) {
while( 0 !== $parent ) {
$parent_term_data = get_term( $parent, $taxonomy );
$parents_data_array[$parent_term_data->slug] = array(
'name' => $parent_term_data->name,
'description' => $parent_term_data->description,
'parent' => 0 !== $parent_term_data->parent ? $this->get_parent_slug( $parent_term_data->parent, $taxonomy ) : 0,
);
$parent = $parent_term_data->parent;
}
}
//reverse order of items, to simplify the restoring process
return array_reverse( $parents_data_array );
}
/**
* Import post.
*
......@@ -360,6 +441,10 @@ final class ET_Core_Portability {
if ( empty( $term['parent'] ) ) {
$parent = 0;
} else {
if ( isset( $term['all_parents'] ) && ! empty( $term['all_parents'] ) ) {
$this->restore_parent_categories( $term['all_parents'], $term['taxonomy'] );
}
$parent = term_exists( $term['parent'], $term['taxonomy'] );
if ( is_array( $parent ) ){
......@@ -406,6 +491,32 @@ final class ET_Core_Portability {
return true;
}
/**
* Restore the categories hierarchy in library.
*
* @since 1.0.0
*
* @param array $parents_array Array of parent categories data.
* @param string $taxonomy
*/
private function restore_parent_categories( $parents_array, $taxonomy ) {
foreach( $parents_array as $slug => $category_data ) {
$current_category = term_exists( $slug, $taxonomy );
if ( ! is_array( $current_category ) ) {
$parent_id = 0 !== $category_data['parent'] ? term_exists( $category_data['parent'], $taxonomy ) : 0;
wp_insert_term( $category_data['name'], $taxonomy, array(
'slug' => $slug,
'description' => $category_data['description'],
'parent' => is_array( $parent_id ) ? $parent_id['term_id'] : $parent_id,
) );
} else if ( ( ! isset( $current_category['parent'] ) || 0 === $current_category['parent'] ) && 0 !== $category_data['parent'] ) {
$parent_id = 0 !== $category_data['parent'] ? term_exists( $category_data['parent'], $taxonomy ) : 0;
wp_update_term( $current_category['term_id'], $taxonomy, array( 'parent' => is_array( $parent_id ) ? $parent_id['term_id'] : $parent_id ) );
}
}
}
/**
* Restrict data according the argument registered.
*
......
......@@ -177,6 +177,10 @@ final class ET_Core_Updates {
$request = wp_remote_post( 'https://www.elegantthemes.com/api/api_downloads.php', $options );
if ( is_wp_error( $request ) ) {
$request = wp_remote_post( 'https://cdn.elegantthemes.com/api/api_downloads.php', $options );
}
if ( ! is_wp_error( $request ) && wp_remote_retrieve_response_code( $request ) == 200 ){
$response = wp_remote_retrieve_body( $request );
......@@ -221,6 +225,11 @@ final class ET_Core_Updates {
$plugins_request = wp_remote_post( 'https://www.elegantthemes.com/api/api.php', $options );
if ( is_wp_error( $plugins_request ) ) {
$options['body']['failed_request'] = 'true';
$plugins_request = wp_remote_post( 'https://cdn.elegantthemes.com/api/api.php', $options );
}
if ( ! is_wp_error( $plugins_request ) && wp_remote_retrieve_response_code( $plugins_request ) == 200 ){
$plugins_response = unserialize( wp_remote_retrieve_body( $plugins_request ) );
......@@ -315,6 +324,11 @@ final class ET_Core_Updates {
$theme_request = wp_remote_post( 'https://www.elegantthemes.com/api/api.php', $options );
if ( is_wp_error( $theme_request ) ) {
$options['body']['failed_request'] = 'true';
$theme_request = wp_remote_post( 'https://cdn.elegantthemes.com/api/api.php', $options );
}
if ( ! is_wp_error( $theme_request ) && wp_remote_retrieve_response_code( $theme_request ) == 200 ){
$theme_response = unserialize( wp_remote_retrieve_body( $theme_request ) );
......@@ -396,9 +410,10 @@ final class ET_Core_Updates {
$theme_plugin_updates_unavailable = array_merge( $messages['theme_updates_unavailable'], $messages['plugin_updates_unavailable'] );
if ( is_admin() ) {
if ( in_array( $original_text, $messages['update_package_unavailable'] ) ) {
// Use in_array() with $strict=true to avoid adding our messages to wrong places. It may happen if $original_text = 0 for example.
if ( in_array( $original_text, $messages['update_package_unavailable'], true ) ) {
$message = et_get_safe_localization( __( '<em>Before you can receive product updates, you must first authenticate your Elegant Themes subscription. To do this, you need to enter both your Elegant Themes Username and your Elegant Themes API Key into the Updates Tab in your theme and plugin settings. To locate your API Key, <a href="https://www.elegantthemes.com/members-area/api-key.php" target="_blank">log in</a> to your Elegant Themes account and navigate to the <strong>Account > API Key</strong> page. <a href="http://www.elegantthemes.com/gallery/divi/documentation/update/" target="_blank">Learn more here</a></em>. If you still get this message, please make sure that your Username and API Key have been entered correctly', 'et-core' ) );
} else if ( in_array( $original_text, $theme_plugin_updates_unavailable ) ) {
} else if ( in_array( $original_text, $theme_plugin_updates_unavailable, true ) ) {
$message = et_get_safe_localization( __( 'Automatic updates currently unavailable. For all Elegant Themes products, please <a href="http://www.elegantthemes.com/gallery/divi/documentation/update/" target="_blank">authenticate your subscription</a> via the Updates tab in your theme & plugin settings to enable product updates. Make sure that your Username and API Key have been entered correctly.', 'et-core' ) );
}
......
......@@ -2,7 +2,20 @@
if ( ! function_exists( 'et_get_safe_localization' ) ) :
function et_get_safe_localization( $string ) {
return wp_kses( $string, et_get_allowed_localization_html_elements() );
return apply_filters( 'et_get_safe_localization', wp_kses( $string, et_get_allowed_localization_html_elements() ) );
}
endif;
if ( ! function_exists( 'et_allow_ampersand' ) ) :
/**
* Convert &amp; into &
* Escaped ampersand by wp_kses() which is used by et_get_safe_localization()
* can be a troublesome in some cases, ie.: outputted string is sent as email
* @param string original string
* @return string modified string
*/
function et_allow_ampersand( $string ) {
return str_replace('&amp;', '&', $string);
}
endif;
......@@ -21,8 +34,10 @@ function et_get_allowed_localization_html_elements() {
'href' => array(),
'title' => array(),
'target' => array(),
'rel' => array(),
),
'b' => array(),
'br' => array(),
'em' => array(),
'p' => array(),
'span' => array(),
......@@ -84,3 +99,29 @@ function et_core_load_main_fonts() {
wp_enqueue_style( 'et-core-main-fonts', esc_url_raw( $fonts_url ), array(), null );
}
endif;
if ( ! function_exists( 'et_core_browser_body_class' ) ) :
function et_core_browser_body_class( $classes ) {
global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;
if( $is_lynx ) $classes[] = 'lynx';
elseif( $is_gecko ) $classes[] = 'gecko';
elseif( $is_opera ) $classes[] = 'opera';
elseif( $is_NS4 ) $classes[] = 'ns4';
elseif( $is_safari ) $classes[] = 'safari';
elseif( $is_chrome ) $classes[] = 'chrome';
elseif( $is_IE ) $classes[] = 'ie';
else $classes[] = 'unknown';
if( $is_iphone ) $classes[] = 'iphone';
return $classes;
}
endif;
add_filter( 'body_class', 'et_core_browser_body_class' );
if ( ! function_exists( 'et_force_edge_compatibility_mode' ) ) :
function et_force_edge_compatibility_mode() {
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
}
endif;
add_action( 'et_head_meta', 'et_force_edge_compatibility_mode' );
......@@ -17,6 +17,8 @@ box-shadow: inset 0px 0px 300px -86px rgba(0,0,0,1); text-align: center; backgro
#customize-preview.et_divi_phone iframe::-webkit-scrollbar-thumb, #customize-preview.et_divi_tablet iframe::-webkit-scrollbar-thumb { -webkit-border-radius: 0 !important; border-radius: 0 !important; background: #3F3F3F !important; }
#customize-preview.et_divi_phone iframe::-webkit-thumb:window-inactive, #customize-preview.et_divi_tablet iframe::-webkit-thumb:window-inactive { background: #d7d7d7 !important; }
#customize-header-actions { z-index:100000; }
span.et_divi_reset_slider { width: 16px; height: 16px; margin-left: 5px; display: inline-block; position: relative;}
span.et_divi_reset_slider:after { font-family: 'ETmodules'; content: '\e61f'; font-size: 16px; line-height: 1em; color: #D4D4D4; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-transition: background .5s; -moz-transition: background .5s; transition: background .5s;}
span.et_divi_reset_slider:hover:after { color: #A7A7A7; }
......@@ -62,6 +64,7 @@ input[type=checkbox]:checked:before { color: #2E86B9; float: none; }
.wp-color-result:after { background-color: rgba(0,0,0,.2); color: #fff; height: 30px; line-height: 30px; border: none; box-shadow: none; font-size: 12px; border-radius: 0 4px 4px 0; padding: 0 15px; }
.wp-color-result:hover, .wp-color-result:focus:after, .wp-color-result:hover:after { color: #fff; border: none; }
.wp-picker-container .iris-picker { margin: 15px 0 0 0; }
.wp-picker-container .iris-square, .wp-picker-container .iris-palette-container { margin-left: -1px; }
.wp-picker-container, .wp-picker-input-wrap { width: 100%; border-radius: 4px; overflow: hidden; }
.wp-picker-container input[type=text].wp-color-picker, .wp-core-ui .wp-picker-default, .wp-core-ui .wp-picker-clear { width: 45% !important; vertical-align: bottom; margin-top: 10px; }
.wp-core-ui .wp-picker-default, .wp-core-ui .wp-picker-clear { margin-left: 10%; }
......@@ -74,7 +77,6 @@ input[type=checkbox]:checked:before { color: #2E86B9; float: none; }
#customize-control-et_divi-disable_custom_footer_credits { margin-top: 15px; }
#customize-control-et_divi-boxed_layout { margin-top: 20px; }
li#customize-control-et_divi-header_style { margin-bottom: 20px; }
.control-panel-back:before, .customize-controls-close:before { top: 3px; left: 12px; }
.accordion-section-content li.customize-control:first-of-type, .accordion-section-content li.customize-control:first-of-type .customize-control-title { margin-top: 0 !important; }
.accordion-section-content { padding: 20px; background-color: #fff !important; border-bottom: 1px solid #dddddd; }
......
......@@ -111,6 +111,9 @@ function et_add_epanel() {
||
( 'reset' === $_POST['action'] && isset( $_POST['_wpnonce_reset'] ) && wp_verify_nonce( $_POST['_wpnonce_reset'], 'et-nojs-reset_epanel' ) )
) {
if ( ! isset( $GLOBALS['et_core_updates'] ) ) {
et_register_updates_component();
}
epanel_save_data( 'js_disabled' ); //saves data when javascript is disabled
}
}
......@@ -273,9 +276,15 @@ if ( ! function_exists( 'et_build_epanel' ) ) {
<?php } elseif ( 'textarea' == $value['type'] ) { ?>
<?php
$et_textarea_value = '';
$et_textarea_value = ( '' != et_get_option( $value['id'], '', '', false, $is_new_global_setting, $global_setting_main_name, $global_setting_sub_name ) ) ? et_get_option( $value['id'], '', '', false, $is_new_global_setting, $global_setting_main_name, $global_setting_sub_name ) : $value['std'];
$et_textarea_value = stripslashes( $et_textarea_value );
// get the custom css value from WP custom CSS option if supported
if ( ( $shortname . '_custom_css' ) === $value['id'] && function_exists( 'wp_get_custom_css') ) {
$et_textarea_value = wp_get_custom_css();
$et_textarea_value = strip_tags( $et_textarea_value );
} else {
$et_textarea_value = '';
$et_textarea_value = ( '' != et_get_option( $value['id'], '', '', false, $is_new_global_setting, $global_setting_main_name, $global_setting_sub_name ) ) ? et_get_option( $value['id'], '', '', false, $is_new_global_setting, $global_setting_main_name, $global_setting_sub_name ) : $value['std'];
$et_textarea_value = stripslashes( $et_textarea_value );
}
?>
<textarea name="<?php echo esc_attr( $value['id'] ); ?>" id="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_textarea( $et_textarea_value ); ?></textarea>
......@@ -521,9 +530,9 @@ if ( ! function_exists( 'et_build_epanel' ) ) {
<script type="text/template" id="epanel-yes-no-button-template">
<div class="et_pb_yes_no_button_wrapper">
<div class="et_pb_yes_no_button"><!-- .et_pb_on_state || .et_pb_off_state -->
<span class="et_pb_value_text et_pb_on_value"><?php esc_html_e( 'Enable', $themename ); ?></span>
<span class="et_pb_value_text et_pb_on_value"><?php esc_html_e( 'Enabled', $themename ); ?></span>
<span class="et_pb_button_slider"></span>
<span class="et_pb_value_text et_pb_off_value"><?php esc_html_e( 'Disable', $themename ); ?></span>
<span class="et_pb_value_text et_pb_off_value"><?php esc_html_e( 'Disabled', $themename ); ?></span>
</div>
</div>
</script>
......@@ -649,8 +658,16 @@ if ( ! function_exists( 'epanel_save_data' ) ) {
// html is not allowed
if ( 'nohtml' == $value['validation_type'] ) {
if ( $value['id'] === ( $shortname . '_custom_css' ) ) {
// don't strip slashes from custom css, it should be possible to use \ for icon fonts
$et_option_new_value = wp_strip_all_tags( $_POST[ $value['id'] ] );
// save custom css into wp custom css option if supported
// fallback to legacy system otherwise
if ( function_exists( 'wp_update_custom_css_post' ) ) {
// Data sent via AJAX is automatically escaped by browser, thus it needs
// to be unslashed befor being saved into custom CSS post
wp_update_custom_css_post( wp_unslash( wp_strip_all_tags( $_POST[ $value['id'] ] ) ) );
} else {
// don't strip slashes from custom css, it should be possible to use \ for icon fonts
$et_option_new_value = wp_strip_all_tags( $_POST[ $value['id'] ] );
}
} else {
$et_option_new_value = wp_strip_all_tags( stripslashes( $_POST[ $value['id'] ] ) );
}
......@@ -723,6 +740,15 @@ if ( ! function_exists( 'epanel_save_data' ) ) {
}
}
// Reset Google Maps API Key
update_option( 'et_google_api_settings', '' );
// Resets WordPress custom CSS which is synced with Options Custom CSS as of WP 4.7
if ( function_exists( 'wp_get_custom_css' ) ) {
wp_update_custom_css_post('');
set_theme_mod( 'et_pb_css_synced', 'no' );
}
$redirect_url = add_query_arg( 'reset', 'true', $redirect_url );
header( "Location: " . $redirect_url );
......
......@@ -131,6 +131,11 @@ h1#epanel-title {
padding-left: 11px;
}
.rtl h1#epanel-title {
padding-left: 0;
padding-right: 11px;
}
#epanel-title:before {
font-family: 'etbuilder';
speak: none;
......@@ -147,10 +152,21 @@ h1#epanel-title {
font-size: 32px;
}
.rtl #epanel-title:before {
left: auto;
right: 0;
}
.toplevel_page_et_extra_options h1#epanel-title, .toplevel_page_et_divi_options h1#epanel-title {