/**
* Avada Builder Text Shadow Helper class.
*
* @package Avada-Builder
* @since 3.1
*/
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
/**
* Avada Builder Box Shadow Helper class.
*
* @since 3.1
*/
class Fusion_Builder_Text_Shadow_Helper {
/**
* Get text-shadow params.
*
* @static
* @access public
* @since 3.1
* @param array $args The placeholder arguments.
* @return array
*/
public static function get_params( $args ) {
$params = [
[
'type' => 'radio_button_set',
'heading' => esc_attr__( 'Text Shadow', 'fusion-builder' ),
'description' => esc_attr__( 'Set to "Yes" to enable text shadows.', 'fusion-builder' ),
'param_name' => 'text_shadow',
'default' => 'no',
'group' => esc_html__( 'Design', 'fusion-builder' ),
'value' => [
'yes' => esc_attr__( 'Yes', 'fusion-builder' ),
'no' => esc_attr__( 'No', 'fusion-builder' ),
],
'callback' => [],
],
[
'type' => 'dimension',
'remove_from_atts' => true,
'heading' => esc_attr__( 'Text Shadow Position', 'fusion-builder' ),
'description' => esc_attr__( 'Set the vertical and horizontal position of the text shadow. Positive values put the shadow below and right of the text, negative values put it above and left of the text. In pixels, ex. 5px.', 'fusion-builder' ),
'param_name' => 'dimension_text_shadow',
'value' => [
'text_shadow_vertical' => '',
'text_shadow_horizontal' => '',
],
'group' => esc_html__( 'Design', 'fusion-builder' ),
'dependency' => [
[
'element' => 'text_shadow',
'value' => 'yes',
'operator' => '==',
],
],
'callback' => [],
],
[
'type' => 'range',
'heading' => esc_attr__( 'Text Shadow Blur Radius', 'fusion-builder' ),
'description' => esc_attr__( 'Set the blur radius of the text shadow. In pixels.', 'fusion-builder' ),
'param_name' => 'text_shadow_blur',
'value' => '0',
'min' => '0',
'max' => '100',
'step' => '1',
'group' => esc_html__( 'Design', 'fusion-builder' ),
'dependency' => [
[
'element' => 'text_shadow',
'value' => 'yes',
'operator' => '==',
],
],
'callback' => [],
],
[
'type' => 'colorpickeralpha',
'heading' => esc_attr__( 'Text Shadow Color', 'fusion-builder' ),
'description' => esc_attr__( 'Controls the color of the text shadow.', 'fusion-builder' ),
'param_name' => 'text_shadow_color',
'value' => '',
'group' => esc_html__( 'Design', 'fusion-builder' ),
'dependency' => [
[
'element' => 'text_shadow',
'value' => 'yes',
'operator' => '==',
],
],
'callback' => [],
],
];
foreach ( $params as $key => $param ) {
$tmp_args = $args;
// Prevent param being dependant on itself.
if ( isset( $args['dependency'] ) ) {
foreach ( $tmp_args['dependency'] as $k => $dep ) {
if ( $param['param_name'] === $dep['element'] ) {
unset( $tmp_args['dependency'][ $k ] );
}
}
}
$params[ $key ] = wp_parse_args( $tmp_args, $param );
}
return $params;
}
/**
* Get text-shadow styles.
*
* @since 2.2
* @access public
* @param array $params The text-shadow parameters.
* @return string
*/
public static function get_text_shadow_styles( $params ) {
$style = fusion_library()->sanitize->get_value_with_unit( $params['text_shadow_horizontal'] );
$style .= ' ' . fusion_library()->sanitize->get_value_with_unit( $params['text_shadow_vertical'] );
$style .= ' ' . fusion_library()->sanitize->get_value_with_unit( $params['text_shadow_blur'] );
$style .= ' ' . $params['text_shadow_color'];
$style .= ';';
return $style;
}
}
/**
* WooCommerce compatibility functions.
*
* @author ThemeFusion
* @copyright (c) Copyright by ThemeFusion
* @link https://theme-fusion.com
* @package Avada
* @subpackage Core
* @since 5.0.0
*/
if ( ! function_exists( 'fusion_wc_get_page_id' ) ) {
/**
* The woocommerce_get_page_id function was deprecated in WooCommerce 2.7.
* This is a proxy function to ensure Avada works with all WC versions.
*
* @param string $page The page we want to find.
* @return int The page ID.
*/
function fusion_wc_get_page_id( $page ) {
if ( function_exists( 'wc_get_page_id' ) ) {
return wc_get_page_id( $page );
} elseif ( function_exists( 'woocommerce_get_page_id' ) ) {
return woocommerce_get_page_id( $page );
}
}
}
if ( ! function_exists( 'fusion_wc_get_template' ) ) {
/**
* The woocommerce_get_template function was deprecated in WooCommerce 2.7.
* This is a proxy function to ensure Avada works with all WC versions.
*
* @param mixed $slug The template slug.
* @param string $name (default: '').
*/
function fusion_wc_get_template( $slug, $name = '' ) {
if ( function_exists( 'wc_get_template' ) ) {
wc_get_template( $slug, $name );
} elseif ( function_exists( 'woocommerce_get_template' ) ) {
woocommerce_get_template( $slug, $name );
}
}
}
if ( ! function_exists( 'fusion_wc_get_template_part' ) ) {
/**
* The woocommerce_get_template_part function was deprecated in WooCommerce 2.7.
* This is a proxy function to ensure Avada works with all WC versions.
*
* @param mixed $slug The template slug.
* @param string $name (default: '').
*/
function fusion_wc_get_template_part( $slug, $name = '' ) {
if ( function_exists( 'wc_get_template_part' ) ) {
wc_get_template_part( $slug, $name );
} elseif ( function_exists( 'woocommerce_get_template_part' ) ) {
woocommerce_get_template_part( $slug, $name );
}
}
}
if ( ! function_exists( 'fusion_get_product' ) ) {
/**
* The get_product function was deprecated in WooCommerce 2.7.
* This is a proxy function to ensure Avada works with all WC versions.
*
* @param mixed $the_product Post object or post ID of the product.
* @param array $args Previously used to pass arguments to the factory, e.g. to force a type.
* @return WC_Product|null
*/
function fusion_get_product( $the_product = false, $args = [] ) {
if ( function_exists( 'wc_get_product' ) ) {
return wc_get_product( $the_product, $args );
} elseif ( function_exists( 'get_product' ) ) {
return get_product( $the_product, $args );
}
}
}
/* Omit closing PHP tag to avoid "Headers already sent" issues. */
/**
* Days of the month.
*
* @package fusion-builder
*/
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
/**
* Adds Days of the month to predefined choices
*
* @param array $choices The predefined choices.
*/
function fusion_builder_predefined_days_of_the_month( $choices = [] ) {
$values = [];
for ( $x = 1; $x <= 31; $x++ ) {
$values[] = (string) $x;
}
$choices[] = [
'name' => __( 'Days of the Month', 'fusion-builder' ),
'values' => $values,
];
return $choices;
}
add_filter( 'fusion_predefined_choices', 'fusion_builder_predefined_days_of_the_month' );
import { Card } from '@elementor/app-ui';
import { SiteTemplateHeader } from './site-template-header';
import { SiteTemplateBody } from './site-template-body';
import { SiteTemplateFooter } from './site-template-footer';
import './site-template.scss';
export default function SiteTemplate( props ) {
const baseClassName = 'e-site-template',
classes = [ baseClassName ],
ref = React.useRef( null );
React.useEffect( () => {
if ( ! props.isSelected ) {
return;
}
ref.current.scrollIntoView( {
behavior: 'smooth',
block: 'start',
} );
}, [ props.isSelected ] );
if ( props.extended ) {
classes.push( `${ baseClassName }--extended` );
}
if ( props.aspectRatio ) {
classes.push( `${ baseClassName }--${ props.aspectRatio }` );
}
const CardFooter = props.extended && props.showInstances ? : '';
return (
{ CardFooter }
);
}
SiteTemplate.propTypes = {
aspectRatio: PropTypes.string,
className: PropTypes.string,
extended: PropTypes.bool,
id: PropTypes.number.isRequired,
isActive: PropTypes.bool.isRequired,
status: PropTypes.string,
thumbnail: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
isSelected: PropTypes.bool,
type: PropTypes.string.isRequired,
showInstances: PropTypes.bool,
};
SiteTemplate.defaultProps = {
isSelected: false,
};
// Hide paging when TTA collapses to accordion (except pageable)
// ==========================
@media (max-width: @vc_tta-breakpoint) {
.vc_tta-container {
.vc_tta:not([class*="vc_tta-pageable"]) {
.vc_pagination {
display: none;
}
}
}
}/**
* Add an element to fusion-builder.
*
* @package fusion-builder
* @since 1.0
*/
/**
* Map shortcode to Avada Builder.
*/
function fusion_element_slider_revolution() {
if ( ! defined( 'RS_PLUGIN_PATH' ) ) {
return;
}
fusion_builder_map(
[
'name' => esc_attr__( 'Slider Revolution', 'fusion-builder' ),
'shortcode' => 'rev_slider',
'icon' => 'fusiona-air',
'preview' => FUSION_BUILDER_PLUGIN_DIR . 'inc/templates/previews/fusion-revolution-slider-preview.php',
'preview_id' => 'fusion-builder-block-module-revolution-slider-preview-template',
'help_url' => 'https://theme-fusion.com/documentation/fusion-builder/elements/slider-revolution-element/',
'params' => [
[
'type' => 'select',
'heading' => esc_attr__( 'Select Slider', 'fusion-builder' ),
'description' => esc_attr__( 'Select a slider group.', 'fusion-builder' ),
'param_name' => 'alias',
'value' => fusion_builder_get_revslider_slides(),
],
],
]
);
}
add_action( 'fusion_builder_before_init', 'fusion_element_slider_revolution' );
/**
* Add an element to fusion-builder.
*
* @package fusion-builder
* @since 1.0
*/
if ( ! class_exists( 'FusionSC_Row' ) ) {
/**
* Shortcode class.
*
* @since 3.0
*/
class FusionSC_Row extends Fusion_Row_Element {
/**
* Constructor.
*
* @access public
* @since 3.0
*/
public function __construct() {
$shortcode = 'fusion_builder_row';
$shortcode_attr_id = 'row';
$classname = 'fusion-row';
$content_filter = 'fusion_element_row_content';
parent::__construct( $shortcode, $shortcode_attr_id, $classname, $content_filter );
}
}
}
new FusionSC_Row();
/**
* Map Row shortcode to Avada Builder
*/
function fusion_element_row() {
fusion_builder_map(
fusion_builder_frontend_data(
'FusionSC_Row',
[
'name' => esc_attr__( 'Row', 'fusion-builder' ),
'shortcode' => 'fusion_builder_row',
'hide_from_builder' => true,
]
)
);
}
add_action( 'fusion_builder_before_init', 'fusion_element_row' );
/**
* Add an element to fusion-builder.
*
* @package fusion-builder
* @since 1.0
*/
if ( fusion_is_element_enabled( 'fusion_social_links' ) ) {
if ( ! class_exists( 'FusionSC_SocialLinks' ) ) {
/**
* Shortcode class.
*
* @since 1.0
*/
class FusionSC_SocialLinks extends Fusion_Element {
/**
* An array of the shortcode arguments.
*
* @access protected
* @since 1.0
* @var array
*/
protected $args;
/**
* Constructor.
*
* @access public
* @since 1.0
*/
public function __construct() {
parent::__construct();
add_filter( 'fusion_attr_social-links-shortcode', [ $this, 'attr' ] );
add_filter( 'fusion_attr_social-links-shortcode-social-networks', [ $this, 'social_networks_attr' ] );
add_filter( 'fusion_attr_social-links-shortcode-icon', [ $this, 'icon_attr' ] );
add_shortcode( 'fusion_social_links', [ $this, 'render' ] );
}
/**
* Gets the default values.
*
* @static
* @access public
* @since 2.0.0
* @return array
*/
public static function get_element_defaults() {
$fusion_settings = fusion_get_fusion_settings();
return [
'hide_on_mobile' => fusion_builder_default_visibility( 'string' ),
'sticky_display' => '',
'class' => '',
'id' => '',
'font_size' => $fusion_settings->get( 'social_links_font_size' ),
'icons_boxed' => ( 1 == $fusion_settings->get( 'social_links_boxed' ) ) ? 'yes' : $fusion_settings->get( 'social_links_boxed' ), // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
'icons_boxed_radius' => fusion_library()->sanitize->size( $fusion_settings->get( 'social_links_boxed_radius' ) ),
'color_type' => $fusion_settings->get( 'social_links_color_type' ),
'icon_colors' => $fusion_settings->get( 'social_links_icon_color' ),
'box_colors' => $fusion_settings->get( 'social_links_box_color' ),
'icon_order' => '',
'show_custom' => 'no',
'alignment' => '',
'tooltip_placement' => strtolower( $fusion_settings->get( 'social_links_tooltip_placement' ) ),
'facebook' => '',
'tiktok' => '',
'twitch' => '',
'twitter' => '',
'instagram' => '',
'linkedin' => '',
'dribbble' => '',
'rss' => '',
'youtube' => '',
'pinterest' => '',
'flickr' => '',
'vimeo' => '',
'tumblr' => '',
'discord' => '',
'digg' => '',
'blogger' => '',
'skype' => '',
'myspace' => '',
'deviantart' => '',
'yahoo' => '',
'reddit' => '',
'forrst' => '',
'paypal' => '',
'dropbox' => '',
'soundcloud' => '',
'vk' => '',
'wechat' => '',
'whatsapp' => '',
'xing' => '',
'yelp' => '',
'spotify' => '',
'email' => '',
'phone' => '',
];
}
/**
* Maps settings to param variables.
*
* @static
* @access public
* @since 2.0.0
* @return array
*/
public static function settings_to_params() {
return [
'social_links_boxed' => [
'param' => 'icons_boxed',
'callback' => 'toYes',
],
'social_links_boxed_radius' => 'icons_boxed_radius',
'social_links_color_type' => 'color_type',
'social_links_icon_color' => 'icon_colors',
'social_links_box_color' => 'box_colors',
'social_links_font_size' => 'font_size',
'social_links_tooltip_placement' => [
'param' => 'tooltip_placement',
'callback' => 'toLowerCase',
],
];
}
/**
* Used to set any other variables for use on front-end editor template.
*
* @static
* @access public
* @since 2.0.0
* @return array
*/
public static function get_element_extras() {
$fusion_settings = fusion_get_fusion_settings();
return [
'linktarget' => $fusion_settings->get( 'social_icons_new' ),
'social_links_box_color' => $fusion_settings->get( 'social_links_box_color' ),
'social_links_icon_color' => $fusion_settings->get( 'social_links_icon_color' ),
'social_media_icons' => $fusion_settings->get( 'social_media_icons' ),
'boxed_padding' => $fusion_settings->get( 'social_links_boxed_padding' ),
];
}
/**
* Maps settings to extra variables.
*
* @static
* @access public
* @since 2.0.0
* @return array
*/
public static function settings_to_extras() {
return [
'social_icons_new' => 'linktarget',
'social_links_box_color' => 'social_links_box_color',
'social_links_icon_color' => 'social_links_icon_color',
'social_media_icons' => 'social_media_icons',
];
}
/**
* Render the shortcode
*
* @access public
* @since 1.0
* @param array $args Shortcode parameters.
* @param string $content Content between shortcode.
* @return string HTML output.
*/
public function render( $args, $content = '' ) {
global $fusion_settings;
$defaults = FusionBuilder::set_shortcode_defaults( self::get_element_defaults(), $args, 'fusion_social_links' );
$content = apply_filters( 'fusion_shortcode_content', $content, 'fusion_social_links', $args );
foreach ( $args as $key => $arg ) {
if ( false !== strpos( $key, 'custom_' ) ) {
$defaults[ $key ] = $arg;
}
}
$defaults['icons_boxed_radius'] = FusionBuilder::validate_shortcode_attr_value( $defaults['icons_boxed_radius'], 'px' );
$defaults['font_size'] = FusionBuilder::validate_shortcode_attr_value( $defaults['font_size'], 'px' );
extract( $defaults );
$this->args = $defaults;
if ( empty( $defaults['color_type'] ) ) {
$defaults['box_colors'] = $fusion_settings->get( 'social_links_box_color' );
$defaults['icon_colors'] = $fusion_settings->get( 'social_links_icon_color' );
}
$social_networks = fusion_builder_get_social_networks( $defaults );
$social_networks = fusion_builder_sort_social_networks( $social_networks );
$icons = fusion_builder_build_social_links( $social_networks, 'social-links-shortcode-icon', $defaults );
$html = '
';
$html .= '
';
$html .= '
';
$html .= $icons;
$html .= '
';
$html .= '
';
$html .= '
';
if ( $alignment && ! fusion_element_rendering_is_flex() ) {
$html = '' . $html . '
';
}
$this->on_render();
return apply_filters( 'fusion_element_social_links_content', $html, $args );
}
/**
* Builds the attributes array.
*
* @access public
* @since 1.0
* @return array
*/
public function attr() {
$attr = fusion_builder_visibility_atts(
$this->args['hide_on_mobile'],
[
'class' => 'fusion-social-links',
]
);
$attr['class'] .= Fusion_Builder_Sticky_Visibility_Helper::get_sticky_class( $this->args['sticky_display'] );
if ( fusion_element_rendering_is_flex() && $this->args['alignment'] ) {
$attr['style'] = 'text-align:' . $this->args['alignment'];
}
if ( $this->args['class'] ) {
$attr['class'] .= ' ' . $this->args['class'];
}
if ( $this->args['id'] ) {
$attr['id'] = $this->args['id'];
}
return $attr;
}
/**
* Builds the social-networks attributes array.
*
* @access public
* @since 1.0
* @return array
*/
public function social_networks_attr() {
$attr = [
'class' => 'fusion-social-networks',
];
if ( 'yes' === $this->args['icons_boxed'] ) {
$attr['class'] .= ' boxed-icons';
}
return $attr;
}
/**
* Builds the icon attributes array.
*
* @access public
* @since 1.0
* @param array $args The arguments array.
* @return array
*/
public function icon_attr( $args ) {
global $fusion_settings;
$attr = [
'class' => '',
'style' => '',
];
$tooltip = Fusion_Social_Icon::get_social_network_name( $args['social_network'] );
if ( '' === $args['social_network'] || 'custom_' === substr( $args['social_network'], 0, 7 ) ) {
$attr['class'] .= 'custom ';
$args['social_network'] = strtolower( str_replace( ' ', '-', $tooltip ) );
}
if ( 'none' !== strtolower( $this->args['tooltip_placement'] ) ) {
$attr['data-placement'] = strtolower( $this->args['tooltip_placement'] );
$attr['data-title'] = $tooltip;
$attr['data-toggle'] = 'tooltip';
}
$attr['title'] = $tooltip;
$attr['class'] .= 'fusion-social-network-icon fusion-tooltip fusion-' . $args['social_network'] . ' fusion-icon-' . $args['social_network'];
$attr['aria-label'] = $args['social_network'];
$link = $args['social_link'];
$attr['target'] = ( $fusion_settings->get( 'social_icons_new' ) ) ? '_blank' : '_self';
if ( '_blank' === $attr['target'] ) {
$attr['rel'] = 'noopener noreferrer';
}
if ( 'mail' === $args['social_network'] ) {
$link = $args['social_link'];
if ( 'http' !== substr( $args['social_link'], 0, 4 ) ) {
if ( apply_filters( 'fusion_disable_antispambot', false ) ) {
$link = 'mailto:' . str_replace( 'mailto:', '', $args['social_link'] );
} else {
$link = 'mailto:' . antispambot( str_replace( 'mailto:', '', $args['social_link'] ) );
}
}
}
if ( 'phone' === $args['social_network'] ) {
$link = 'tel:' . str_replace( 'tel:', '', $args['social_link'] );
$attr['target'] = '_self';
}
$attr['href'] = $link;
if ( $fusion_settings->get( 'nofollow_social_links' ) ) {
$attr['rel'] = ( isset( $attr['rel'] ) ) ? $attr['rel'] . ' nofollow' : 'nofollow';
}
if ( $args['icon_color'] ) {
$attr['style'] = 'color:' . $args['icon_color'] . ';';
}
if ( $this->args['font_size'] ) {
$attr['style'] .= 'font-size:' . $this->args['font_size'] . ';';
if ( 'yes' === $this->args['icons_boxed'] ) {
$attr['style'] .= 'width: calc(' . $this->args['font_size'] . ' + (2 * (' . $fusion_settings->get( 'social_links_boxed_padding' ) . ')) + 2px);';
}
}
if ( 'yes' === $this->args['icons_boxed'] && $args['box_color'] ) {
$attr['style'] .= 'background-color:' . $args['box_color'] . ';border-color:' . $args['box_color'] . ';';
}
if ( 'yes' === $this->args['icons_boxed'] && $this->args['icons_boxed_radius'] || '0' === $this->args['icons_boxed_radius'] ) {
if ( 'round' === $this->args['icons_boxed_radius'] ) {
$this->args['icons_boxed_radius'] = '50%';
}
$attr['style'] .= 'border-radius:' . $this->args['icons_boxed_radius'] . ';';
}
return $attr;
}
/**
* Adds settings to element options panel.
*
* @access public
* @since 1.1
* @return array $sections Social Links settings.
*/
public function add_options() {
global $fusion_settings;
return [
'social_links_shortcode_section' => [
'label' => esc_html__( 'Social Links Element', 'fusion-builder' ),
'description' => '',
'id' => 'social_links_shortcode_section',
'type' => 'accordion',
'icon' => 'fusiona-link',
'fields' => [
'social_links_info' => [
'id' => 'social_links_info',
'type' => 'custom',
'description' => '' . __( 'IMPORTANT NOTE: These social icon global options control both the social link element and person element.', 'fusion-builder' ) . '
',
],
'social_links_font_size' => [
'label' => esc_html__( 'Social Links Icons Font Size', 'fusion-builder' ),
'description' => esc_html__( 'Controls the font size for the social link icons.', 'fusion-builder' ),
'id' => 'social_links_font_size',
'default' => '16px',
'type' => 'dimension',
'css_vars' => [
[
'name' => '--social_links_font_size',
'element' => '.fusion-social-links',
],
],
],
'social_links_color_type' => [
'label' => esc_html__( 'Social Links Icon Color Type', 'fusion-builder' ),
'description' => esc_html__( 'Custom colors allow you to choose a color for icons and boxes. Brand colors will use the exact brand color of each network for the icons or boxes.', 'fusion-builder' ),
'id' => 'social_links_color_type',
'default' => 'custom',
'type' => 'radio-buttonset',
'transport' => 'postMessage',
'choices' => [
'custom' => esc_html__( 'Custom Colors', 'fusion-builder' ),
'brand' => esc_html__( 'Brand Colors', 'fusion-builder' ),
],
],
'social_links_icon_color' => [
'label' => esc_html__( 'Social Links Custom Icons Color', 'fusion-builder' ),
'description' => esc_html__( 'Controls the color of the custom icons.', 'fusion-builder' ),
'id' => 'social_links_icon_color',
'default' => '#9ea0a4',
'type' => 'color-alpha',
'transport' => 'postMessage',
'soft_dependency' => true,
],
'social_links_boxed' => [
'label' => esc_html__( 'Social Links Icons Boxed', 'fusion-builder' ),
'description' => esc_html__( 'Turn on to have the icon displayed in a small box. Turn off to have the icon displayed with no box.', 'fusion-builder' ),
'id' => 'social_links_boxed',
'default' => '0',
'type' => 'switch',
'transport' => 'postMessage',
],
'social_links_box_color' => [
'label' => esc_html__( 'Social Links Icons Custom Box Color', 'fusion-builder' ),
'description' => esc_html__( 'Select a custom social icon box color.', 'fusion-builder' ),
'id' => 'social_links_box_color',
'default' => '#f2f3f5',
'type' => 'color-alpha',
'transport' => 'postMessage',
'soft_dependency' => true,
],
'social_links_boxed_radius' => [
'label' => esc_html__( 'Social Links Icons Boxed Radius', 'fusion-builder' ),
'description' => esc_html__( 'Box radius for the social icons.', 'fusion-builder' ),
'id' => 'social_links_boxed_radius',
'default' => '4px',
'type' => 'dimension',
'choices' => [ 'px', 'em' ],
'transport' => 'postMessage',
'soft_dependency' => true,
],
'social_links_boxed_padding' => [
'label' => esc_html__( 'Social Links Icons Boxed Padding', 'fusion-builder' ),
'id' => 'social_links_boxed_padding',
'default' => '8px',
'type' => 'dimension',
'transport' => 'postMessage',
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--social_links_boxed_padding',
'element' => '.fusion-social-links',
],
],
],
'social_links_tooltip_placement' => [
'label' => esc_html__( 'Social Links Icons Tooltip Position', 'fusion-builder' ),
'description' => esc_html__( 'Controls the tooltip position of the social links icons.', 'fusion-builder' ),
'id' => 'social_links_tooltip_placement',
'default' => 'Top',
'type' => 'radio-buttonset',
'transport' => 'postMessage',
'choices' => [
'Top' => esc_html__( 'Top', 'fusion-builder' ),
'Right' => esc_html__( 'Right', 'fusion-builder' ),
'Bottom' => esc_html__( 'Bottom', 'fusion-builder' ),
'Left' => esc_html__( 'Left', 'fusion-builder' ),
'None' => esc_html__( 'None', 'fusion-builder' ),
],
],
],
],
];
}
/**
* Sets the necessary scripts.
*
* @access public
* @since 3.2
* @return void
*/
public function on_first_render() {
Fusion_Dynamic_JS::enqueue_script( 'fusion-tooltip' );
}
/**
* Load base CSS.
*
* @access public
* @since 3.0
* @return void
*/
public function add_css_files() {
FusionBuilder()->add_element_css( FUSION_BUILDER_PLUGIN_DIR . 'assets/css/shortcodes/social-links.min.css' );
}
}
}
new FusionSC_SocialLinks();
}
/**
* Map shortcode to Avada Builder.
*
* @since 1.0
*/
function fusion_element_social_links() {
$social_options = [
'name' => esc_attr__( 'Social Links', 'fusion-builder' ),
'shortcode' => 'fusion_social_links',
'icon' => 'fusiona-link',
'help_url' => 'https://theme-fusion.com/documentation/fusion-builder/elements/social-links-element/',
'params' => [
[
'type' => 'textfield',
'heading' => esc_attr__( 'Social Icons Font Size', 'fusion-builder' ),
'description' => esc_attr__( 'Controls the font size for the social icons. Enter value including CSS unit (px, em, rem), ex: 10px', 'fusion-builder' ),
'param_name' => 'font_size',
'value' => '',
'group' => esc_attr__( 'Design', 'fusion-builder' ),
],
[
'type' => 'radio_button_set',
'heading' => esc_attr__( 'Boxed Social Icons', 'fusion-builder' ),
'description' => esc_attr__( 'Choose to get boxed icons.', 'fusion-builder' ),
'param_name' => 'icons_boxed',
'value' => [
'' => esc_attr__( 'Default', 'fusion-builder' ),
'yes' => esc_attr__( 'Yes', 'fusion-builder' ),
'no' => esc_attr__( 'No', 'fusion-builder' ),
],
'default' => '',
'group' => esc_attr__( 'Design', 'fusion-builder' ),
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Social Icon Box Radius', 'fusion-builder' ),
'description' => esc_attr__( 'Choose the border radius of the boxed icons. In pixels (px), ex: 1px, or "round". ', 'fusion-builder' ),
'param_name' => 'icons_boxed_radius',
'value' => '',
'dependency' => [
[
'element' => 'icons_boxed',
'value' => 'no',
'operator' => '!=',
],
],
'group' => esc_attr__( 'Design', 'fusion-builder' ),
],
[
'type' => 'radio_button_set',
'heading' => esc_attr__( 'Social Icons Color Type', 'fusion-builder' ),
'description' => esc_attr__( 'Choose the color type of social icons. Brand colors will use the exact brand color of each network for the icons or boxes.', 'fusion-builder' ),
'param_name' => 'color_type',
'value' => [
'' => esc_attr__( 'Default', 'fusion-builder' ),
'custom' => esc_attr__( 'Custom Colors', 'fusion-builder' ),
'brand' => esc_attr__( 'Brand Colors', 'fusion-builder' ),
],
'default' => '',
'group' => esc_attr__( 'Design', 'fusion-builder' ),
],
[
'type' => 'textarea',
'heading' => esc_attr__( 'Social Icon Custom Colors', 'fusion-builder' ),
'description' => esc_attr__( 'Specify the color of social icons.', 'fusion-builder' ),
'param_name' => 'icon_colors',
'value' => '',
'dependency' => [
[
'element' => 'color_type',
'value' => 'brand',
'operator' => '!=',
],
],
'group' => esc_attr__( 'Design', 'fusion-builder' ),
],
[
'type' => 'textarea',
'heading' => esc_attr__( 'Social Icon Custom Box Colors', 'fusion-builder' ),
'description' => esc_attr__( 'Specify the box color of social icons.', 'fusion-builder' ),
'param_name' => 'box_colors',
'value' => '',
'dependency' => [
[
'element' => 'icons_boxed',
'value' => 'no',
'operator' => '!=',
],
[
'element' => 'color_type',
'value' => 'brand',
'operator' => '!=',
],
],
'group' => esc_attr__( 'Design', 'fusion-builder' ),
],
[
'type' => 'radio_button_set',
'heading' => esc_attr__( 'Social Icon Tooltip Position', 'fusion-builder' ),
'description' => esc_attr__( 'Choose the display position for tooltips.', 'fusion-builder' ),
'param_name' => 'tooltip_placement',
'value' => [
'' => esc_attr__( 'Default', 'fusion-builder' ),
'top' => esc_attr__( 'Top', 'fusion-builder' ),
'bottom' => esc_attr__( 'Bottom', 'fusion-builder' ),
'left' => esc_attr__( 'Left', 'fusion-builder' ),
'Right' => esc_attr__( 'Right', 'fusion-builder' ),
'none' => esc_html__( 'None', 'fusion-builder' ),
],
'default' => '',
'group' => esc_attr__( 'Design', 'fusion-builder' ),
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Blogger Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Blogger link.', 'fusion-builder' ),
'param_name' => 'blogger',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Deviantart Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Deviantart link.', 'fusion-builder' ),
'param_name' => 'deviantart',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Discord Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Discord link.', 'fusion-builder' ),
'param_name' => 'discord',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Digg Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Digg link.', 'fusion-builder' ),
'param_name' => 'digg',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Dribbble Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Dribbble link.', 'fusion-builder' ),
'param_name' => 'dribbble',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Dropbox Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Dropbox link.', 'fusion-builder' ),
'param_name' => 'dropbox',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Facebook Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Facebook link.', 'fusion-builder' ),
'param_name' => 'facebook',
'value' => '#',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Flickr Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Flickr link.', 'fusion-builder' ),
'param_name' => 'flickr',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Forrst Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Forrst link.', 'fusion-builder' ),
'param_name' => 'forrst',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Instagram Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Instagram link.', 'fusion-builder' ),
'param_name' => 'instagram',
'value' => '#',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'LinkedIn Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom LinkedIn link.', 'fusion-builder' ),
'param_name' => 'linkedin',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Myspace Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Myspace link.', 'fusion-builder' ),
'param_name' => 'myspace',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'PayPal Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom PayPal link.', 'fusion-builder' ),
'param_name' => 'paypal',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Pinterest Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Pinterest link.', 'fusion-builder' ),
'param_name' => 'pinterest',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Reddit Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Reddit link.', 'fusion-builder' ),
'param_name' => 'reddit',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'RSS Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom RSS link.', 'fusion-builder' ),
'param_name' => 'rss',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Skype Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Skype link.', 'fusion-builder' ),
'param_name' => 'skype',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'SoundCloud Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom SoundCloud link.', 'fusion-builder' ),
'param_name' => 'soundcloud',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Spotify Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Spotify link.', 'fusion-builder' ),
'param_name' => 'spotify',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Tiktok Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Tiktok link.', 'fusion-builder' ),
'param_name' => 'tiktok',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Tumblr Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Tumblr link.', 'fusion-builder' ),
'param_name' => 'tumblr',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Twitch Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Twitch link.', 'fusion-builder' ),
'param_name' => 'twitch',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Twitter Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Twitter link.', 'fusion-builder' ),
'param_name' => 'twitter',
'value' => '#',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Vimeo Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Vimeo link.', 'fusion-builder' ),
'param_name' => 'vimeo',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'VK Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom VK link.', 'fusion-builder' ),
'param_name' => 'vk',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'WeChat Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom WeChat link.', 'fusion-builder' ),
'param_name' => 'wechat',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'WhatsApp Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom WhatsApp link.', 'fusion-builder' ),
'param_name' => 'whatsapp',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Xing Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Xing link.', 'fusion-builder' ),
'param_name' => 'xing',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Yahoo Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Yahoo link.', 'fusion-builder' ),
'param_name' => 'yahoo',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Yelp Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Yelp link.', 'fusion-builder' ),
'param_name' => 'yelp',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Youtube Link', 'fusion-builder' ),
'description' => esc_attr__( 'Insert your custom Youtube link.', 'fusion-builder' ),
'param_name' => 'youtube',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Email Address', 'fusion-builder' ),
'description' => esc_attr__( 'Insert an email address to display the email icon.', 'fusion-builder' ),
'param_name' => 'email',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'textfield',
'heading' => esc_attr__( 'Phone Number', 'fusion-builder' ),
'description' => esc_attr__( 'Insert a phone number to display the phone icon.', 'fusion-builder' ),
'param_name' => 'phone',
'value' => '',
'dynamic_data' => true,
],
[
'type' => 'radio_button_set',
'heading' => esc_attr__( 'Show Custom Social Icon', 'fusion-builder' ),
'description' => esc_attr__( 'Show the custom social icon specified in Global Options.', 'fusion-builder' ),
'param_name' => 'show_custom',
'value' => [
'yes' => esc_attr__( 'Yes', 'fusion-builder' ),
'no' => esc_attr__( 'No', 'fusion-builder' ),
],
'default' => 'no',
],
],
];
$custom_social_networks = fusion_builder_get_custom_social_networks();
if ( is_array( $custom_social_networks ) ) {
$custom_networks = [];
foreach ( $custom_social_networks as $key => $custom_network ) {
$social_options['params'][] = [
'type' => 'textfield',
/* translators: The network-name. */
'heading' => sprintf( esc_attr__( '%s Link', 'fusion-builder' ), $custom_network['title'] ),
'description' => esc_attr__( 'Insert your custom social link.', 'fusion-builder' ),
'param_name' => 'custom_' . $key,
'value' => '',
'dependency' => [
[
'element' => 'show_custom',
'value' => 'yes',
'operator' => '==',
],
],
];
}
}
$social_options['params'][] = [
'type' => 'radio_button_set',
'heading' => esc_attr__( 'Alignment', 'fusion-builder' ),
'description' => esc_attr__( "Select the icon's alignment.", 'fusion-builder' ),
'param_name' => 'alignment',
'value' => [
'' => esc_attr__( 'Text Flow', 'fusion-builder' ),
'left' => esc_attr__( 'Left', 'fusion-builder' ),
'center' => esc_attr__( 'Center', 'fusion-builder' ),
'right' => esc_attr__( 'Right', 'fusion-builder' ),
],
'default' => '',
'group' => esc_attr__( 'Design', 'fusion-builder' ),
];
$social_options['params'][] = [
'type' => 'checkbox_button_set',
'heading' => esc_attr__( 'Element Visibility', 'fusion-builder' ),
'param_name' => 'hide_on_mobile',
'value' => fusion_builder_visibility_options( 'full' ),
'default' => fusion_builder_default_visibility( 'array' ),
'description' => esc_attr__( 'Choose to show or hide the element on small, medium or large screens. You can choose more than one at a time.', 'fusion-builder' ),
];
$social_options['params']['fusion_sticky_visibility_placeholder'] = [];
$social_options['params'][] = [
'type' => 'textfield',
'heading' => esc_attr__( 'CSS Class', 'fusion-builder' ),
'param_name' => 'class',
'value' => '',
'description' => esc_attr__( 'Add a class to the wrapping HTML element.', 'fusion-builder' ),
];
$social_options['params'][] = [
'type' => 'textfield',
'heading' => esc_attr__( 'CSS ID', 'fusion-builder' ),
'param_name' => 'id',
'value' => '',
'description' => esc_attr__( 'Add an ID to the wrapping HTML element.', 'fusion-builder' ),
];
fusion_builder_map( fusion_builder_frontend_data( 'FusionSC_SocialLinks', $social_options ) );
}
add_action( 'fusion_builder_before_init', 'fusion_element_social_links' );
/*! elementor - v3.14.0 - 26-06-2023 */
"use strict";
(self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["toggle"],{
/***/ "../assets/dev/js/frontend/handlers/base-tabs.js":
/*!*******************************************************!*\
!*** ../assets/dev/js/frontend/handlers/base-tabs.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
class baseTabs extends elementorModules.frontend.handlers.Base {
getDefaultSettings() {
return {
selectors: {
tablist: '[role="tablist"]',
tabTitle: '.elementor-tab-title',
tabContent: '.elementor-tab-content'
},
classes: {
active: 'elementor-active'
},
showTabFn: 'show',
hideTabFn: 'hide',
toggleSelf: true,
hidePrevious: true,
autoExpand: true,
keyDirection: {
ArrowLeft: elementorFrontendConfig.is_rtl ? 1 : -1,
ArrowUp: -1,
ArrowRight: elementorFrontendConfig.is_rtl ? -1 : 1,
ArrowDown: 1
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
$tabTitles: this.findElement(selectors.tabTitle),
$tabContents: this.findElement(selectors.tabContent)
};
}
activateDefaultTab() {
const settings = this.getSettings();
if (!settings.autoExpand || 'editor' === settings.autoExpand && !this.isEdit) {
return;
}
const defaultActiveTab = this.getEditSettings('activeItemIndex') || 1,
originalToggleMethods = {
showTabFn: settings.showTabFn,
hideTabFn: settings.hideTabFn
};
// Toggle tabs without animation to avoid jumping
this.setSettings({
showTabFn: 'show',
hideTabFn: 'hide'
});
this.changeActiveTab(defaultActiveTab);
// Return back original toggle effects
this.setSettings(originalToggleMethods);
}
handleKeyboardNavigation(event) {
const tab = event.currentTarget,
$tabList = jQuery(tab.closest(this.getSettings('selectors').tablist)),
// eslint-disable-next-line @wordpress/no-unused-vars-before-return
$tabs = $tabList.find(this.getSettings('selectors').tabTitle),
isVertical = 'vertical' === $tabList.attr('aria-orientation');
switch (event.key) {
case 'ArrowLeft':
case 'ArrowRight':
if (isVertical) {
return;
}
break;
case 'ArrowUp':
case 'ArrowDown':
if (!isVertical) {
return;
}
event.preventDefault();
break;
case 'Home':
event.preventDefault();
$tabs.first().trigger('focus');
return;
case 'End':
event.preventDefault();
$tabs.last().trigger('focus');
return;
default:
return;
}
const tabIndex = tab.getAttribute('data-tab') - 1,
direction = this.getSettings('keyDirection')[event.key],
nextTab = $tabs[tabIndex + direction];
if (nextTab) {
nextTab.focus();
} else if (-1 === tabIndex + direction) {
$tabs.last().trigger('focus');
} else {
$tabs.first().trigger('focus');
}
}
deactivateActiveTab(tabIndex) {
const settings = this.getSettings(),
activeClass = settings.classes.active,
activeFilter = tabIndex ? '[data-tab="' + tabIndex + '"]' : '.' + activeClass,
$activeTitle = this.elements.$tabTitles.filter(activeFilter),
$activeContent = this.elements.$tabContents.filter(activeFilter);
$activeTitle.add($activeContent).removeClass(activeClass);
$activeTitle.attr({
tabindex: '-1',
'aria-selected': 'false',
'aria-expanded': 'false'
});
$activeContent[settings.hideTabFn]();
$activeContent.attr('hidden', 'hidden');
}
activateTab(tabIndex) {
const settings = this.getSettings(),
activeClass = settings.classes.active,
$requestedTitle = this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]'),
$requestedContent = this.elements.$tabContents.filter('[data-tab="' + tabIndex + '"]'),
animationDuration = 'show' === settings.showTabFn ? 0 : 400;
$requestedTitle.add($requestedContent).addClass(activeClass);
$requestedTitle.attr({
tabindex: '0',
'aria-selected': 'true',
'aria-expanded': 'true'
});
$requestedContent[settings.showTabFn](animationDuration, () => elementorFrontend.elements.$window.trigger('elementor-pro/motion-fx/recalc'));
$requestedContent.removeAttr('hidden');
}
isActiveTab(tabIndex) {
return this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]').hasClass(this.getSettings('classes.active'));
}
bindEvents() {
this.elements.$tabTitles.on({
keydown: event => {
// Support for old markup that includes an `` tag in the tab
if (jQuery(event.target).is('a') && `Enter` === event.key) {
event.preventDefault();
}
// We listen to keydowon event for these keys in order to prevent undesired page scrolling
if (['End', 'Home', 'ArrowUp', 'ArrowDown'].includes(event.key)) {
this.handleKeyboardNavigation(event);
}
},
keyup: event => {
switch (event.code) {
case 'ArrowLeft':
case 'ArrowRight':
this.handleKeyboardNavigation(event);
break;
case 'Enter':
case 'Space':
event.preventDefault();
this.changeActiveTab(event.currentTarget.getAttribute('data-tab'));
break;
}
},
click: event => {
event.preventDefault();
this.changeActiveTab(event.currentTarget.getAttribute('data-tab'));
}
});
}
onInit() {
super.onInit(...arguments);
this.activateDefaultTab();
}
onEditSettingsChange(propertyName) {
if ('activeItemIndex' === propertyName) {
this.activateDefaultTab();
}
}
changeActiveTab(tabIndex) {
const isActiveTab = this.isActiveTab(tabIndex),
settings = this.getSettings();
if ((settings.toggleSelf || !isActiveTab) && settings.hidePrevious) {
this.deactivateActiveTab();
}
if (!settings.hidePrevious && isActiveTab) {
this.deactivateActiveTab(tabIndex);
}
if (!isActiveTab) {
this.activateTab(tabIndex);
}
}
}
exports["default"] = baseTabs;
/***/ }),
/***/ "../assets/dev/js/frontend/handlers/toggle.js":
/*!****************************************************!*\
!*** ../assets/dev/js/frontend/handlers/toggle.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _baseTabs = _interopRequireDefault(__webpack_require__(/*! ./base-tabs */ "../assets/dev/js/frontend/handlers/base-tabs.js"));
class Toggle extends _baseTabs.default {
getDefaultSettings() {
const defaultSettings = super.getDefaultSettings();
return {
...defaultSettings,
showTabFn: 'slideDown',
hideTabFn: 'slideUp',
hidePrevious: false,
autoExpand: 'editor'
};
}
}
exports["default"] = Toggle;
/***/ })
}]);
//# sourceMappingURL=toggle.29e5a34bb6e51dab4600.bundle.js.map(function ($) {
"use strict";
vc.atts.g5element_number_and_unit = {
init: function (param, $field) {
var $inputField = $field.find('.g5element_number_and_unit_field');
$field.find('.g5element-vc-number-and-unit-field').on('change',function(){
var value = '';
$field.find('.g5element-vc-number-and-unit-field').each(function(){
if (value === '') {
value += $(this).val();
} else {
value += $(this).val();
}
});
$inputField.val(value);
});
}
}
})(jQuery);
{{ option.name }}
/**
* Avada Options.
*
* @author ThemeFusion
* @copyright (c) Copyright by ThemeFusion
* @link https://theme-fusion.com
* @package Avada
* @subpackage Core
* @since 4.0.0
*/
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
/**
* Menu
*
* @param array $sections An array of our sections.
* @return array
*/
function avada_options_section_menu( $sections ) {
$option_name = Avada::get_option_name();
$settings = (array) get_option( $option_name );
if ( ! isset( $settings['header_position'] ) ) {
$settings['header_position'] = 'top';
}
if ( ! isset( $settings['side_header_break_point'] ) ) {
$settings['side_header_break_point'] = 800;
}
/* translators: value. */
$menu_height_hint = '';
// If we can get logo height and the logo margins are in pixels, then we can provide a hint.
if ( is_admin() ) {
$logo_data = Avada()->images->get_logo_data( 'logo' );
if ( isset( $logo_data['height'] ) && '' !== $logo_data['height'] && isset( $settings['logo_margin']['top'] ) && isset( $settings['logo_margin']['bottom'] ) ) {
$logo_top_margin = Fusion_Sanitize::size( $settings['logo_margin']['top'] );
$logo_bottom_margin = Fusion_Sanitize::size( $settings['logo_margin']['bottom'] );
if ( strpos( $logo_top_margin, 'px' ) && strpos( $logo_bottom_margin, 'px' ) ) {
$total_logo_height = intval( $logo_top_margin ) + intval( $logo_bottom_margin ) + intval( $logo_data['height'] );
/* translators: value. */
$menu_height_hint = '';
}
}
}
$menu_edit_link = '';
// Only needed in front end builder.
if ( function_exists( 'fusion_is_preview_frame' ) ) {
$menu_locations = get_nav_menu_locations();
$menu_edit_link = isset( $menu_locations['main_navigation'] ) ? admin_url( 'nav-menus.php?action=edit&menu=' . $menu_locations['main_navigation'] ) : admin_url( 'nav-menus.php' );
}
// Check if we have a global header override.
$has_global_header = false;
if ( class_exists( 'Fusion_Template_Builder' ) ) {
$default_layout = Fusion_Template_Builder::get_default_layout();
$has_global_header = isset( $default_layout['data']['template_terms'] ) && isset( $default_layout['data']['template_terms']['header'] ) && $default_layout['data']['template_terms']['header'];
}
$sections['menu'] = [
'label' => esc_html__( 'Menu', 'Avada' ),
'id' => 'heading_menu_section',
'priority' => 1,
'icon' => 'el-icon-lines',
'alt_icon' => 'fusiona-bars',
'fields' => [],
];
if ( $has_global_header ) {
$sections['menu']['fields']['menu_global_header_override_template_notice'] = [
'id' => 'menu_global_header_override_template_notice',
'label' => '',
'hidden' => ! $has_global_header,
'description' => sprintf(
/* translators: 1: Content|Footer|Page Title Bar. 2: URL. */
'' . __( '
IMPORTANT NOTE: The options on this tab are not available because a global %1$s override is currently used. To edit your global layout please visit
this page .', 'Avada' ) . '
',
Fusion_Template_Builder::get_instance()->get_template_terms()['header']['label'],
admin_url( 'admin.php?page=avada-layouts' )
),
'type' => 'custom',
];
}
$fields = [
'heading_menu' => [
'label' => esc_html__( 'Main Menu', 'Avada' ),
'id' => 'heading_menu',
'priority' => 6,
'type' => 'sub-section',
'hidden' => $has_global_header,
'fields' => [
'nav_height' => [
'label' => esc_html__( 'Main Menu Height', 'Avada' ),
'description' => esc_html__( 'Controls the menu height.', 'Avada' ) . $menu_height_hint,
'id' => 'nav_height',
'default' => '94',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '300',
'step' => '1',
],
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--nav_height',
'element' => '.fusion-main-menu',
'value_pattern' => '$px',
],
],
'output' => [
// This is for the avadaHeaderVars.nav_height var.
[
'element' => 'helperElement',
'property' => 'bottom',
'js_callback' => [
'fusionGlobalScriptSet',
[
'globalVar' => 'avadaHeaderVars',
'id' => 'nav_height',
'trigger' => [ 'fusion-reinit-sticky-header' ],
],
],
'sanitize_callback' => '__return_empty_string',
],
],
'edit_shortcut' => [
'selector' => [ '.fusion-header', '#side-header .side-header-wrapper' ],
'shortcuts' => [
[
'aria_label' => esc_html__( 'Edit Main Menu', 'Avada' ),
'link' => $menu_edit_link,
'order' => 3,
],
],
],
],
'menu_highlight_style' => [
'label' => esc_html__( 'Main Menu Highlight Style', 'Avada' ),
'description' => __( 'Controls the highlight style for main menu links and also affects the look of menu dropdowns. Arrow style cannot work with a transparent header background. Bar highlights will display vertically on side header layouts. IMPORTANT: Arrow & Background style can require configuration of other options depending on desired effect.', 'Avada' ) . ' ' . esc_html__( 'See this post for more information', 'Avada' ) . ' .',
'id' => 'menu_highlight_style',
'default' => 'bar',
'choices' => [
'bar' => esc_html__( 'Top Bar', 'Avada' ),
'bottombar' => esc_html__( 'Bottom Bar', 'Avada' ),
'arrow' => esc_html__( 'Arrow', 'Avada' ),
'background' => esc_html__( 'Background', 'Avada' ),
'textcolor' => esc_html__( 'Color Only', 'Avada' ),
],
'type' => 'radio-buttonset',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'output' => [
// Change body class.
[
'element' => 'body',
'function' => 'attr',
'attr' => 'class',
'value_pattern' => 'avada-menu-highlight-style-$',
'remove_attrs' => [ 'avada-menu-highlight-style-bar', 'avada-menu-highlight-style-bottombar', 'avada-menu-highlight-style-arrow', 'avada-menu-highlight-style-background', 'avada-menu-highlight-style-textcolor' ],
],
// Change the avadaHeaderVars.nav_highlight_style var.
[
'element' => 'helperElement',
'property' => 'bottom',
'js_callback' => [
'fusionGlobalScriptSet',
[
'choice' => 'top',
'globalVar' => 'avadaHeaderVars',
'id' => 'nav_highlight_style',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
// Partial refresh for the header.
'partial_refresh' => [
'menu_highlight_style_header_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'menu_highlight_style_header_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'menu_highlight_style_header' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
],
'menu_highlight_background' => [
'label' => esc_html__( 'Main Menu Highlight Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of main menu highlight.', 'Avada' ),
'id' => 'menu_highlight_background',
'default' => '#65bc7b',
'type' => 'color-alpha',
'class' => 'fusion-gutter-and-or-and',
'required' => [
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'background',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'background',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--menu_highlight_background',
'callback' => [ 'sanitize_color' ],
],
],
],
'menu_arrow_size' => [
'label' => esc_html__( 'Main Menu Arrow Size', 'Avada' ),
'description' => esc_html__( 'Controls the width and height of the main menu arrow.', 'Avada' ),
'id' => 'menu_arrow_size',
'units' => false,
'default' => [
'width' => '23px',
'height' => '12px',
],
'type' => 'dimensions',
'class' => 'fusion-gutter-and-or-and',
'required' => [
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'arrow',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'arrow',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--menu_arrow_size-width',
'choice' => 'width',
],
[
'name' => '--menu_arrow_size-height',
'choice' => 'height',
],
[
'name' => '--menu_arrow_size-width-header_border_color_condition_5',
'choice' => 'width',
'callback' => [ 'header_border_color_condition_5', '' ],
],
],
],
'nav_highlight_border' => [
'label' => esc_html__( 'Main Menu Highlight Bar Size', 'Avada' ),
'description' => esc_html__( 'Controls the size of the menu highlight bar.', 'Avada' ),
'id' => 'nav_highlight_border',
'default' => '3',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '40',
'step' => '1',
],
'class' => 'fusion-gutter-and-or-and-or-and-or-and',
'required' => [
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'bar',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'bar',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'bottombar',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'bottombar',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--nav_highlight_border',
'value_pattern' => '$px',
'callback' => [ 'fallback_to_value', '0' ],
],
],
'output' => [
// Change the avadaHeaderVars.nav_height var.
[
'element' => 'helperElement',
'property' => 'bottom',
'js_callback' => [
'fusionGlobalScriptSet',
[
'choice' => 'top',
'globalVar' => 'avadaHeaderVars',
'id' => 'nav_highlight_border',
],
],
'sanitize_callback' => '__return_empty_string',
],
// Change the avadaHeaderVars.nav_height var.
[
'element' => 'helperElement',
'property' => 'bottom',
'js_callback' => [
'fusionGlobalScriptSet',
[
'choice' => 'top',
'globalVar' => 'avadaHeaderVars',
'id' => 'nav_height',
'trigger' => [ 'fusion-reinit-sticky-header' ],
'condition' => [ 'menu_highlight_style', '===', 'bar', '$', '0' ],
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'nav_padding' => [
'label' => esc_html__( 'Main Menu Item Padding', 'Avada' ),
'description' => esc_html__( 'Controls the right padding for menu text (left on RTL).', 'Avada' ),
'id' => 'nav_padding',
'default' => '48',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '200',
'step' => '1',
],
'required' => [
[
'setting' => 'header_position',
'operator' => '==',
'value' => 'top',
],
],
'css_vars' => [
[
'name' => '--nav_padding',
'value_pattern' => '$px',
],
[
'name' => '--nav_padding-no-zero',
'callback' => [
'conditional_return_value',
[
'value_pattern' => [ '$px', '' ],
'conditions' => [
[ 'nav_padding', '==', '0' ],
],
],
],
],
],
],
'mobile_nav_padding' => [
'label' => esc_html__( 'Main Menu Item Padding On Mobile', 'Avada' ),
'description' => esc_html__( 'Controls the right padding for menu text (left on RTL) when the normal desktop menu is used on mobile devices.', 'Avada' ),
'id' => 'mobile_nav_padding',
'default' => '25',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '200',
'step' => '1',
],
'required' => [
[
'setting' => 'header_position',
'operator' => '==',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--mobile_nav_padding',
'element' => '.fusion-main-menu',
'value_pattern' => '$px',
],
],
],
'megamenu_shadow' => [
'label' => esc_html__( 'Main Menu Drop Shadow', 'Avada' ),
'description' => esc_html__( 'Turn on to display a drop shadow on menu dropdowns.', 'Avada' ),
'id' => 'megamenu_shadow',
'default' => '1',
'type' => 'switch',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'true' ],
'element' => 'body',
'className' => 'avada-has-megamenu-shadow',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'main_menu_sub_menu_animation' => [
'label' => esc_html__( 'Main Menu Dropdown / Mega Menu Animation', 'Avada' ),
'description' => esc_html__( 'Controls the animation type for all sub-menus.', 'Avada' ),
'id' => 'main_menu_sub_menu_animation',
'type' => 'radio-buttonset',
'default' => 'fade',
'choices' => [
'fade' => esc_html__( 'Fade', 'Avada' ),
'slide' => esc_html__( 'Slide', 'Avada' ),
],
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
// Change body class.
[
'element' => 'body',
'function' => 'attr',
'attr' => 'class',
'value_pattern' => 'fusion-sub-menu-$',
'remove_attrs' => [ 'fusion-sub-menu-fade', 'fusion-sub-menu-slide' ],
],
],
'dropdown_menu_top_border_size' => [
'label' => esc_html__( 'Main Menu Dropdown Top Border Size', 'Avada' ),
'description' => esc_html__( 'Controls top border size of dropdown menus and mega menus.', 'Avada' ),
'id' => 'dropdown_menu_top_border_size',
'default' => '3',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '50',
'step' => '1',
],
'class' => 'fusion-gutter-and-or-and-or-and-or-and',
'required' => [
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'bar',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'bar',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'bottombar',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'menu_highlight_style',
'operator' => '==',
'value' => 'bottombar',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--dropdown_menu_top_border_size',
'value_pattern' => '$px',
],
],
],
'dropdown_menu_width' => [
'label' => esc_html__( 'Main Menu Dropdown Width', 'Avada' ),
'description' => esc_html__( 'Controls the width of the dropdown.', 'Avada' ),
'id' => 'dropdown_menu_width',
'default' => '200',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '500',
'step' => '1',
],
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--dropdown_menu_width',
'value_pattern' => '$px',
],
],
],
'mainmenu_dropdown_vertical_padding' => [
'label' => esc_html__( 'Main Menu Dropdown Item Padding', 'Avada' ),
'description' => esc_html__( 'Controls the top/bottom padding for dropdown menu items.', 'Avada' ),
'id' => 'mainmenu_dropdown_vertical_padding',
'default' => '12',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '50',
'step' => '1',
],
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--mainmenu_dropdown_vertical_padding',
'value_pattern' => '$px',
],
],
],
'mainmenu_dropdown_display_divider' => [
'label' => esc_html__( 'Main Menu Dropdown Divider', 'Avada' ),
'description' => esc_html__( 'Turn on to display a divider line on dropdown menu items.', 'Avada' ),
'id' => 'mainmenu_dropdown_display_divider',
'default' => '0',
'type' => 'switch',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'true' ],
'element' => 'body',
'className' => 'avada-has-mainmenu-dropdown-divider',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'menu_display_dropdown_indicator' => [
'label' => esc_html__( 'Main Menu Dropdown Indicator', 'Avada' ),
'description' => esc_html__( 'Turn on to display arrow indicators next to parent level menu items.', 'Avada' ),
'id' => 'menu_display_dropdown_indicator',
'default' => 'none',
'choices' => [
'parent' => esc_html__( 'Parent', 'Avada' ),
'parent_child' => esc_html__( 'Parent + Child', 'Avada' ),
'none' => esc_html__( 'None', 'Avada' ),
],
'type' => 'radio-buttonset',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
// Partial refresh for the header.
'partial_refresh' => [
'header_menu_display_dropdown_indicator_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'header_menu_display_dropdown_indicator_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'header_menu_display_dropdown_indicator' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
],
'main_nav_search_icon' => [
'label' => esc_html__( 'Main Menu Search Icon', 'Avada' ),
'description' => esc_html__( 'Turn on to display the search icon in the main menu.', 'Avada' ),
'id' => 'main_nav_search_icon',
'default' => '1',
'type' => 'switch',
// Partial refresh for the header.
'partial_refresh' => [
'header_main_nav_search_icon_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'header_main_nav_search_icon_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'header_main_nav_search_icon' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'true' ],
'element' => 'body',
'className' => 'avada-has-main-nav-search-icon',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'main_nav_search_layout' => [
'label' => esc_html__( 'Main Menu Search Layout', 'Avada' ),
'description' => esc_html__( 'Controls the layout of the search bar in the main menu.', 'Avada' ),
'id' => 'main_nav_search_layout',
'default' => 'overlay',
'choices' => [
'dropdown' => esc_html__( 'Drop-Down', 'Avada' ),
'overlay' => esc_html__( 'Menu Overlay', 'Avada' ),
],
'type' => 'radio-buttonset',
'required' => [
[
'setting' => 'main_nav_search_icon',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '==',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'partial_refresh' => [
'main_nav_search_layout_refresh' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ 'dropdown', 'overlay' ],
'element' => 'body',
'className' => [ 'fusion-main-menu-search-dropdown', 'fusion-main-menu-search-overlay' ],
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'main_nav_icon_circle' => [
'label' => esc_html__( 'Main Menu Icon Circle Borders', 'Avada' ),
'description' => esc_html__( 'Turn on to display a circle border on the cart and search icons.', 'Avada' ),
'id' => 'main_nav_icon_circle',
'default' => '0',
'type' => 'switch',
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'true' ],
'element' => 'body',
'className' => 'fusion-has-main-nav-icon-circle',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'main_nav_highlight_radius' => [
'label' => esc_html__( 'Menu Highlight Label Radius', 'Avada' ),
'description' => esc_html__( 'Controls the border radius of all your menu highlight labels.', 'Avada' ),
'id' => 'main_nav_highlight_radius',
'default' => '2px',
'type' => 'dimension',
'css_vars' => [
[
'name' => '--main_nav_highlight_radius',
'element' => '.fusion-menu-highlight-label',
],
],
],
'menu_sub_bg_color' => [
'label' => esc_html__( 'Main Menu Dropdown Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the main menu dropdown.', 'Avada' ),
'id' => 'menu_sub_bg_color',
'default' => '#ffffff',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--menu_sub_bg_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'menu_bg_hover_color' => [
'label' => esc_html__( 'Main Menu Dropdown Background Hover Color', 'Avada' ),
'description' => esc_html__( 'Controls the background hover color of the main menu dropdown.', 'Avada' ),
'id' => 'menu_bg_hover_color',
'default' => '#f9f9fb',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--menu_bg_hover_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'menu_sub_sep_color' => [
'label' => esc_html__( 'Main Menu Dropdown Separator Color', 'Avada' ),
'description' => esc_html__( 'Controls the color of the separators in the main menu dropdown.', 'Avada' ),
'id' => 'menu_sub_sep_color',
'default' => '#e2e2e2',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--menu_sub_sep_color',
'callback' => [ 'sanitize_color' ],
],
],
'output' => [
[
'element' => [ '.fusion-main-menu .fusion-main-menu-search .fusion-custom-menu-item-contents', '.fusion-main-menu .fusion-main-menu-cart .fusion-custom-menu-item-contents', '.fusion-main-menu .fusion-menu-login-box .fusion-custom-menu-item-contents' ],
'property' => 'border',
'js_callback' => [
'fusionReturnStringIfTransparent',
[
'transparent' => '0',
'opaque' => '',
],
],
'sanitize_callback' => [ 'Avada_Output_Callbacks', 'menu_sub_sep_color' ],
],
],
],
'menu_h45_bg_color' => [
'label' => esc_html__( 'Main Menu Background Color For Header 4 & 5', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the main menu when using header 4 or 5.', 'Avada' ),
'id' => 'menu_h45_bg_color',
'default' => '#ffffff',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_layout',
'operator' => '==',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '==',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--menu_h45_bg_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'main_menu_typography_info' => [
'label' => esc_html__( 'Main Menu Typography', 'Avada' ),
'description' => '',
'id' => 'main_menu_typography_info',
'type' => 'info',
],
'nav_typography' => [
'id' => 'nav_typography',
'label' => esc_html__( 'Menus Typography', 'Avada' ),
'description' => esc_html__( 'These settings control the typography for all main menu top-level items.', 'Avada' ),
'type' => 'typography',
'class' => 'avada-no-fontsize',
'choices' => [
'font-family' => true,
'font-weight' => true,
'font-size' => true,
'letter-spacing' => true,
'color' => true,
],
'default' => [
'font-family' => 'Open Sans',
'font-weight' => '400',
'font-size' => '14px',
'letter-spacing' => '0',
'color' => '#212934',
],
'css_vars' => [
[
'name' => '--nav_typography-font-family',
'choice' => 'font-family',
'callback' => [ 'combined_font_family', 'nav_typography' ],
],
[
'name' => '--nav_typography-font-weight',
'choice' => 'font-weight',
'callback' => [ 'font_weight_no_regular', '' ],
],
[
'name' => '--nav_typography-font-size',
'choice' => 'font-size',
],
[
'name' => '--nav_typography-font-style',
'choice' => 'font-style',
],
[
'name' => '--nav_typography-letter-spacing',
'choice' => 'letter-spacing',
'callback' => [ 'maybe_append_px', '' ],
],
[
'name' => '--nav_typography-color',
'choice' => 'color',
],
[
'name' => '--nav_typography-color-65a',
'choice' => 'color',
'callback' => [ 'color_alpha_set', .65 ],
],
[
'name' => '--nav_typography-color-35a',
'choice' => 'color',
'callback' => [ 'color_alpha_set', .35 ],
],
],
],
'menu_text_align' => [
'label' => esc_html__( 'Main Menu Text Align', 'Avada' ),
'description' => esc_html__( 'Controls the main menu text alignment for top headers 4-5 and side headers.', 'Avada' ),
'id' => 'menu_text_align',
'default' => 'center',
'choices' => [
'left' => esc_html__( 'Left', 'Avada' ),
'center' => esc_html__( 'Center', 'Avada' ),
'right' => esc_html__( 'Right', 'Avada' ),
],
'type' => 'radio-buttonset',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_layout',
'operator' => '==',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '==',
'value' => 'v5',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
],
'css_vars' => [
[
'name' => '--menu_text_align',
'element' => '.fusion-main-menu',
],
],
'output' => [
( class_exists( 'SitePress' ) ) ? [
'element' => [ '#side-header .fusion-main-menu .wpml-ls-item > a', '#side-header .fusion-main-menu .wpml-ls-item .menu-text' ],
'property' => 'justify-content',
'value_pattern' => ( is_rtl() ) ? 'flex-end' : 'flex-start',
'exclude' => [ 'right', 'center' ],
] : [],
( class_exists( 'SitePress' ) ) ? [
'element' => [ '#side-header .fusion-main-menu .wpml-ls-item > a', '#side-header .fusion-main-menu .wpml-ls-item .menu-text' ],
'property' => 'justify-content',
'value_pattern' => ( is_rtl() ) ? 'flex-start' : 'flex-end',
'exclude' => [ 'left', 'center' ],
] : [],
[
'element' => 'body',
'function' => 'attr',
'attr' => 'class',
'value_pattern' => 'menu-text-align-$',
'remove_attrs' => [ 'menu-text-align-left', 'menu-text-align-center', 'menu-text-align-right' ],
],
],
// Partial refresh for the header.
'partial_refresh' => [
'menu_text_align_header_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'menu_text_align_header_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'menu_text_align_header' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
],
'menu_hover_first_color' => [
'label' => esc_html__( 'Main Menu Font Hover/Active Color', 'Avada' ),
'description' => esc_html__( 'Controls the color for main menu text hover and active states, highlight bar and dropdown border.', 'Avada' ),
'id' => 'menu_hover_first_color',
'default' => '#65bc7b',
'type' => 'color-alpha',
'css_vars' => [
[
'name' => '--menu_hover_first_color',
'callback' => [ 'sanitize_color' ],
],
[
'name' => '--menu_hover_first_color-65a',
'callback' => [ 'color_alpha_set', '0.65' ],
],
],
],
'menu_sub_color' => [
'label' => esc_html__( 'Main Menu Dropdown Font Color', 'Avada' ),
'description' => esc_html__( 'Controls the color for main menu dropdown text.', 'Avada' ),
'id' => 'menu_sub_color',
'default' => '#212934',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--menu_sub_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'nav_dropdown_font_size' => [
'label' => esc_html__( 'Main Menu Dropdown Font Size', 'Avada' ),
'description' => esc_html__( 'Controls the font size for main menu dropdown text.', 'Avada' ),
'id' => 'nav_dropdown_font_size',
'default' => '14px',
'type' => 'dimension',
'choices' => [
'units' => [ 'px', 'em' ],
],
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
'css_vars' => [
[
'name' => '--nav_dropdown_font_size',
],
],
],
'side_nav_font_size' => [
'label' => esc_html__( 'Side Navigation Font Size', 'Avada' ),
'description' => esc_html__( 'Controls the font size for the menu text when using the side navigation page template.', 'Avada' ),
'id' => 'side_nav_font_size',
'default' => '16px',
'type' => 'dimension',
'choices' => [
'units' => [ 'px', 'em' ],
],
'css_vars' => [
[
'name' => '--side_nav_font_size',
'element' => '.side-nav',
],
],
],
],
],
'flyout_menu_subsection' => [
'label' => esc_html__( 'Flyout Menu', 'Avada' ),
'id' => 'flyout_menu_subsection',
'type' => 'sub-section',
'hidden' => $has_global_header,
'fields' => [
'flyout_menu_important_note_info' => ( '0' === Avada()->settings->get( 'dependencies_status' ) ) ? [] : [
'label' => '',
'description' => '' . __( 'IMPORTANT NOTE: Flyout Menu Options are only available when using Header Layout #6 or Mobile Flyout Menu. Your current setup does not utilize the flyout menu.', 'Avada' ) . '
',
'id' => 'flyout_menu_important_note_info',
'type' => 'custom',
'class' => 'fusion-gutter-and-or-and',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
],
],
'flyout_menu_icon_font_size' => [
'label' => esc_html__( 'Flyout Menu Icon Font Size', 'Avada' ),
'description' => esc_html__( 'Controls the font size for the flyout menu icons.', 'Avada' ),
'id' => 'flyout_menu_icon_font_size',
'default' => '20px',
'type' => 'dimension',
'class' => 'fusion-gutter-and-or',
'choices' => [
'units' => [ 'px', 'em' ],
],
'required' => [
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v6',
],
[
'setting' => 'header_position',
'operator' => '=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--flyout_menu_icon_font_size',
],
[
'name' => '--flyout_menu_icon_font_size_px',
'callback' => [ 'units_to_px' ],
],
],
],
'flyout_nav_icons_padding' => [
'label' => esc_html__( 'Flyout Menu Icon Padding', 'Avada' ),
'description' => esc_html__( 'Controls the right padding for flyout menu icons (left on RTL).', 'Avada' ),
'id' => 'flyout_nav_icons_padding',
'default' => '32',
'type' => 'slider',
'class' => 'fusion-gutter-and-or',
'choices' => [
'min' => '0',
'max' => '200',
'step' => '1',
],
'required' => [
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v6',
],
[
'setting' => 'header_position',
'operator' => '=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--flyout_nav_icons_padding',
'element' => '.fusion-flyout-menu-icons',
'value_pattern' => '$px',
],
],
],
'flyout_menu_icon_color' => [
'label' => esc_html__( 'Flyout Menu Icon Color', 'Avada' ),
'description' => esc_html__( 'Controls the color of the flyout menu icons.', 'Avada' ),
'id' => 'flyout_menu_icon_color',
'default' => '#212934',
'type' => 'color-alpha',
'class' => 'fusion-gutter-and-or',
'required' => [
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v6',
],
[
'setting' => 'header_position',
'operator' => '=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--flyout_menu_icon_color',
'element' => '.fusion-flyout-menu-icons',
'callback' => [ 'sanitize_color' ],
],
],
],
'flyout_menu_icon_hover_color' => [
'label' => esc_html__( 'Flyout Menu Icon Hover Color', 'Avada' ),
'description' => esc_html__( 'Controls the hover color of the flyout menu icons.', 'Avada' ),
'id' => 'flyout_menu_icon_hover_color',
'default' => '#65bc7b',
'type' => 'color-alpha',
'class' => 'fusion-gutter-and-or',
'required' => [
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v6',
],
[
'setting' => 'header_position',
'operator' => '=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--flyout_menu_icon_hover_color',
'element' => '.fusion-flyout-menu-icons',
'callback' => [ 'sanitize_color' ],
],
],
],
'flyout_menu_background_color' => [
'label' => esc_html__( 'Flyout Menu Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the flyout menu', 'Avada' ),
'id' => 'flyout_menu_background_color',
'default' => 'rgba(255,255,255,0.96)',
'type' => 'color-alpha',
'class' => 'fusion-gutter-and-or',
'required' => [
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v6',
],
[
'setting' => 'header_position',
'operator' => '=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--flyout_menu_background_color',
'element' => '.fusion-flyout-menu-bg',
'callback' => [ 'sanitize_color' ],
],
],
],
'flyout_menu_direction' => [
'label' => esc_html__( 'Flyout Menu Direction', 'Avada' ),
'description' => esc_html__( 'Controls the direction the flyout menu starts from.', 'Avada' ),
'id' => 'flyout_menu_direction',
'default' => 'fade',
'type' => 'select',
'class' => 'fusion-gutter-and-or',
'choices' => [
'fade' => esc_html__( 'Fade', 'Avada' ),
'left' => esc_html__( 'Left', 'Avada' ),
'right' => esc_html__( 'Right', 'Avada' ),
'bottom' => esc_html__( 'Bottom', 'Avada' ),
'top' => esc_html__( 'Top', 'Avada' ),
],
'required' => [
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v6',
],
[
'setting' => 'header_position',
'operator' => '=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '=',
'value' => 'flyout',
],
],
'output' => [
[
'element' => '.fusion-logo-alignment',
'function' => 'attr',
'attr' => 'class',
'value_pattern' => 'avada-flyout-menu-direction-$',
'remove_attrs' => [ 'avada-flyout-menu-direction-fade', 'avada-flyout-menu-direction-left', 'avada-flyout-menu-direction-right', 'avada-flyout-menu-direction-bottom', 'avada-flyout-menu-direction-top' ],
],
],
],
'flyout_menu_item_padding' => [
'label' => esc_html__( 'Flyout Menu Item Padding', 'Avada' ),
'description' => esc_html__( 'Controls the padding between flyout menu items.', 'Avada' ),
'id' => 'flyout_menu_item_padding',
'default' => '32',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '100',
'step' => '1',
],
'class' => 'fusion-gutter-and-or',
'required' => [
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v6',
],
[
'setting' => 'header_position',
'operator' => '=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--flyout_menu_item_padding',
'element' => '.fusion-flyout-menu',
'value_pattern' => '$px',
],
],
],
],
],
'heading_secondary_top_menu' => [
'label' => esc_html__( 'Secondary Top Menu', 'Avada' ),
'id' => 'heading_secondary_top_menu',
'priority' => 6,
'type' => 'sub-section',
'hidden' => $has_global_header,
'fields' => [
'no_secondary_menu_note' => ( '0' === Avada()->settings->get( 'dependencies_status' ) ) ? [] : [
'label' => '',
'description' => '' . __( 'IMPORTANT NOTE: Secondary Top Menu Options are only available when using Header Layouts #2-5. Your current Header Layout does not utilize the secondary top menu.', 'Avada' ) . '
',
'id' => 'no_secondary_menu_note',
'type' => 'custom',
'required' => [
[
'setting' => 'header_position',
'operator' => '==',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v5',
],
],
],
'topmenu_dropwdown_width' => [
'label' => esc_html__( 'Secondary Menu Dropdown Width', 'Avada' ),
'description' => esc_html__( 'Controls the width of the secondary menu dropdown.', 'Avada' ),
'id' => 'topmenu_dropwdown_width',
'default' => '200',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '500',
'step' => '1',
],
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--topmenu_dropwdown_width',
'element' => '.fusion-secondary-menu',
'value_pattern' => '$px',
],
],
],
'header_top_first_border_color' => [
'label' => esc_html__( 'Secondary Menu Divider Color', 'Avada' ),
'description' => esc_html__( 'Controls the divider color of the first level secondary menu.', 'Avada' ),
'id' => 'header_top_first_border_color',
'default' => 'rgba(0,0,0,0.06)',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--header_top_first_border_color',
'element' => '.fusion-secondary-menu',
'callback' => [ 'sanitize_color' ],
],
],
],
'header_top_sub_bg_color' => [
'label' => esc_html__( 'Secondary Menu Dropdown Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the secondary menu dropdown.', 'Avada' ),
'id' => 'header_top_sub_bg_color',
'default' => '#ffffff',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--header_top_sub_bg_color',
'element' => '.fusion-secondary-menu',
'callback' => [ 'sanitize_color' ],
],
],
],
'header_top_menu_bg_hover_color' => [
'label' => esc_html__( 'Secondary Menu Dropdown Background Hover Color', 'Avada' ),
'description' => esc_html__( 'Controls the background hover color of the secondary menu dropdown.', 'Avada' ),
'id' => 'header_top_menu_bg_hover_color',
'default' => '#f9f9fb',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--header_top_menu_bg_hover_color',
'element' => '.fusion-secondary-menu',
'callback' => [ 'sanitize_color' ],
],
],
],
'header_top_menu_sub_sep_color' => [
'label' => esc_html__( 'Secondary Menu Dropdown Separator Color', 'Avada' ),
'description' => esc_html__( 'Controls the color of the separators in the secondary menu dropdown.', 'Avada' ),
'id' => 'header_top_menu_sub_sep_color',
'default' => '#e2e2e2',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--header_top_menu_sub_sep_color',
'element' => '.fusion-secondary-menu',
'callback' => [ 'sanitize_color' ],
],
],
],
'secondary_menu_typography_info' => [
'label' => esc_html__( 'Secondary Top Menu Typography', 'Avada' ),
'id' => 'secondary_menu_typography_info',
'type' => 'info',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
],
'snav_font_size' => [
'label' => esc_html__( 'Secondary Menu Font Size', 'Avada' ),
'description' => esc_html__( 'Controls the font size for secondary menu text.', 'Avada' ),
'id' => 'snav_font_size',
'default' => '12px',
'type' => 'dimension',
'choices' => [
'units' => [ 'px', 'em' ],
],
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--snav_font_size',
],
],
],
'sec_menu_lh' => [
'label' => esc_html__( 'Secondary Menu Line Height', 'Avada' ),
'description' => esc_html__( 'Controls the line height for secondary menu.', 'Avada' ),
'id' => 'sec_menu_lh',
'default' => '48px',
'type' => 'dimension',
'choices' => [
'units' => [ 'px', 'em' ],
],
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--sec_menu_lh',
],
[
'name' => '--top-bar-height',
'element' => '.fusion-header',
'callback' => [
'conditional_return_value',
[
'value_pattern' => [ 'calc($ / 2)', '21.5px' ],
'conditions' => [
[ 'sec_menu_lh', '>', '43' ],
],
],
],
],
],
],
'snav_color' => [
'label' => esc_html__( 'Secondary Menu Font Color', 'Avada' ),
'description' => esc_html__( 'Controls the color for secondary menu text.', 'Avada' ),
'id' => 'snav_color',
'default' => '#ffffff',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--snav_color',
'element' => '.fusion-secondary-header',
'callback' => [ 'sanitize_color' ],
],
],
],
'header_top_menu_sub_color' => [
'label' => esc_html__( 'Secondary Menu Dropdown Font Color', 'Avada' ),
'description' => esc_html__( 'Controls the color for secondary menu dropdown text.', 'Avada' ),
'id' => 'header_top_menu_sub_color',
'default' => '#4a4e57',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--header_top_menu_sub_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'header_top_menu_sub_hover_color' => [
'label' => esc_html__( 'Secondary Menu Dropdown Font Hover Color', 'Avada' ),
'description' => esc_html__( 'Controls the hover color for secondary menu dropdown text.', 'Avada' ),
'id' => 'header_top_menu_sub_hover_color',
'default' => '#65bc7b',
'type' => 'color-alpha',
'class' => 'fusion-or-gutter',
'required' => [
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v2',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v3',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v4',
],
[
'setting' => 'header_layout',
'operator' => '=',
'value' => 'v5',
],
],
'css_vars' => [
[
'name' => '--header_top_menu_sub_hover_color',
'element' => '.fusion-secondary-menu',
'callback' => [ 'sanitize_color' ],
],
],
],
],
],
'heading_mobile_menu' => [
'label' => esc_html__( 'Mobile Menu', 'Avada' ),
'id' => 'heading_mobile_menu',
'priority' => 6,
'type' => 'sub-section',
'hidden' => $has_global_header,
'fields' => [
'no_responsive_mode_info_1' => ( '0' === Avada()->settings->get( 'dependencies_status' ) ) ? [] : [
'label' => '',
'description' => '' . __( 'IMPORTANT NOTE: Please enable responsive mode. Mobile menus are only available when you\'re using the responsive mode. To enable it please go to the "Responsive" section and set the "Responsive Design" option to ON.', 'Avada' ) . '
',
'id' => 'no_responsive_mode_info_1',
'type' => 'custom',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '0',
],
],
],
'no_mobile_menu_note' => ( '0' === Avada()->settings->get( 'dependencies_status' ) ) ? [] : [
'label' => '',
'description' => '' . __( 'IMPORTANT NOTE: Because of the design of your Header Layout #6, only a few options are available here. More options are available when using Header Layouts #1-5 or 7. The rest of the options for Header Layout #6 are on the Flyout Menu and Main Menu tab.', 'Avada' ) . '
',
'id' => 'no_mobile_menu_note',
'type' => 'custom',
'required' => [
[
'setting' => 'header_layout',
'operator' => '==',
'value' => 'v6',
],
[
'setting' => 'header_position',
'operator' => '==',
'value' => 'top',
],
],
],
'mobile_menu_design' => [
'label' => esc_html__( 'Mobile Menu Design Style', 'Avada' ),
'description' => esc_html__( 'Controls the design of the mobile menu. Flyout design style only allows parent level menu items.', 'Avada' ),
'id' => 'mobile_menu_design',
'default' => 'classic',
'type' => 'radio-buttonset',
'class' => 'fusion-gutter-and-or-and',
'choices' => [
'classic' => esc_html__( 'Classic', 'Avada' ),
'modern' => esc_html__( 'Modern', 'Avada' ),
'flyout' => esc_html__( 'Flyout', 'Avada' ),
],
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
],
'output' => [
[
'element' => 'body',
'function' => 'attr',
'attr' => 'class',
'value_pattern' => 'mobile-menu-design-$',
'remove_attrs' => [ 'mobile-menu-design-classic', 'mobile-menu-design-modern', 'mobile-menu-design-flyout' ],
'sanitize_callback' => '__return_empty_string',
],
],
// Partial refresh for the header.
'partial_refresh' => [
'mobile_menu_design_header_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'mobile_menu_design_header_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'mobile_menu_design_header' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
],
'mobile_menu_icons_top_margin' => [
'label' => esc_html__( 'Mobile Menu Icons Top Margin', 'Avada' ),
'description' => esc_html__( 'Controls the top margin for the icons in the modern and flyout mobile menu design.', 'Avada' ),
'id' => 'mobile_menu_icons_top_margin',
'default' => '2',
'type' => 'slider',
'class' => 'fusion-gutter-and-and-or-and-and',
'choices' => [
'min' => '0',
'max' => '200',
'step' => '1',
],
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'classic',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'classic',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
],
'css_vars' => [
[
'name' => '--mobile_menu_icons_top_margin',
'value_pattern' => '$px',
],
],
],
'mobile_menu_nav_height' => [
'label' => esc_html__( 'Mobile Menu Dropdown Item Height', 'Avada' ),
'description' => esc_html__( 'Controls the height of each dropdown menu item.', 'Avada' ),
'id' => 'mobile_menu_nav_height',
'default' => '42',
'type' => 'slider',
'class' => 'fusion-gutter-and-and-or-and-and',
'choices' => [
'min' => '0',
'max' => '200',
'step' => '1',
],
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--mobile_menu_nav_height',
'value_pattern' => '$px',
],
],
],
'mobile_nav_submenu_slideout' => [
'label' => esc_html__( 'Mobile Menu Dropdown Slide Outs', 'Avada' ),
'description' => esc_html__( 'Turn on to allow dropdown sections to slide out when tapped.', 'Avada' ),
'id' => 'mobile_nav_submenu_slideout',
'default' => '1',
'type' => 'switch',
'class' => 'fusion-gutter-and-and-or-and-and',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
],
'output' => [
// This is for the avadaMenuVars.submenu_slideout var.
[
'element' => 'helperElement',
'property' => 'bottom',
'js_callback' => [
'fusionGlobalScriptSet',
[
'globalVar' => 'avadaMenuVars',
'id' => 'submenu_slideout',
'trigger' => [ 'fusionMobileMenu' ],
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'mobile_menu_search' => [
'label' => esc_html__( 'Display Mobile Menu Search Icon/Field', 'Avada' ),
'description' => esc_html__( 'Turn on to display the search icon/field in the mobile menu.', 'Avada' ),
'id' => 'mobile_menu_search',
'default' => '1',
'type' => 'switch',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
],
// Partial refresh for the header.
'partial_refresh' => [
'mobile_menu_search_header_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'mobile_menu_search_header_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'mobile_menu_search_header' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
],
'mobile_menu_submenu_indicator' => [
'label' => esc_html__( 'Mobile Menu Sub-Menu Indicator', 'Avada' ),
'description' => esc_html__( 'Turn on to display the mobile menu sub-menu indicator: "-".', 'Avada' ),
'id' => 'mobile_menu_submenu_indicator',
'default' => '1',
'type' => 'switch',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
],
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'false' ],
'element' => '.fusion-mobile-nav-holder',
'className' => 'fusion-mobile-menu-indicator-hide',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'mobile_header_bg_color' => [
'label' => esc_html__( 'Mobile Header Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the header on mobile devices.', 'Avada' ),
'id' => 'mobile_header_bg_color',
'default' => '#ffffff',
'type' => 'color-alpha',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
],
'css_vars' => [
[
'name' => '--mobile_header_bg_color',
'callback' => [ 'sanitize_color' ],
],
],
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'not-opaque' ],
'element' => 'html',
'className' => 'avada-mobile-header-color-not-opaque',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
'update_callback' => [
[
'condition' => 'is_archive',
'operator' => '===',
'value' => false,
],
],
],
'mobile_archive_header_bg_color' => [
'label' => esc_html__( 'Mobile Archive Header Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the archive page header on mobile devices.', 'Avada' ),
'id' => 'mobile_archive_header_bg_color',
'type' => 'color-alpha',
'default' => '#ffffff',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
],
'css_vars' => [
[
'name' => '--mobile_header_bg_color',
'callback' => [ 'sanitize_color' ],
],
],
'update_callback' => [
[
'condition' => 'is_archive',
'operator' => '===',
'value' => true,
],
],
],
'mobile_menu_background_color' => [
'label' => esc_html__( 'Mobile Menu Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the mobile menu dropdown and classic mobile menu box.', 'Avada' ),
'id' => 'mobile_menu_background_color',
'default' => '#ffffff',
'type' => 'color-alpha',
'class' => 'fusion-gutter-and-and-or-and-and',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--mobile_menu_background_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'mobile_menu_hover_color' => [
'label' => esc_html__( 'Mobile Menu Background Hover Color', 'Avada' ),
'description' => esc_html__( 'Controls the background hover color of the mobile menu dropdown.', 'Avada' ),
'id' => 'mobile_menu_hover_color',
'default' => '#f9f9fb',
'type' => 'color-alpha',
'class' => 'fusion-gutter-and-and-or-and-and',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--mobile_menu_hover_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'mobile_menu_border_color' => [
'label' => esc_html__( 'Mobile Menu Border Color', 'Avada' ),
'description' => esc_html__( 'Controls the border and divider colors of the mobile menu dropdown and classic mobile menu box.', 'Avada' ),
'id' => 'mobile_menu_border_color',
'default' => '#e2e2e2',
'type' => 'color-alpha',
'class' => 'fusion-gutter-and-and-or-and-and',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--mobile_menu_border_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'mobile_menu_toggle_color' => [
'label' => esc_html__( 'Mobile Menu Toggle Color', 'Avada' ),
'description' => esc_html__( 'Controls the color of the mobile menu toggle icon.', 'Avada' ),
'id' => 'mobile_menu_toggle_color',
'default' => '#9ea0a4',
'type' => 'color-alpha',
'class' => 'fusion-gutter-and-and-or-and-and',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
],
'css_vars' => [
[
'name' => '--mobile_menu_toggle_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'mobile_menu_typography_info' => [
'label' => esc_html__( 'Mobile Menu Typography', 'Avada' ),
'description' => '',
'id' => 'mobile_menu_typography_info',
'type' => 'info',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
],
],
'mobile_menu_typography' => [
'id' => 'mobile_menu_typography',
'label' => esc_html__( 'Mobile Menu Typography', 'Avada' ),
'description' => esc_html__( 'These settings control the typography for mobile menu.', 'Avada' ),
'type' => 'typography',
'class' => 'fusion-gutter-and-or-and',
'choices' => [
'font-family' => true,
'font-size' => true,
'font-weight' => true,
'line-height' => true,
'letter-spacing' => true,
'color' => true,
],
'default' => [
'font-family' => 'Open Sans',
'font-size' => '12px',
'font-weight' => '400',
'line-height' => '42px',
'letter-spacing' => '0',
'color' => '#4a4e57',
],
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
],
'css_vars' => [
[
'name' => '--mobile_menu_typography-font-family',
'choice' => 'font-family',
'callback' => [ 'combined_font_family', 'mobile_menu_typography' ],
],
[
'name' => '--mobile_menu_typography-font-size',
'choice' => 'font-size',
],
[
'name' => '--mobile_menu_typography-font-weight',
'choice' => 'font-weight',
'callback' => [ 'font_weight_no_regular', '' ],
],
[
'name' => '--mobile_menu_typography-line-height',
'choice' => 'line-height',
],
[
'name' => '--mobile_menu_typography-letter-spacing',
'choice' => 'letter-spacing',
'callback' => [ 'maybe_append_px', '' ],
],
[
'name' => '--mobile_menu_typography-color',
'choice' => 'color',
],
[
'name' => '--mobile_menu_typography-font-style',
'choice' => 'font-style',
],
[
'name' => '--mobile_menu_typography-font-weight',
'choice' => 'font-weight',
],
[
'name' => '--mobile_menu_typography-font-size-30-or-24px',
'choice' => 'font-size',
'callback' => [
'conditional_return_value',
[
'value_pattern' => [ '30px', '24px' ],
'conditions' => [
[ 'mobile_menu_typography[font-size]', '>', '35' ],
],
],
],
],
[
'name' => '--mobile_menu_typography-font-size-open-submenu',
'choice' => 'font-size',
'callback' => [
'conditional_return_value',
[
'value_pattern' => [ '20px', 'var(--mobile_menu_typography-font-size, 13px)' ],
'conditions' => [
[ 'mobile_menu_typography[font-size]', '>', '30' ],
],
],
],
],
],
],
'mobile_menu_font_hover_color' => [
'label' => esc_html__( 'Mobile Menu Hover Color', 'Avada' ),
'description' => esc_html__( 'Controls the hover color of the mobile menu item. Also, used to highlight current mobile menu item.', 'Avada' ),
'id' => 'mobile_menu_font_hover_color',
'default' => '#212934',
'type' => 'color-alpha',
'class' => 'fusion-gutter-and-or-and',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
],
'css_vars' => [
[
'name' => '--mobile_menu_font_hover_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'mobile_menu_text_align' => [
'label' => esc_html__( 'Mobile Menu Text Align', 'Avada' ),
'description' => esc_html__( 'Controls the mobile menu text alignment.', 'Avada' ),
'id' => 'mobile_menu_text_align',
'default' => 'left',
'choices' => [
'left' => esc_html__( 'Left', 'Avada' ),
'center' => esc_html__( 'Center', 'Avada' ),
'right' => esc_html__( 'Right', 'Avada' ),
],
'type' => 'radio-buttonset',
'class' => 'fusion-gutter-and-and-or-and-and',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_position',
'operator' => '!=',
'value' => 'top',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'mobile_menu_design',
'operator' => '!=',
'value' => 'flyout',
],
],
'output' => [
( class_exists( 'SitePress' ) ) ? [
'element' => [ '.fusion-mobile-nav-holder .wpml-ls-item .menu-text', '.wpml-ls-item .menu-text, .wpml-ls-item .sub-menu a > span', '.fusion-mobile-nav-holder .wpml-ls-item > a' ],
'property' => 'justify-content',
'value_pattern' => 'center',
'exclude' => [ 'left', 'right' ],
'media_query' => 'fusion-max-sh-shbp',
] : [],
( class_exists( 'SitePress' ) ) ? [
'element' => [ '.fusion-mobile-nav-holder .wpml-ls-item .menu-text', '.wpml-ls-item .menu-text, .wpml-ls-item .sub-menu a > span', '.fusion-mobile-nav-holder .wpml-ls-item > a' ],
'property' => 'justify-content',
'value_pattern' => ( is_rtl() ) ? 'flex-end' : 'flex-start',
'exclude' => [ 'center', 'right' ],
'media_query' => 'fusion-max-sh-shbp',
] : [],
( class_exists( 'SitePress' ) ) ? [
'element' => [ '.fusion-mobile-nav-holder .wpml-ls-item .menu-text', '.wpml-ls-item .menu-text, .wpml-ls-item .sub-menu a > span', '.fusion-mobile-nav-holder .wpml-ls-item > a' ],
'property' => 'justify-content',
'value_pattern' => ( is_rtl() ) ? 'flex-start' : 'flex-end',
'exclude' => [ 'left', 'center' ],
'media_query' => 'fusion-max-sh-shbp',
] : [],
[
'element' => 'nav.fusion-mobile-nav-holder',
'function' => 'attr',
'attr' => 'class',
'value_pattern' => 'fusion-mobile-menu-text-align-$',
'remove_attrs' => [ 'fusion-mobile-menu-text-align-left', 'fusion-mobile-menu-text-align-center', 'fusion-mobile-menu-text-align-right' ],
'callback' => [
'conditional_return_value',
[
'conditions' => [
[ 'mobile_menu_design', '!==', 'flyout' ],
],
],
],
],
],
],
],
],
'mega_menu_subsection' => [
'label' => esc_html__( 'Mega Menu', 'Avada' ),
'id' => 'mega_menu_subsection',
'type' => 'sub-section',
'fields' => [
'header_v6_used_note' => ( '0' === Avada()->settings->get( 'dependencies_status' ) ) ? [] : [
'label' => '',
'description' => '' . __( 'IMPORTANT NOTE: Mega Menu Options are only available when using Header Layouts #1-5. Your current Header Layout #6 does not utilize the mega menu.', 'Avada' ) . '
',
'id' => 'header_v6_used_note',
'type' => 'custom',
'required' => [
[
'setting' => 'header_layout',
'operator' => '==',
'value' => 'v6',
],
],
],
'megamenu_disabled_note' => ( '0' === Avada()->settings->get( 'dependencies_status' ) ) ? [] : [
'label' => '',
'description' => '' . __( 'IMPORTANT NOTE: Mega Menu is disabled in Advanced > Theme Features section. Please enable it to see the options.', 'Avada' ) . '
',
'id' => 'megamenu_disabled_note',
'type' => 'custom',
'required' => [
[
'setting' => 'disable_megamenu',
'operator' => '=',
'value' => '0',
],
],
],
'megamenu_width' => [
'label' => esc_html__( 'Mega Menu Wrapper Max Width', 'Avada' ),
'description' => esc_html__( 'Controls the max width of the mega menu. On boxed side header layouts, "Viewport Width" will match "Site Width".', 'Avada' ),
'id' => 'megamenu_width',
'type' => 'radio-buttonset',
'default' => 'site_width',
'choices' => [
'site_width' => esc_html__( 'Site Width', 'Avada' ),
'viewport_width' => esc_html__( '100% Width', 'Avada' ),
'custom_width' => esc_html__( 'Custom Width', 'Avada' ),
],
'required' => [
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'disable_megamenu',
'operator' => '=',
'value' => '1',
],
],
'output' => [
// This is for the avadaMenuVars.megamenu_base_width var.
[
'element' => 'helperElement',
'property' => 'bottom',
'js_callback' => [
'fusionGlobalScriptSet',
[
'globalVar' => 'avadaMenuVars',
'id' => 'megamenu_base_width',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
// See https://github.com/Theme-Fusion/Fusion-Builder/issues/4785.
'transport' => 'refresh',
// Partial refresh for the header.
'partial_refresh' => [
'megamenu_width_header_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'megamenu_width_header_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'mmegamenu_width_header' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
],
'megamenu_max_width' => [
'label' => esc_html__( 'Mega Menu Max-Width', 'Avada' ),
'description' => esc_html__( 'Controls the max width of the mega menu.', 'Avada' ),
'id' => 'megamenu_max_width',
'default' => '1200',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '4096',
'step' => '1',
],
'required' => [
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'disable_megamenu',
'operator' => '=',
'value' => '1',
],
[
'setting' => 'megamenu_width',
'operator' => '=',
'value' => 'custom_width',
],
],
// Partial refresh for the header.
'partial_refresh' => [
'megamenu_max_width_header_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'megamenu_max_width_header_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'megamenu_max_width_header' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
],
'megamenu_interior_content_width' => [
'label' => esc_html__( 'Mega Menu Interior Content Width', 'Avada' ),
'description' => esc_html__( 'For full width mega menus select if the interior menu content is contained to site width or 100% width.', 'Avada' ),
'id' => 'megamenu_interior_content_width',
'type' => 'radio-buttonset',
'default' => 'viewport_width',
'choices' => [
'site_width' => esc_html__( 'Site Width', 'Avada' ),
'viewport_width' => esc_html__( '100% Width', 'Avada' ),
],
'required' => [
[
'setting' => 'header_position',
'operator' => '=',
'value' => 'top',
],
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'disable_megamenu',
'operator' => '=',
'value' => '1',
],
[
'setting' => 'megamenu_width',
'operator' => '=',
'value' => 'viewport_width',
],
],
// Partial refresh for the header.
'partial_refresh' => [
'megamenu_width_header_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'megamenu_width_header_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'mmegamenu_width_header' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
],
'megamenu_title_size' => [
'label' => esc_html__( 'Mega Menu Column Title Size', 'Avada' ),
'description' => esc_html__( 'Controls the font size for mega menu column titles.', 'Avada' ),
'id' => 'megamenu_title_size',
'default' => '18px',
'hidden' => $has_global_header,
'type' => 'dimension',
'required' => [
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'disable_megamenu',
'operator' => '=',
'value' => '1',
],
],
'css_vars' => [
[
'name' => '--megamenu_title_size',
'element' => '.fusion-megamenu-title',
],
],
],
'megamenu_item_vertical_padding' => [
'label' => esc_html__( 'Mega Menu Dropdown Item Padding', 'Avada' ),
'description' => esc_html__( 'Controls the top/bottom padding for mega menu dropdown items.', 'Avada' ),
'id' => 'megamenu_item_vertical_padding',
'default' => '7',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '50',
'step' => '1',
],
'required' => [
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'disable_megamenu',
'operator' => '=',
'value' => '1',
],
],
'css_vars' => [
[
'name' => '--megamenu_item_vertical_padding',
'element' => '.fusion-megamenu-submenu',
'value_pattern' => '$px',
],
],
],
'megamenu_item_display_divider' => [
'label' => esc_html__( 'Mega Menu Item Divider', 'Avada' ),
'description' => esc_html__( 'Turn on to display a divider between mega menu dropdown items.', 'Avada' ),
'id' => 'megamenu_item_display_divider',
'default' => '0',
'type' => 'switch',
'required' => [
[
'setting' => 'header_layout',
'operator' => '!=',
'value' => 'v6',
],
[
'setting' => 'disable_megamenu',
'operator' => '=',
'value' => '1',
],
],
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'true' ],
'element' => 'body',
'className' => 'avada-has-megamenu-item-divider',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
],
],
'menu_icons_subsection' => [
'label' => esc_html__( 'Main Menu Icons', 'Avada' ),
'id' => 'menu_icons_subsection',
'type' => 'sub-section',
'hidden' => $has_global_header,
'fields' => [
'menu_icons_note' => [
'label' => '',
'description' => '' . __( 'IMPORTANT NOTE: Icons are available for both the main and dropdown menus. However, the options below only apply to the main menu. Dropdown menu icons do not use these options below, they follow the dropdown font size and color. The icons themselves can be added to your menu items in the Appearance > Menus section.', 'Avada' ) . '
',
'id' => 'menu_icons_note',
'type' => 'custom',
],
'menu_icon_position' => [
'label' => esc_html__( 'Main Menu Icon Position', 'Avada' ),
'description' => esc_html__( 'Controls the main menu icon position.', 'Avada' ),
'id' => 'menu_icon_position',
'default' => 'left',
'choices' => [
'top' => esc_html__( 'Top', 'Avada' ),
'right' => esc_html__( 'Right', 'Avada' ),
'bottom' => esc_html__( 'Bottom', 'Avada' ),
'left' => esc_html__( 'Left', 'Avada' ),
],
'type' => 'radio-buttonset',
'output' => [
[
'element' => 'body',
'function' => 'attr',
'attr' => 'class',
'value_pattern' => 'avada-menu-icon-position-$',
'remove_attrs' => [ 'avada-menu-icon-position-top', 'avada-menu-icon-position-right', 'avada-menu-icon-position-bottom', 'avada-menu-icon-position-left' ],
],
],
// Partial refresh for the header.
'partial_refresh' => [
'menu_icon_position_header_remove_before_hook' => [
'selector' => '.avada-hook-before-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'menu_icon_position_header_remove_after_hook' => [
'selector' => '.avada-hook-after-header-wrapper',
'container_inclusive' => true,
'render_callback' => '__return_null',
],
'menu_icon_position_header' => [
'selector' => '.fusion-header-wrapper',
'container_inclusive' => true,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'header' ],
'success_trigger_event' => 'header-rendered',
],
],
],
'menu_icon_size' => [
'label' => esc_html__( 'Main Menu Icon Size', 'Avada' ),
'description' => esc_html__( 'Controls the size of the top-level menu icons.', 'Avada' ),
'id' => 'menu_icon_size',
'default' => '14',
'type' => 'slider',
'choices' => [
'min' => '0',
'max' => '100',
'step' => '1',
],
'css_vars' => [
[
'name' => '--menu_icon_size',
'value_pattern' => '$px',
],
],
],
'menu_icon_color' => [
'label' => esc_html__( 'Main Menu Icon Color', 'Avada' ),
'description' => esc_html__( 'Controls the color of the top-level main menu icons.', 'Avada' ),
'id' => 'menu_icon_color',
'default' => '#212934',
'type' => 'color-alpha',
'css_vars' => [
[
'name' => '--menu_icon_color',
'element' => '.fusion-megamenu-icon',
'callback' => [ 'sanitize_color' ],
],
],
],
'menu_icon_hover_color' => [
'label' => esc_html__( 'Main Menu Icon Hover Color', 'Avada' ),
'description' => esc_html__( 'Controls the hover color of the top-level main menu icons.', 'Avada' ),
'id' => 'menu_icon_hover_color',
'default' => '#65bc7b',
'type' => 'color-alpha',
'css_vars' => [
[
'name' => '--menu_icon_hover_color',
'element' => '.fusion-megamenu-icon',
'callback' => [ 'sanitize_color' ],
],
],
],
'menu_thumbnail_size' => [
'label' => esc_html__( 'Mega Menu Thumbnail Size', 'Avada' ),
'description' => esc_html__( 'Controls the width and height of the top-level mega menu thumbnails. Use "auto" for automatic resizing if you added either width or height.', 'Avada' ),
'id' => 'menu_thumbnail_size',
'units' => false,
'default' => [
'width' => '26px',
'height' => '14px',
],
'type' => 'dimensions',
'required' => [
[
'setting' => 'disable_megamenu',
'operator' => '==',
'value' => '1',
],
],
'css_vars' => [
[
'name' => '--menu_thumbnail_size-width',
'choice' => 'width',
'element' => '.fusion-main-menu',
],
[
'name' => '--menu_thumbnail_size-height',
'choice' => 'height',
'element' => '.fusion-main-menu',
],
],
],
],
],
];
$sections['menu']['fields'] = array_merge( $sections['menu']['fields'], $fields );
return $sections;
}
/**
* Avada Options.
*
* @author ThemeFusion
* @copyright (c) Copyright by ThemeFusion
* @link https://theme-fusion.com
* @package Avada
* @subpackage Core
* @since 4.0.0
*/
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
/**
* Page Title Bar
*
* @param array $sections An array of our sections.
* @return array
*/
function avada_options_section_page_title_bar( $sections ) {
// Check if we have a global PTB override.
$has_global_ptb = false;
if ( class_exists( 'Fusion_Template_Builder' ) ) {
$default_layout = Fusion_Template_Builder::get_default_layout();
$has_global_ptb = isset( $default_layout['data']['template_terms'] ) && isset( $default_layout['data']['template_terms']['page_title_bar'] ) && $default_layout['data']['template_terms']['page_title_bar'];
}
$sections['page_title_bar'] = [
'label' => esc_html__( 'Page Title Bar', 'Avada' ),
'id' => 'heading_page_title_bar',
'priority' => 7,
'icon' => 'el-icon-adjust-alt',
'alt_icon' => 'fusiona-page_title',
'fields' => [
'page_title_bar_template_notice' => class_exists( 'Fusion_Template_Builder' ) ? [
'id' => 'page_title_bar_template_notice',
'label' => '',
'description' => sprintf(
/* translators: 1: Content|Footer|Page Title Bar. 2: URL. */
'' . __( '
IMPORTANT NOTE: The options on this tab are not available because a global %1$s override is currently used. To edit your global layout please visit
this page .', 'Avada' ) . '
',
Fusion_Template_Builder::get_instance()->get_template_terms()['page_title_bar']['label'],
admin_url( 'admin.php?page=avada-layouts' )
),
'hidden' => ! $has_global_ptb,
'type' => 'custom',
] : [],
'page_title_bar' => [
'label' => esc_html__( 'Page Title Bar', 'Avada' ),
'description' => esc_html__( 'Controls how the page title bar displays.', 'Avada' ),
'id' => 'page_title_bar',
'default' => 'bar_and_content',
'hidden' => $has_global_ptb,
'choices' => [
'bar_and_content' => esc_html__( 'Show Bar and Content', 'Avada' ),
'content_only' => esc_html__( 'Show Content Only', 'Avada' ),
'hide' => esc_html__( 'Hide', 'Avada' ),
],
'type' => 'select',
'partial_refresh' => [
'page_title_bar_contents_page_title_bar' => [
'selector' => '.avada-page-titlebar-wrapper',
'container_inclusive' => false,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'page_titlebar_wrapper' ],
'success_trigger_event' => 'fusion-ptb-refreshed',
'skip_for_template' => [ 'page_title_bar' ],
],
],
'output' => [
// Change classes in .
[
'element' => 'body',
'function' => 'attr',
'attr' => 'class',
'value_pattern' => 'avada-has-titlebar-$',
'remove_attrs' => [ 'avada-has-titlebar-hide', 'avada-has-titlebar-bar_and_content', 'avada-has-titlebar-content_only' ],
],
],
],
'page_title_bar_bs' => [
'label' => esc_html__( 'Breadcrumbs / Search Bar Content Display', 'Avada' ),
'description' => esc_html__( 'Controls what displays in the breadcrumbs area. ', 'Avada' ),
'id' => 'page_title_bar_bs',
'default' => 'breadcrumbs',
'hidden' => $has_global_ptb,
'type' => 'radio-buttonset',
'choices' => [
'none' => esc_html__( 'None', 'Avada' ),
'breadcrumbs' => esc_html__( 'Breadcrumbs', 'Avada' ),
'search_box' => esc_html__( 'Search Bar', 'Avada' ),
],
'soft_dependency' => true,
'partial_refresh' => [
'page_title_bar_contents_breadcrumb_show_post_type_archive' => [
'selector' => '.avada-page-titlebar-wrapper',
'container_inclusive' => false,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'page_titlebar_wrapper' ],
'success_trigger_event' => 'fusion-ptb-refreshed',
'skip_for_template' => [ 'page_title_bar' ],
],
],
],
'page_title_bar_text' => [
'label' => esc_html__( 'Page Title Bar Headings', 'Avada' ),
'description' => esc_html__( 'Turn on to display the page title bar headings.', 'Avada' ),
'id' => 'page_title_bar_text',
'default' => '1',
'hidden' => $has_global_ptb,
'type' => 'switch',
'soft_dependency' => true,
'partial_refresh' => [
'page_title_bar_contents_page_title_bar_text' => [
'selector' => '.avada-page-titlebar-wrapper',
'container_inclusive' => false,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'page_titlebar_wrapper' ],
'success_trigger_event' => 'fusion-ptb-refreshed',
'skip_for_template' => [ 'page_title_bar' ],
],
],
],
'page_title_bar_styling_title' => [
'label' => esc_html__( 'Page Title Bar Styling', 'Avada' ),
'description' => '',
'id' => 'page_title_bar_styling_title',
'hidden' => $has_global_ptb,
'icon' => true,
'type' => 'info',
],
'page_title_100_width' => [
'label' => esc_html__( 'Page Title Bar 100% Width', 'Avada' ),
'description' => esc_html__( 'Turn on to have the page title bar area display at 100% width according to the viewport size. Turn off to follow site width.', 'Avada' ),
'id' => 'page_title_100_width',
'default' => '0',
'hidden' => $has_global_ptb,
'type' => 'switch',
'soft_dependency' => true,
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'true' ],
'element' => 'body',
'className' => 'avada-has-pagetitle-100-width',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'page_title_height' => [
'label' => esc_html__( 'Page Title Bar Height', 'Avada' ),
'description' => esc_html__( 'Controls the height of the page title bar on desktop.', 'Avada' ),
'id' => 'page_title_height',
'default' => '300px',
'hidden' => $has_global_ptb,
'type' => 'dimension',
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_height',
'element' => '.fusion-page-title-bar',
],
],
],
'page_title_mobile_height' => [
'label' => esc_html__( 'Page Title Bar Mobile Height', 'Avada' ),
'description' => esc_html__( 'Controls the height of the page title bar on mobile.', 'Avada' ),
'id' => 'page_title_mobile_height',
'default' => '240px',
'hidden' => $has_global_ptb,
'type' => 'dimension',
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_mobile_height',
'element' => '.fusion-page-title-bar',
'callback' => [
'convert_font_size_to_px',
[
'setting' => 'page_title_font_size',
'addUnits' => true,
],
],
],
],
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ 'auto', '===' ],
'element' => 'body',
'className' => 'avada-has-page-title-mobile-height-auto',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'page_title_bg_color' => [
'label' => esc_html__( 'Page Title Bar Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the page title bar.', 'Avada' ),
'id' => 'page_title_bg_color',
'default' => '#f2f3f5',
'hidden' => $has_global_ptb,
'type' => 'color-alpha',
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_bg_color',
'element' => '.fusion-page-title-bar',
'callback' => [ 'sanitize_color' ],
],
],
],
'page_title_border_color' => [
'label' => esc_html__( 'Page Title Bar Borders Color', 'Avada' ),
'description' => esc_html__( 'Controls the border colors of the page title bar.', 'Avada' ),
'id' => 'page_title_border_color',
'default' => 'rgba(226,226,226,0)',
'hidden' => $has_global_ptb,
'type' => 'color-alpha',
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_border_color',
'element' => '.fusion-page-title-bar',
'callback' => [ 'sanitize_color' ],
],
],
'output' => [
[
'element' => '.fusion-page-title-bar',
'property' => 'border',
'js_callback' => [
'fusionReturnStringIfTransparent',
[
'transparent' => 'none',
'opaque' => '',
],
],
'sanitize_callback' => [ 'Avada_Output_Callbacks', 'page_title_border_color' ],
],
],
],
'page_title_font_size' => [
'label' => esc_html__( 'Page Title Bar Heading Font Size', 'Avada' ),
'description' => esc_html__( 'Controls the font size for the page title bar main heading.', 'Avada' ),
'id' => 'page_title_font_size',
'default' => '54px',
'hidden' => $has_global_ptb,
'type' => 'dimension',
'choices' => [
'units' => [ 'px', 'em' ],
],
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_font_size',
'element' => '.fusion-page-title-bar',
],
],
],
'page_title_line_height' => [
'label' => esc_html__( 'Page Title Bar Heading Line Height', 'Avada' ),
'description' => esc_html__( 'Controls the line height for the page title bar main heading.', 'Avada' ),
'id' => 'page_title_line_height',
'default' => 'normal',
'hidden' => $has_global_ptb,
'type' => 'dimension',
'choices' => [
'units' => [ 'px', 'em' ],
],
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_line_height',
'element' => '.fusion-page-title-bar',
],
],
],
'page_title_color' => [
'label' => esc_html__( 'Page Title Bar Heading Font Color', 'Avada' ),
'description' => esc_html__( 'Controls the text color of the page title bar main heading.', 'Avada' ),
'id' => 'page_title_color',
'default' => '#212934',
'hidden' => $has_global_ptb,
'type' => 'color-alpha',
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_color',
'element' => '.fusion-page-title-bar',
'callback' => [ 'sanitize_color' ],
],
],
],
'page_title_subheader_font_size' => [
'label' => esc_html__( 'Page Title Bar Subheading Font Size', 'Avada' ),
'description' => esc_html__( 'Controls the font size for the page titlebar subheading.', 'Avada' ),
'id' => 'page_title_subheader_font_size',
'default' => '18px',
'hidden' => $has_global_ptb,
'type' => 'dimension',
'choices' => [
'units' => [ 'px', 'em' ],
],
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_subheader_font_size',
'element' => '.fusion-page-title-bar',
],
],
],
'page_title_subheader_color' => [
'label' => esc_html__( 'Page Title Bar Subheading Font Color', 'Avada' ),
'description' => esc_html__( 'Controls the text color of the page title bar subheading.', 'Avada' ),
'id' => 'page_title_subheader_color',
'default' => '#4a4e57',
'hidden' => $has_global_ptb,
'type' => 'color-alpha',
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_subheader_color',
'element' => '.fusion-page-title-bar',
'callback' => [ 'sanitize_color' ],
],
],
],
'page_title_alignment' => [
'label' => esc_html__( 'Page Title Bar Text Alignment', 'Avada' ),
'description' => esc_html__( 'Choose the title and subhead text alignment. Breadcrumbs / search field will be on opposite side for left / right alignment and below the title for center alignment.', 'Avada' ),
'id' => 'page_title_alignment',
'default' => 'center',
'hidden' => $has_global_ptb,
'type' => 'radio-buttonset',
'choices' => [
'left' => esc_html__( 'Left', 'Avada' ),
'center' => esc_html__( 'Center', 'Avada' ),
'right' => esc_html__( 'Right', 'Avada' ),
],
'soft_dependency' => true,
'partial_refresh' => [
'page_title_bar_contents_page_title_alignment' => [
'selector' => '.avada-page-titlebar-wrapper',
'container_inclusive' => false,
'render_callback' => [ 'Avada_Partial_Refresh_Callbacks', 'page_titlebar_wrapper' ],
'success_trigger_event' => 'fusion-ptb-refreshed',
'skip_for_template' => [ 'page_title_bar' ],
],
],
],
'page_title_bar_bg_image_title' => [
'label' => esc_html__( 'Page Title Bar Background Image', 'Avada' ),
'description' => '',
'id' => 'page_title_bar_bg_image_title',
'icon' => true,
'hidden' => $has_global_ptb,
'type' => 'info',
],
'page_title_bg' => [
'label' => esc_html__( 'Page Title Bar Background Image', 'Avada' ),
'description' => esc_html__( 'Select an image for the page title bar background. If left empty, the page title bar background color will be used.', 'Avada' ),
'id' => 'page_title_bg',
'default' => '',
'hidden' => $has_global_ptb,
'mod' => '',
'type' => 'media',
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_bg',
'element' => '.fusion-page-title-bar',
'choice' => 'url',
'callback' => [ 'fallback_to_value', [ 'url("$")', 'none' ] ],
],
],
],
'page_title_bg_retina' => [
'label' => esc_html__( 'Retina Page Title Bar Background Image', 'Avada' ),
'description' => esc_html__( 'Select an image for the retina version of the page title bar background. It should be exactly 2x the size of the page title bar background.', 'Avada' ),
'id' => 'page_title_bg_retina',
'default' => '',
'hidden' => $has_global_ptb,
'mod' => '',
'type' => 'media',
'soft_dependency' => true,
'css_vars' => [
[
'name' => '--page_title_bg_retina',
'element' => '.fusion-page-title-bar',
'choice' => 'url',
'callback' => [ 'fallback_to_value', [ 'url("$")', 'var(--page_title_bg)' ] ],
],
],
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'has-image' ],
'element' => 'html',
'className' => 'avada-has-pagetitlebar-retina-bg-image',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'page_title_bg_full' => [
'label' => esc_html__( '100% Background Image', 'Avada' ),
'description' => esc_html__( 'Turn on to have the page title bar background image display at 100% in width and height according to the window size.', 'Avada' ),
'id' => 'page_title_bg_full',
'default' => '0',
'hidden' => $has_global_ptb,
'type' => 'switch',
'soft_dependency' => true,
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'true' ],
'element' => 'body',
'className' => 'avada-has-pagetitle-bg-full',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'page_title_bg_parallax' => [
'label' => esc_html__( 'Parallax Background Image', 'Avada' ),
'description' => esc_html__( 'Turn on to use a parallax scrolling effect on the background image.', 'Avada' ),
'id' => 'page_title_bg_parallax',
'default' => '0',
'hidden' => $has_global_ptb,
'type' => 'switch',
'soft_dependency' => true,
'output' => [
[
'element' => 'helperElement',
'property' => 'dummy',
'callback' => [
'toggle_class',
[
'condition' => [ '', 'true' ],
'element' => 'body',
'className' => 'avada-has-pagetitle-bg-parallax',
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
'page_title_fading' => [
'label' => esc_html__( 'Fading Animation', 'Avada' ),
'description' => esc_html__( 'Turn on to have the page title text fade on scroll.', 'Avada' ),
'id' => 'page_title_fading',
'default' => '0',
'hidden' => $has_global_ptb,
'type' => 'switch',
'soft_dependency' => true,
'output' => [
// This is for the avadaFadeVars.page_title_fading var.
[
'element' => 'helperElement',
'property' => 'bottom',
'js_callback' => [
'fusionGlobalScriptSet',
[
'globalVar' => 'avadaFadeVars',
'id' => 'page_title_fading',
'trigger' => [ 'avadaTriggerPageTitleFading' ],
],
],
'sanitize_callback' => '__return_empty_string',
],
],
],
],
];
return $sections;
}
/**
* Avada Options.
*
* @author ThemeFusion
* @copyright (c) Copyright by ThemeFusion
* @link https://theme-fusion.com
* @package Avada
* @subpackage Core
* @since 4.0.0
*/
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
/**
* Sidebar settings
*
* @param array $sections An array of our sections.
* @return array
*/
function avada_options_section_sidebars( $sections ) {
/**
* Register sidebar options for blog/portfolio/woocommerce archive pages.
*/
global $wp_registered_sidebars;
$sidebar_options[] = 'None';
for ( $i = 0; $i < 1; $i++ ) {
$sidebars = $wp_registered_sidebars;
if ( is_array( $sidebars ) && ! empty( $sidebars ) ) {
foreach ( $sidebars as $sidebar ) {
$sidebar_options[] = $sidebar['name'];
}
}
$sidebars = Sidebar_Generator::get_sidebars();
if ( is_array( $sidebars ) && ! empty( $sidebars ) ) {
foreach ( $sidebars as $key => $value ) {
$sidebar_options[] = $value;
}
}
}
$sidebars_array = [];
foreach ( $sidebar_options as $sidebar_option ) {
$sidebars_array[ $sidebar_option ] = $sidebar_option;
}
$sidebar_options = $sidebars_array;
$sidebars_update_callback = [
[
'where' => 'postMeta',
'condition' => '_wp_page_template',
'operator' => '!==',
'value' => '100-width.php',
],
];
$sections['sidebars'] = [
'label' => esc_html__( 'Sidebars', 'Avada' ),
'id' => 'heading_sidebars',
'is_panel' => true,
'priority' => 10,
'icon' => 'el-icon-website',
'alt_icon' => 'fusiona-sidebar',
'fields' => [
'sidebars_styling' => [
'label' => esc_html__( 'Sidebar Styling', 'Avada' ),
'id' => 'sidebars_styling',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'responsive_sidebar_order' => [
'id' => 'responsive_sidebar_order',
'label' => esc_html__( 'Sidebar Responsive Order', 'Avada' ),
'description' => esc_html__( 'Choose the order of sidebars and main content area on mobile layouts through drag & drop sorting.', 'Avada' ),
'type' => 'sortable',
'choices' => [
'content' => esc_html__( 'Content', 'Avada' ),
'sidebar' => esc_html__( 'Sidebar 1', 'Avada' ),
'sidebar-2' => esc_html__( 'Sidebar 2', 'Avada' ),
],
'default' => 'content,sidebar,sidebar-2',
'required' => [
[
'setting' => 'responsive',
'operator' => '==',
'value' => '1',
],
],
'update_callback' => $sidebars_update_callback,
],
'sidebar_sticky' => [
'label' => esc_html__( 'Sticky Sidebars', 'Avada' ),
'description' => esc_html__( 'Select the sidebar(s) that should remain sticky when scrolling the page. If the sidebar content is taller than the screen, it acts like a normal sidebar until the bottom of the sidebar is within the viewport, which will then remain fixed in place as you scroll down.', 'Avada' ),
'id' => 'sidebar_sticky',
'default' => 'none',
'type' => 'radio-buttonset',
'choices' => [
'none' => esc_html__( 'None', 'Avada' ),
'sidebar_one' => esc_html__( 'Sidebar 1', 'Avada' ),
'sidebar_two' => esc_html__( 'Sidebar 2', 'Avada' ),
'both' => esc_html__( 'Both', 'Avada' ),
],
'update_callback' => $sidebars_update_callback,
],
'sidebar_padding' => [
'label' => esc_html__( 'Sidebar Padding', 'Avada' ),
'description' => esc_html__( 'Controls the sidebar padding.', 'Avada' ),
'id' => 'sidebar_padding',
'default' => '0px',
'type' => 'dimension',
'choices' => [ 'px', '%' ],
'css_vars' => [
[
'name' => '--sidebar_padding',
'element' => '.sidebar',
],
[
'name' => '--sidebar_padding-percent_to_vw',
'element' => '.sidebar',
'callback' => [ 'string_replace', [ '%', 'vw' ] ],
],
],
],
'sidebar_bg_color' => [
'label' => esc_html__( 'Sidebar Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the sidebar.', 'Avada' ),
'id' => 'sidebar_bg_color',
'default' => 'rgba(255,255,255,0)',
'type' => 'color-alpha',
'css_vars' => [
[
'name' => '--sidebar_bg_color',
'callback' => [ 'sanitize_color' ],
],
],
],
'sidebar_widget_bg_color' => [
'label' => esc_html__( 'Sidebar Widget Heading Background Color', 'Avada' ),
'description' => esc_html__( 'Controls the background color of the widget title box. If left transparent the widget title will be unboxed.', 'Avada' ),
'id' => 'sidebar_widget_bg_color',
'default' => 'rgba(255,255,255,0)',
'type' => 'color-alpha',
'css_vars' => [
[
'name' => '--sidebar_widget_bg_color',
'element' => '.sidebar',
'callback' => [ 'sanitize_color' ],
],
[
'name' => '--sidebar_widget_bg_color-opaque-padding',
'element' => '.sidebar',
'callback' => [
'return_string_if_transparent',
[
'transparent' => '',
'opaque' => '9px 15px',
],
],
],
],
],
'sidew_font_size' => [
'label' => esc_html__( 'Sidebar Widget Heading Font Size', 'Avada' ),
'description' => esc_html__( 'Controls the font size of the widget heading text.', 'Avada' ),
'id' => 'sidew_font_size',
'default' => '18px',
'type' => 'dimension',
'css_vars' => [
[
'name' => '--sidew_font_size',
'element' => '.sidebar',
],
],
],
'sidebar_heading_color' => [
'label' => esc_html__( 'Sidebar Widget Headings Color', 'Avada' ),
'description' => esc_html__( 'Controls the color of the sidebar widget heading text.', 'Avada' ),
'id' => 'sidebar_heading_color',
'default' => '#212934',
'type' => 'color-alpha',
'css_vars' => [
[
'name' => '--sidebar_heading_color',
'element' => '.sidebar',
'callback' => [ 'sanitize_color' ],
],
],
],
],
],
'pages_sidebars_section' => [
'label' => esc_html__( 'Pages', 'Avada' ),
'id' => 'pages_sidebars_section',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'pages_sidebar' => [
'label' => esc_html__( 'Global Page Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on all pages.', 'Avada' ),
'id' => 'pages_sidebar',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'pages_sidebar_2' => [
'label' => esc_html__( 'Global Page Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on all pages. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'pages_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'pages_global_sidebar' => [
'label' => esc_html__( 'Force Global Sidebars For Pages', 'Avada' ),
'description' => esc_html__( 'Turn on if you want to use the same sidebars on all pages. This option overrides the page options.', 'Avada' ),
'id' => 'pages_global_sidebar',
'default' => '0',
'type' => 'switch',
'update_callback' => $sidebars_update_callback,
],
'default_sidebar_pos' => [
'label' => esc_html__( 'Global Page Sidebar Position', 'Avada' ),
'description' => esc_html__( 'Controls the position of sidebar 1 for all pages. If sidebar 2 is selected, it will display on the opposite side.', 'Avada' ),
'id' => 'default_sidebar_pos',
'default' => 'Right',
'type' => 'radio-buttonset',
'choices' => [
'Left' => esc_html__( 'Left', 'Avada' ),
'Right' => esc_html__( 'Right', 'Avada' ),
],
'update_callback' => $sidebars_update_callback,
],
],
],
'portfolio_posts_sidebars_section' => [
'label' => esc_html__( 'Portfolio Posts', 'Avada' ),
'description' => '',
'id' => 'portfolio_posts_sidebars_section',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'portfolio_sidebar' => [
'label' => esc_html__( 'Global Portfolio Post Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on all portfolio posts.', 'Avada' ),
'id' => 'portfolio_sidebar',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'portfolio_sidebar_2' => [
'label' => esc_html__( 'Global Portfolio Post Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on all portfolio posts. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'portfolio_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'portfolio_global_sidebar' => [
'label' => esc_html__( 'Force Global Sidebars For Portfolio Posts', 'Avada' ),
'description' => esc_html__( 'Turn on if you want to use the same sidebars on all portfolio posts. This option overrides the portfolio post options.', 'Avada' ),
'id' => 'portfolio_global_sidebar',
'default' => '0',
'type' => 'switch',
'update_callback' => $sidebars_update_callback,
],
'portfolio_sidebar_position' => [
'label' => esc_html__( 'Global Portfolio Sidebar Position', 'Avada' ),
'description' => esc_html__( 'Controls the position of sidebar 1 for all portfolio posts and archive pages. If sidebar 2 is selected, it will display on the opposite side.', 'Avada' ),
'id' => 'portfolio_sidebar_position',
'default' => 'Right',
'type' => 'radio-buttonset',
'choices' => [
'Left' => esc_html__( 'Left', 'Avada' ),
'Right' => esc_html__( 'Right', 'Avada' ),
],
'update_callback' => $sidebars_update_callback,
],
],
],
'portfolio_archive_category_pages_sidebars_section' => [
'label' => esc_html__( 'Portfolio Archive', 'Avada' ),
'description' => '',
'id' => 'portfolio_archive_category_pages_sidebars_section',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'portfolio_archive_important_note_info' => [
'label' => '',
/* translators: "Portfolio Posts sidebar" link. */
'description' => '',
'id' => 'portfolio_archive_important_note_info',
'type' => 'custom',
],
'portfolio_archive_sidebar' => [
'label' => esc_html__( 'Portfolio Archive Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on the portfolio archive pages.', 'Avada' ),
'id' => 'portfolio_archive_sidebar',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'portfolio_archive_sidebar_2' => [
'label' => esc_html__( 'Portfolio Archive Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on the portfolio archive pages. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'portfolio_archive_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
],
],
'blog_posts_sidebars_section' => [
'label' => esc_html__( 'Blog Posts', 'Avada' ),
'description' => '',
'id' => 'blog_posts_sidebars_section',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'posts_sidebar' => [
'label' => esc_html__( 'Global Blog Post Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on all blog posts.', 'Avada' ),
'id' => 'posts_sidebar',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'edit_shortcut' => [
'selector' => [ '#sidebar.fusion-widget-area' ],
'shortcuts' => [
[
'aria_label' => esc_html__( 'Edit Global Sidebar Options', 'Avada' ),
'callback' => 'fusionEditGlobalSidebar',
'css_class' => '',
'icon' => 'fusiona-cog',
'link_to_template_if_override_active' => 'content',
'override_icon' => 'fusiona-content',
],
[
'aria_label' => esc_html__( 'Edit Sidebar Options', 'Avada' ),
'css_class' => '',
'icon' => 'fusiona-settings',
'context' => 'po',
'disable_on_template_override' => 'content',
],
[
'aria_label' => esc_html__( 'Edit Sidebar Widgets', 'Avada' ),
'css_class' => 'fusion-edit-sidebar',
'link' => admin_url( 'widgets.php' ),
'disable_on_template_override' => 'content',
],
],
],
],
'posts_sidebar_2' => [
'label' => esc_html__( 'Global Blog Post Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on all blog posts. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'posts_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'edit_shortcut' => [
'selector' => [ '#sidebar-2.fusion-widget-area' ],
'shortcuts' => [
[
'aria_label' => esc_html__( 'Edit Global Sidebar Options', 'Avada' ),
'callback' => 'fusionEditGlobalSidebar',
'css_class' => '',
'icon' => 'fusiona-cog',
],
[
'aria_label' => esc_html__( 'Edit Sidebar Options', 'Avada' ),
'css_class' => '',
'icon' => 'fusiona-settings',
'context' => 'po',
],
[
'aria_label' => esc_html__( 'Edit Sidebar Widgets', 'Avada' ),
'link' => admin_url( 'widgets.php' ),
],
],
],
],
'posts_global_sidebar' => [
'label' => esc_html__( 'Force Global Sidebars For Blog Posts', 'Avada' ),
'description' => esc_html__( 'Turn on if you want to use the same sidebars on all blog posts. This option overrides the blog post options.', 'Avada' ),
'id' => 'posts_global_sidebar',
'default' => '0',
'type' => 'switch',
],
'blog_sidebar_position' => [
'label' => esc_html__( 'Global Blog Sidebar Position', 'Avada' ),
'description' => esc_html__( 'Controls the position of sidebar 1 for all blog posts and archive pages. If sidebar 2 is selected, it will display on the opposite side.', 'Avada' ),
'id' => 'blog_sidebar_position',
'default' => 'Right',
'type' => 'radio-buttonset',
'choices' => [
'Left' => esc_html__( 'Left', 'Avada' ),
'Right' => esc_html__( 'Right', 'Avada' ),
],
],
],
],
'blog_archive_category_pages_sidebars_section' => [
'label' => esc_html__( 'Blog Archive', 'Avada' ),
'description' => '',
'id' => 'blog_archive_category_pages_sidebars_section',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'blog_archive_important_note_info' => [
'label' => '',
/* translators: "Blog Posts sidebar" link. */
'description' => '',
'id' => 'blog_archive_important_note_info',
'type' => 'custom',
],
'blog_archive_sidebar' => [
'label' => esc_html__( 'Blog Archive Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on the blog archive pages.', 'Avada' ),
'id' => 'blog_archive_sidebar',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'blog_archive_sidebar_2' => [
'label' => esc_html__( 'Blog Archive Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on the blog archive pages. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'blog_archive_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
],
],
'search_sidebars_section' => [
'label' => esc_html__( 'Search Page', 'Avada' ),
'description' => '',
'id' => 'search_only',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'search_sidebar' => [
'label' => esc_html__( 'Search Page Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on the search results page.', 'Avada' ),
'id' => 'search_sidebar',
'default' => 'Blog Sidebar',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'search_sidebar_2' => [
'label' => esc_html__( 'Search Page Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on the search results page. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'search_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'search_sidebar_position' => [
'label' => esc_html__( 'Search Sidebar Position', 'Avada' ),
'description' => esc_html__( 'Controls the position of sidebar 1 for the search results page. If sidebar 2 is selected, it will display on the opposite side.', 'Avada' ),
'id' => 'search_sidebar_position',
'default' => 'Right',
'type' => 'radio-buttonset',
'choices' => [
'Left' => esc_html__( 'Left', 'Avada' ),
'Right' => esc_html__( 'Right', 'Avada' ),
],
'update_callback' => $sidebars_update_callback,
],
],
],
'woocommerce_products_sidebars_section' => ( Avada::$is_updating || class_exists( 'WooCommerce' ) ) ? [
'label' => esc_html__( 'WooCommerce Products', 'Avada' ),
'id' => 'woocommerce_products_sidebars_section',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'woo_sidebar' => [
'label' => esc_html__( 'Global WooCommerce Product Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on all WooCommerce products.', 'Avada' ),
'id' => 'woo_sidebar',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'woo_sidebar_2' => [
'label' => esc_html__( 'Global WooCommerce Product Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on all WooCommerce products. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'woo_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'woo_global_sidebar' => [
'label' => esc_html__( 'Force Global Sidebars For WooCommerce Products', 'Avada' ),
'description' => esc_html__( 'Turn on if you want to use the same sidebars on all WooCommerce products. This option overrides the WooCommerce post options.', 'Avada' ),
'id' => 'woo_global_sidebar',
'default' => '0',
'type' => 'switch',
'update_callback' => $sidebars_update_callback,
],
'woo_sidebar_position' => [
'label' => esc_html__( 'Global WooCommerce Sidebar Position', 'Avada' ),
'description' => esc_html__( 'Controls the position of sidebar 1 for all WooCommerce products and archive pages. If sidebar 2 is selected, it will display on the opposite side.', 'Avada' ),
'id' => 'woo_sidebar_position',
'default' => 'Right',
'type' => 'radio-buttonset',
'choices' => [
'Left' => esc_html__( 'Left', 'Avada' ),
'Right' => esc_html__( 'Right', 'Avada' ),
],
'update_callback' => $sidebars_update_callback,
],
],
] : [],
'woocommerce_archive_category_pages_sidebars_section' => ( Avada::$is_updating || class_exists( 'WooCommerce' ) ) ? [
'label' => esc_html__( 'WooCommerce Archive', 'Avada' ),
'description' => '',
'id' => 'woocommerce_archive_category_pages_sidebars_section',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'woocommerce_archive_important_note_info' => [
'label' => '',
/* translators: "WooCommerce Products sidebar" link. */
'description' => '',
'id' => 'woocommerce_archive_important_note_info',
'type' => 'custom',
],
'woocommerce_archive_sidebar' => [
'label' => esc_html__( 'WooCommerce Archive Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on the WooCommerce archive pages.', 'Avada' ),
'id' => 'woocommerce_archive_sidebar',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'woocommerce_archive_sidebar_2' => [
'label' => esc_html__( 'WooCommerce Archive Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on the WooCommerce archive pages. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'woocommerce_archive_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
],
] : [],
'ec_global_sidebar_heading' => ( Avada::$is_updating || class_exists( 'Tribe__Events__Main' ) ) ? [
'label' => esc_html__( 'Events Calendar', 'Avada' ),
'id' => 'ec_global_sidebar_heading',
'type' => 'sub-section',
'fields' => [
'ec_sidebar' => [
'label' => esc_html__( 'Global Events Calendar Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on all Events Calendar posts and archives pages.', 'Avada' ),
'id' => 'ec_sidebar',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'ec_sidebar_2' => [
'label' => esc_html__( 'Global Events Calendar Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on all all Events Calendar posts and archive pages. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'ec_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'ec_global_sidebar' => [
'label' => esc_html__( 'Force Global Sidebars For Events Calendar Posts', 'Avada' ),
'description' => esc_html__( 'Turn on if you want to use the same sidebars on all Events Calendar posts. This option overrides the Events Calendar post options.', 'Avada' ),
'id' => 'ec_global_sidebar',
'default' => 0,
'type' => 'switch',
'update_callback' => $sidebars_update_callback,
],
'ec_sidebar_pos' => [
'label' => esc_html__( 'Global Events Calendar Sidebar Position ', 'Avada' ),
'description' => esc_html__( 'Controls the position of sidebar 1 for all Events Calendar posts and archive pages. If sidebar 2 is selected, it will display on the opposite side.', 'Avada' ),
'id' => 'ec_sidebar_pos',
'default' => 'Right',
'type' => 'radio-buttonset',
'choices' => [
'Left' => esc_html__( 'Left', 'Avada' ),
'Right' => esc_html__( 'Right', 'Avada' ),
],
'update_callback' => $sidebars_update_callback,
],
],
] : [],
'bbpress_sidebars_section' => ( Avada::$is_updating || class_exists( 'bbPress' ) || class_exists( 'BuddyPress' ) ) ? [
'label' => esc_html__( 'bbPress/BuddyPress', 'Avada' ),
'description' => '',
'id' => 'bbpress_sidebars_section',
'icon' => true,
'type' => 'sub-section',
'fields' => [
'ppbress_sidebar' => [
'label' => esc_html__( 'Global bbPress/BuddyPress Sidebar 1', 'Avada' ),
'description' => esc_html__( 'Select sidebar 1 that will display on all bbPress/BuddyPress pages.', 'Avada' ),
'id' => 'ppbress_sidebar',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'ppbress_sidebar_2' => [
'label' => esc_html__( 'Global bbPress/BuddyPress Sidebar 2', 'Avada' ),
'description' => esc_html__( 'Select sidebar 2 that will display on all bbPress/BuddyPress pages. Sidebar 2 can only be used if sidebar 1 is selected.', 'Avada' ),
'id' => 'ppbress_sidebar_2',
'default' => 'None',
'type' => 'select',
'choices' => $sidebar_options,
'update_callback' => $sidebars_update_callback,
],
'bbpress_global_sidebar' => [
'label' => esc_html__( 'Force Global Sidebars For bbPress/BuddyPress', 'Avada' ),
'description' => esc_html__( 'Turn on if you want to use the same sidebars on all bbPress/BuddyPress pages. Forums index page, profile page and search page does not need this option checked to display the sidebars selected below.', 'Avada' ),
'id' => 'bbpress_global_sidebar',
'default' => '0',
'type' => 'switch',
'update_callback' => $sidebars_update_callback,
],
'bbpress_sidebar_position' => [
'label' => esc_html__( 'Global bbPress/BuddyPress Sidebar Position', 'Avada' ),
'description' => esc_html__( 'Controls the position of sidebar 1 for all bbPress/BuddyPress pages. If sidebar 2 is selected, it will display on the opposite side.', 'Avada' ),
'id' => 'bbpress_sidebar_position',
'default' => 'Right',
'type' => 'radio-buttonset',
'choices' => [
'Left' => esc_html__( 'Left', 'Avada' ),
'Right' => esc_html__( 'Right', 'Avada' ),
],
'update_callback' => $sidebars_update_callback,
],
],
] : [],
],
];
return $sections;
}
.gel-image-hover-gray-scale img {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
-webkit-transition: 0.7s ease-in-out;
transition: 0.7s ease-in-out;
}
.gel-image-hover-gray-scale:hover img {
-webkit-filter: grayscale(0);
filter: grayscale(0);
}
.gel-image-hover-opacity .img {
opacity: 1;
-webkit-transition: 0.7s ease-in-out;
transition: 0.7s ease-in-out;
}
.gel-image-hover-opacity:hover img {
opacity: 0.5;
}
@-webkit-keyframes gel-shine {
100% {
left: 125%;
}
}
@keyframes gel-shine {
100% {
left: 125%;
}
}
.gel-image-hover-shine:before {
position: absolute;
top: 0;
left: -100%;
z-index: 2;
display: block;
content: "";
width: 50%;
height: 100%;
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
-webkit-transform: skewX(-25deg);
transform: skewX(-25deg);
}
.gel-image-hover-shine:hover:before {
-webkit-animation: gel-shine 0.35s;
animation: gel-shine 0.35s;
}
@-webkit-keyframes gel-shine {
100% {
left: 125%;
}
}
@keyframes gel-shine {
100% {
left: 125%;
}
}
.gel-image-hover-circle:before {
position: absolute;
top: 50%;
left: 50%;
z-index: 2;
display: block;
content: "";
width: 0;
height: 0;
background: rgba(255, 255, 255, 0.2);
border-radius: 100%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
opacity: 0;
}
.gel-image-hover-circle:hover:before {
-webkit-animation: gel-circle 0.7s;
animation: gel-circle 0.7s;
}
@-webkit-keyframes gel-circle {
0% {
opacity: 1;
}
40% {
opacity: 1;
}
100% {
width: 200%;
height: 200%;
opacity: 0;
}
}
@keyframes gel-circle {
0% {
opacity: 1;
}
40% {
opacity: 1;
}
100% {
width: 200%;
height: 200%;
opacity: 0;
}
}
.gel-image-hover-flash:hover img {
opacity: 1;
-webkit-animation: gel-flash 0.7s;
animation: gel-flash 0.7s;
}
@-webkit-keyframes gel-flash {
0% {
opacity: 0.4;
}
100% {
opacity: 1;
}
}
@keyframes gel-flash {
0% {
opacity: 0.4;
}
100% {
opacity: 1;
}
}
.gel-image-box a:not(.btn) {
color: inherit;
}
.gel-image-box.img-circle .g5core__lazy-image,
.gel-image-box.img-circle .image, .gel-image-box.img-circle img {
border-radius: 50%;
}
.gel-image-box.img-circle .g5core__lazy-image:after,
.gel-image-box.img-circle .image:after, .gel-image-box.img-circle img:after {
border-radius: 50%;
}
.gel-image-box .image a {
position: relative;
z-index: 1;
display: inline-block;
}
.gel-image-box .title {
margin-bottom: 1rem;
}
.gel-image-box .btn-box {
margin-top: 1.5rem;
}
.gel-image-box p:last-child {
margin-bottom: 0;
}
.gel-image-box.border-img .image {
display: inline-block;
position: relative;
-webkit-box-shadow: 0 0 0 4px #d7aa82;
box-shadow: 0 0 0 4px #d7aa82;
-webkit-transition: transform 0.3s, opacity 0.3s;
transition: transform 0.3s, opacity 0.3s;
font-size: 0;
}
.gel-image-box.border-img .image:after {
min-width: 100%;
height: 100%;
content: "";
position: absolute;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
top: -1px;
left: -1px;
padding: 1px;
-webkit-transform: scale(1.3);
transform: scale(1.3);
opacity: 0;
-webkit-box-shadow: 0 0 0 1px #d7aa82;
box-shadow: 0 0 0 1px #d7aa82;
-webkit-transition: transform 0.3s, opacity 0.3s;
transition: transform 0.3s, opacity 0.3s;
}
.gel-image-box.border-img:hover .image {
-webkit-box-shadow: 0 0 0 2px #d7aa82;
box-shadow: 0 0 0 2px #d7aa82;
-webkit-transition: background 0.3s, transform 0.3s, opacity 0.3s;
transition: background 0.3s, transform 0.3s, opacity 0.3s;
}
.gel-image-box.border-img:hover .image:after {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
-webkit-transition: transform 0.3s, opacity 0.3s;
transition: transform 0.3s, opacity 0.3s;
-webkit-box-shadow: 0 0 0 2px #d7aa82;
box-shadow: 0 0 0 2px #d7aa82;
}
.gel-image-box.img-size-sm .image {
-ms-flex: 0 0 60px;
flex: 0 0 60px;
max-width: 60px;
}
.gel-image-box.img-size-md .image {
-ms-flex: 0 0 80px;
flex: 0 0 80px;
max-width: 80px;
}
.gel-image-box.img-size-lg .image {
-ms-flex: 0 0 120px;
flex: 0 0 120px;
max-width: 120px;
}
.gel-image-box .image-hover {
position: relative;
}
.gel-image-box .image-hover .g5core__lazy-image,
.gel-image-box .image-hover img {
-webkit-transition: all 0.3s;
transition: all 0.3s;
}
.gel-image-box .image-hover .g5core__lazy-image:last-of-type,
.gel-image-box .image-hover img:last-of-type {
position: absolute;
top: 0;
left: 0;
opacity: 0;
}
.gel-image-box:hover .image-hover .g5core__lazy-image:first-of-type,
.gel-image-box:hover .image-hover img:first-of-type {
opacity: 0;
}
.gel-image-box:hover .image-hover .g5core__lazy-image:last-of-type,
.gel-image-box:hover .image-hover img:last-of-type {
opacity: 1;
}
.gel-image-box .gel-effect-bg-image {
display: inline-block;
}
.gel-image-box .gel-image-effect:after {
content: none;
}
.gel-image-box-style-01, .gel-image-box-style-04, .gel-image-box-style-06 {
text-align: left;
}
.gel-image-box-style-02 {
text-align: center;
}
.gel-image-box-style-02 .image {
margin-left: auto;
margin-right: auto;
}
.gel-image-box-style-02 .image-hover img:last-of-type {
right: 0;
bottom: 0;
margin: auto;
}
.gel-image-box-style-03, .gel-image-box-style-05, .gel-image-box-style-07 {
text-align: right;
}
.gel-image-box-style-03 .image-hover img:last-of-type, .gel-image-box-style-05 .image-hover img:last-of-type, .gel-image-box-style-07 .image-hover img:last-of-type {
right: 0;
left: auto;
}
.gel-image-box-style-01 .image, .gel-image-box-style-02 .image, .gel-image-box-style-03 .image {
margin-bottom: 2rem;
}
.gel-image-box-style-04, .gel-image-box-style-05 {
display: -ms-flexbox;
display: flex;
}
.gel-image-box-style-04 .content-box, .gel-image-box-style-05 .content-box {
-ms-flex: 1 1 auto;
flex: 1 1 auto;
}
.gel-image-box-style-04 .image {
margin-right: 1rem;
}
.gel-image-box-style-04.img-default .image {
-ms-flex-negative: 0;
flex-shrink: 0;
}
.gel-image-box-style-05 .image {
margin-left: 1rem;
}
.gel-image-box-style-05.img-default .image {
-ms-flex-negative: 0;
flex-shrink: 0;
}
.gel-image-box-style-06 .top-box, .gel-image-box-style-07 .top-box {
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
}
.gel-image-box-style-06 .top-box .image {
margin: 0 1rem 1rem 0;
}
.gel-image-box-style-07 .top-box {
-ms-flex-pack: end;
justify-content: flex-end;
}
.gel-image-box-style-07 .top-box .image {
margin: 0 0 0.75rem 1rem;
}
/*# sourceMappingURL=image-box.css.map */
/**
* Header template.
*
* @package Avada
* @subpackage Templates
*/
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
?>
Open an excellent Fx account: Begin trading foreign currency having FBS – Northside Heating & Air Conditioning, LLC
Skip to content
Open an excellent Fx account: Begin trading foreign currency having FBS
Open an excellent Fx account: Begin trading foreign currency having FBS
I tested the new live advances in the London discover and discovered these to be in range to the community average to have forex pairs however, higher than a average to possess indices and you may products. Tickmill is actually centered in the 2014 but provides attained an extraordinary profile for the equipment providing. Authorized and you may registered by the FCA, CySEC, FSA of Malaysia, and the FSA from Seychelles, users can be change a wide range of advantage groups from programs along with MT4, MT5, and you can CQG. The newest FXTM Invest backup trade site also provides approach manager scores and you may a strategy manager information supply.
Imediate chain | Greatest Necessary as well as the Greatest Fx Agents for 2025
Investopedia discovered Charles Schwab becoming the best complete on the internet representative to begin with. Schwab needs zero minimal put to open up a merchant account, offers zero charge to own stock and ETF exchange, provides world-best education, and offers good customer service. For the best complete offering, Investopedia explored 18 individuals on the internet broker profile and you may opposed per team according to 27 various other criteria.
Either way, cross-compatibility try a desirable ability, specifically if you require keeping imediate chain an almost view to your segments as you go. One technique of numerous people use to make this label is to calculate a terrible-case circumstances of losses after which scale you to definitely very at the most, it could result in an excellent 20% losings. Public change complements backup exchange by giving an online community platform to express exchange details, procedures, and analysis. If you visit their site and search down to the newest bottom of the home webpage otherwise any kind of web page, you will likely find specifics of the regulating company, degree, and you will licenses. However, geotargeting technical means that you might simply comprehend the regulation they get that pertains to their local area. Because of this if you would like access a really high amount of limitation control, you may have to look around to check out an offshore agent to have it.
Power and Margin
You can access search devices such Laws Middle, Acuity Trade, a market Belief dash plus the Tickmill Buyers Pub.
For many who’re searching for probably one of the most powerful, proprietary this market programs developed by a broker, then Swissquote would be for you.
However, you should observe that victory in the the forex market demands work, effort, and you may punishment.
While it can be correct that there’s nothing really well safe these days, online change is certainly competitive with traditional change during the taking shelter to suit your financial purchases within the 2023. When you’re and then make ties transactions over the Web sites, make sure your broker is utilizing higher-avoid security. All content on the StockBrokers.com are reality-looked by the all of our search group, and you may modified and you will compiled by a publisher. All of our analysis, reviews, and you can views are completely our own, as well as the results of our very own thorough research and you may ages from cumulative sense within the broker industry. Discussing a genuine ECN agent will require one to shell out rollover charges and you may commission at times. Whether or not This market are winning for someone investor utilizes their capability to research the marketplace, implement a sound trading means, and do risks effortlessly.
Below are a few a gallery of screenshots of tastyfx’s trade systems, removed inside the unit analysis on the all of our sis web site, ForexBrokers.com.
Of numerous Mac users pick the Internet Buyer variation, but some agents give intricate guidelines to the playing with third-group plugins to run the brand new desktop type to your Mac.
From our analysis, trade charges to have Tickmill was competitive because the Pro Membership now offers advances of 0 pips and you may a minimal percentage out of only $dos for each and every front side, for each and every $one hundred,100 exchanged.
Can i begin trade fx that have a little bit of money?
Users gain access to of many economic tools such brings, options, securities, ETFs, and also futures. Errante are founded in the 2019 and will be offering a great listing of account types for everybody form of people. Signed up because of the CySEC as well as the FSA out of Seychelles, profiles have the ability to trade to your fx, indices, commodities, cryptocurrencies, and you can shares out of the MetaTrader cuatro and MetaTrader 5 trade programs. MT4 can be used via Windows, Mac, Online Buyer, or Android mobile applications.
Selecting the best On the web Fx Broker for your requirements
In addition to the individuals separate records, Merrill Line now offers access to Exchange Main, an advanced technical platform one focuses on higher-quality simple and you can technology lookup capabilities. Customers should expect punctual and you will professional answers out of Schwab’s agencies, readily available twenty four/7. Significantly, the business along with retains a catalog to own buyers with handicaps where they’re able to discovered additional direction. The newest stay-by yourself sort of MetaTrader cuatro (MT4) is actually uniform along side globe, however, brokers have a tendency to improve they that have include-ons and adjustments or include it with 3rd-party business. Such more systems and app can be significantly boost your trade sense, it’s worth considering brokers that offer these items. For example, a retail trader having a tier step 1 managed representative is also control a good $29,100 forex reputation with just $step 1,000 within membership.
For your leisure, i and written outlined books to the best CySEC managed brokers, better ASIC regulated agents and best FCA controlled agents. Choosing a secure, well-regulated agent which have aggressive charges and simple entry to the new locations is essential in order to competing around the world’s forex. And the things already discussed within publication, you should also take note of the pursuing the items outlined below. To me, one of the recommended products an amateur buyer can use is actually a demonstration exchange account. This permits one trade in a threat-free ecosystem which is an effective way to achieve knowledge of having fun with a trading and investing system and stay more comfortable with an investments approach.
Interactive Brokers
Indeed, most of their programs often readily give you all of that you need to initiate trade instantaneously. You’ll rating lots of academic materials and webinars, movies, articles, seminars, and you can age-programs during the no additional charge. It goes without saying you to definitely managed brokers provide their clients free demo account to assist them sharpen its knowledge before going live. OANDA also offers forex trading across 68 currency sets, as well as all the biggest and you will small pairs, making certain you have the very important possibilities for your use. Members can get the option of the fresh brokers’ very own change networks inside the internet and you may mobile versions or can turn to your popular MetaTrader 4 system. Price is typically on the a-spread base, even if members performing more $50 million within the frequency thirty day period will get be involved in the new broker’s Premium And Investor prices framework and you can get to tall discounts.
This is basically the biggest business global, which have a volume of more than $7.5 billion daily. Forex market professionals range between shopping buyers in order to organization people. We feel our company is well-equipped to give advice on trying to find an informed forex in the a world having several broker houses. Right here, you’ll see and that on the web brokers to think, those that to avoid, what counts when selecting a particular representative, and the ways to end costly errors. BestBrokers.com is free of charge to use for group and it can secure a commission from some of the indexed trading networks with no added cost to you personally.
It is wise to comment the brand new deposit and you may detachment tips and you can their respective charge so you aren’t surprised from the one highest charges. Of my own feel, I suggest to prevent unregulated agents no matter what. There isn’t any judge recourse should they try to escape with your fund otherwise manage their financing carelessly. For those who trade $50 million or even more within the notional monthly volume, you have access to a good 5% give cashback rebate, which is the exact carbon copy of $5 for every million (USD) exchanged.
WebTrader has a variety of preferred provides, and watchlists, trading from the chart, and you will use of live talk help from the inside the platform. The proper execution and you may UX are an excellent and really put it inside a category of the individual. We specifically appreciated the convenience in which you can flip ranging from demo and you can live exchange. Towards the top of aggressive spreads and you will no commission, tastyfx offers its own proprietary trading program. Based inside 2001, ActivTrades is actually regulated because of the several authorities around the world and offers enhanced insurance to safeguard money around £step 1,one hundred thousand,100.
admin 2025-04-30T10:23:19+00:00