/**
* Astra Builder Base Configuration.
*
* @package astra-builder
*/
// No direct access, please.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class Astra_Builder_Base_Configuration.
*/
final class Astra_Builder_Base_Configuration {
/**
* Member Variable
*
* @var mixed instance
*/
private static $instance = null;
/**
* Initiator
*/
public static function get_instance() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor
*/
public function __construct() {
}
/**
* Prepare Advance Typography configuration.
*
* @param string $section_id section id.
* @param array $required_condition Required Condition.
* @param array $divider_setup Required divider setup.
* @return array
*/
public static function prepare_typography_options( $section_id, $required_condition = array(), $divider_setup = array() ) {
$parent = ASTRA_THEME_SETTINGS . '[' . $section_id . '-typography]';
if ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'typography' ) ) {
$_configs = array(
array(
'name' => $parent,
'default' => astra_get_option( $section_id . '-typography' ),
'type' => 'control',
'control' => 'ast-settings-group',
'title' => __( 'Text Font', 'astra' ),
'is_font' => true,
'section' => $section_id,
'divider' => $divider_setup,
'transport' => 'postMessage',
'priority' => 16,
'context' => empty( $required_condition ) ? Astra_Builder_Helper::$design_tab : $required_condition,
),
/**
* Option: Font Size
*/
array(
'name' => 'font-size-' . $section_id,
'type' => 'sub-control',
'parent' => $parent,
'section' => $section_id,
'control' => 'ast-responsive-slider',
'default' => astra_get_option( 'font-size-' . $section_id ),
'transport' => 'postMessage',
'priority' => 15,
'title' => __( 'Font Size', 'astra' ),
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ),
'suffix' => array( 'px', 'em', 'vw', 'rem' ),
'input_attrs' => array(
'px' => array(
'min' => 0,
'step' => 1,
'max' => 200,
),
'em' => array(
'min' => 0,
'step' => 0.01,
'max' => 20,
),
'vw' => array(
'min' => 0,
'step' => 0.1,
'max' => 25,
),
'rem' => array(
'min' => 0,
'step' => 0.1,
'max' => 20,
),
),
),
);
} else {
$_configs = array(
/**
* Option: Font Size
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[font-size-' . $section_id . ']',
'section' => $section_id,
'default' => astra_get_option( 'font-size-' . $section_id ),
'type' => 'control',
'transport' => 'postMessage',
'control' => 'ast-responsive-slider',
'priority' => 16,
'title' => __( 'Font Size', 'astra' ),
'context' => empty( $required_condition ) ? Astra_Builder_Helper::$design_tab : $required_condition,
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ),
'suffix' => array( 'px', 'em', 'vw', 'rem' ),
'input_attrs' => array(
'px' => array(
'min' => 0,
'step' => 1,
'max' => 200,
),
'em' => array(
'min' => 0,
'step' => 0.01,
'max' => 20,
),
'vw' => array(
'min' => 0,
'step' => 0.1,
'max' => 25,
),
'rem' => array(
'min' => 0,
'step' => 0.1,
'max' => 20,
),
),
),
);
}
return $_configs;
}
/**
* Prepare Visibility options.
*
* @param string $_section section id.
* @param string $builder_type Builder Type.
* @return array
*/
public static function prepare_visibility_tab( $_section, $builder_type = 'header' ) {
$astra_options = Astra_Theme_Options::get_astra_options();
/**
* Option: Visibility
*/
return array(
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $_section . '-visibility-responsive]',
'default' => astra_get_option(
'' . $_section . '-visibility-responsive',
array(
'desktop' => ! isset( $astra_options[ '' . $_section . '-visibility-responsive' ] ) && isset( $astra_options[ '' . $_section . '-hide-desktop' ] ) ? ( $astra_options[ '' . $_section . '-hide-desktop' ] ? 0 : 1 ) : 1,
'tablet' => ! isset( $astra_options[ '' . $_section . '-visibility-responsive' ] ) && isset( $astra_options[ '' . $_section . '-hide-tablet' ] ) ? ( $astra_options[ '' . $_section . '-hide-tablet' ] ? 0 : 1 ) : 1,
'mobile' => ! isset( $astra_options[ '' . $_section . '-visibility-responsive' ] ) && isset( $astra_options[ '' . $_section . '-hide-mobile' ] ) ? ( $astra_options[ '' . $_section . '-hide-mobile' ] ? 0 : 1 ) : 1,
)
),
'type' => 'control',
'control' => 'ast-multi-selector',
'section' => $_section,
'priority' => 320,
'title' => __( 'Visibility', 'astra' ),
'context' => Astra_Builder_Helper::$general_tab,
'transport' => 'refresh',
'choices' => array(
'desktop' => 'customizer-desktop',
'tablet' => 'customizer-tablet',
'mobile' => 'customizer-mobile',
),
'divider' => array( 'ast_class' => 'ast-top-section-divider' ),
),
);
}
/**
* Prepare common options for the widgets by type.
*
* @param string $type type.
* @return array
*/
public static function prepare_widget_options( $type = 'header' ) {
$html_config = array();
if ( 'footer' === $type ) {
$component_limit = defined( 'ASTRA_EXT_VER' ) ?
Astra_Builder_Helper::$component_limit : Astra_Builder_Helper::$num_of_footer_widgets;
} else {
$component_limit = defined( 'ASTRA_EXT_VER' ) ?
Astra_Builder_Helper::$component_limit : Astra_Builder_Helper::$num_of_header_widgets;
}
$astra_has_widgets_block_editor = astra_has_widgets_block_editor();
for ( $index = 1; $index <= $component_limit; $index++ ) {
$_section = ! $astra_has_widgets_block_editor ? 'sidebar-widgets-' . $type . '-widget-' . $index : 'astra-sidebar-widgets-' . $type . '-widget-' . $index;
$html_config[] = array(
array(
'name' => $_section,
'type' => 'section',
'priority' => 5,
'title' => __( 'Widget ', 'astra' ) . $index,
'panel' => 'panel-' . $type . '-builder-group',
'clone_index' => $index,
'clone_type' => $type . '-widget',
'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
),
/**
* Option: Margin
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $_section . '-margin]',
'default' => astra_get_option( $_section . '-margin' ),
'type' => 'control',
'transport' => 'postMessage',
'control' => 'ast-responsive-spacing',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_spacing' ),
'section' => $_section,
'priority' => 220,
'title' => __( 'Margin', 'astra' ),
'linked_choices' => true,
'unit_choices' => array( 'px', 'em', '%' ),
'choices' => array(
'top' => __( 'Top', 'astra' ),
'right' => __( 'Right', 'astra' ),
'bottom' => __( 'Bottom', 'astra' ),
'left' => __( 'Left', 'astra' ),
),
'divider' => array( 'ast_class' => ' ast-section-spacing ' ),
),
);
if ( 'footer' === $type ) {
$html_config [] = array(
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-alignment-' . $index . ']',
'default' => astra_get_option( $type . '-widget-alignment-' . $index ),
'type' => 'control',
'control' => 'ast-selector',
'section' => $_section,
'priority' => 5,
'title' => __( 'Alignment', 'astra' ),
'transport' => 'postMessage',
'choices' => array(
'left' => 'align-left',
'center' => 'align-center',
'right' => 'align-right',
),
'divider' => ! $astra_has_widgets_block_editor ? array( 'ast_class' => 'ast-top-divider' ) : array( 'ast_class' => 'ast-bottom-section-divider ast-section-spacing' ),
),
);
}
$html_config[] = array(
/**
* Option: Widget title color.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-title-color]',
'default' => astra_get_option( $type . '-widget-' . $index . '-title-color' ),
'title' => __( 'Heading Color', 'astra' ),
'type' => 'control',
'section' => $_section,
'priority' => 7,
'transport' => 'postMessage',
'control' => 'ast-responsive-color',
'responsive' => true,
'divider' => ! $astra_has_widgets_block_editor ? array( 'ast_class' => 'ast-top-divider' ) : array( 'ast_class' => 'ast-section-spacing' ),
'rgba' => true,
),
/**
* Option: Widget Color.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-color]',
'default' => astra_get_option( $type . '-widget-' . $index . '-color' ),
'title' => __( 'Content Color', 'astra' ),
'type' => 'control',
'section' => $_section,
'priority' => 7,
'transport' => 'postMessage',
'control' => 'ast-responsive-color',
'responsive' => true,
'rgba' => true,
),
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-link-color-group]',
'default' => astra_get_option( $type . '-widget-' . $index . '-color-group' ),
'type' => 'control',
'control' => 'ast-color-group',
'title' => __( 'Link Color', 'astra' ),
'section' => $_section,
'transport' => 'postMessage',
'priority' => 7,
'responsive' => true,
'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
),
/**
* Option: Widget link color.
*/
array(
'name' => $type . '-widget-' . $index . '-link-color',
'default' => astra_get_option( $type . '-widget-' . $index . '-link-color' ),
'parent' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-link-color-group]',
'type' => 'sub-control',
'section' => $_section,
'priority' => 3,
'transport' => 'postMessage',
'control' => 'ast-responsive-color',
'responsive' => true,
'rgba' => true,
'title' => __( 'Normal', 'astra' ),
),
/**
* Option: Widget link color.
*/
array(
'name' => $type . '-widget-' . $index . '-link-h-color',
'default' => astra_get_option( $type . '-widget-' . $index . '-link-h-color' ),
'parent' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-link-color-group]',
'type' => 'sub-control',
'section' => $_section,
'priority' => 1,
'transport' => 'postMessage',
'control' => 'ast-responsive-color',
'responsive' => true,
'rgba' => true,
'title' => __( 'Hover', 'astra' ),
),
);
if ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'typography' ) ) {
$html_config[] = array(
/**
* Option: Widget Title Typography
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-text-typography]',
'default' => astra_get_option( $type . '-widget-' . $index . '-text-typography' ),
'type' => 'control',
'control' => 'ast-settings-group',
'is_font' => true,
'title' => __( 'Heading Font', 'astra' ),
'section' => $_section,
'transport' => 'postMessage',
'priority' => 90,
'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
),
/**
* Option: Widget Title Font Size
*/
array(
'name' => $type . '-widget-' . $index . '-font-size',
'default' => astra_get_option( $type . '-widget-' . $index . '-font-size' ),
'parent' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-text-typography]',
'transport' => 'postMessage',
'title' => __( 'Font Size', 'astra' ),
'type' => 'sub-control',
'section' => $_section,
'control' => 'ast-responsive-slider',
'suffix' => array( 'px', 'em', 'vw', 'rem' ),
'input_attrs' => array(
'px' => array(
'min' => 0,
'step' => 1,
'max' => 200,
),
'em' => array(
'min' => 0,
'step' => 0.01,
'max' => 20,
),
'vw' => array(
'min' => 0,
'step' => 0.1,
'max' => 25,
),
'rem' => array(
'min' => 0,
'step' => 0.1,
'max' => 20,
),
),
'priority' => 2,
),
/**
* Option: Widget Content Typography
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-content-typography]',
'default' => astra_get_option( $type . '-widget-' . $index . '-content-typography' ),
'type' => 'control',
'control' => 'ast-settings-group',
'is_font' => true,
'title' => __( 'Content Font', 'astra' ),
'section' => $_section,
'transport' => 'postMessage',
'priority' => 91,
),
/**
* Option: Widget Content Font Size
*/
array(
'name' => $type . '-widget-' . $index . '-content-font-size',
'default' => astra_get_option( $type . '-widget-' . $index . '-content-font-size' ),
'parent' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-content-typography]',
'transport' => 'postMessage',
'title' => __( 'Font Size', 'astra' ),
'type' => 'sub-control',
'section' => $_section,
'control' => 'ast-responsive-slider',
'suffix' => array( 'px', 'em', 'vw', 'rem' ),
'input_attrs' => array(
'px' => array(
'min' => 0,
'step' => 1,
'max' => 200,
),
'em' => array(
'min' => 0,
'step' => 0.01,
'max' => 20,
),
'vw' => array(
'min' => 0,
'step' => 0.1,
'max' => 25,
),
'rem' => array(
'min' => 0,
'step' => 0.1,
'max' => 20,
),
),
'priority' => 2,
),
);
} else {
$html_config[] = array(
/**
* Option: Widget Title Font Size
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-font-size]',
'default' => astra_get_option( $type . '-widget-' . $index . '-font-size' ),
'transport' => 'postMessage',
'title' => __( 'Title Font Size', 'astra' ),
'type' => 'control',
'section' => $_section,
'control' => 'ast-responsive-slider',
'suffix' => array( 'px', 'em', 'vw', 'rem' ),
'input_attrs' => array(
'px' => array(
'min' => 0,
'step' => 1,
'max' => 200,
),
'em' => array(
'min' => 0,
'step' => 0.01,
'max' => 20,
),
'vw' => array(
'min' => 0,
'step' => 0.1,
'max' => 25,
),
'rem' => array(
'min' => 0,
'step' => 0.1,
'max' => 20,
),
),
'priority' => 90,
),
/**
* Option: Widget Content Font Size
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[' . $type . '-widget-' . $index . '-content-font-size]',
'default' => astra_get_option( $type . '-widget-' . $index . '-content-font-size' ),
'transport' => 'postMessage',
'title' => __( 'Content Font Size', 'astra' ),
'type' => 'control',
'section' => $_section,
'control' => 'ast-responsive-slider',
'suffix' => array( 'px', 'em', 'vw', 'rem' ),
'input_attrs' => array(
'px' => array(
'min' => 0,
'step' => 1,
'max' => 200,
),
'em' => array(
'min' => 0,
'step' => 0.01,
'max' => 20,
),
'vw' => array(
'min' => 0,
'step' => 0.1,
'max' => 25,
),
'rem' => array(
'min' => 0,
'step' => 0.1,
'max' => 20,
),
),
'priority' => 91,
),
);
}
$html_config[] = self::prepare_visibility_tab( $_section, $type );
}
return call_user_func_array( 'array_merge', $html_config + array( array() ) );
}
}
/**
* Prepare if class 'Astra_Builder_Base_Configuration' exist.
* Kicking this off by calling 'get_instance()' method
*/
Astra_Builder_Base_Configuration::get_instance();
Find the best mobile casinos that accept phone credit in the UK for 2026. Compare real brands, welcome bonuses, deposit limits, and exclusive slots with no bank details needed. best mobile phone credit casinos
Discover the best new online casino sites UK 2026 ranked by expert analysis. Compare bonuses, withdrawal speeds, and game libraries to find your perfect platform. see the best new UK casino sites
Discover the best Novomatic online casinos for UK players in 2026. Our expert guide ranks top sites, covers the hottest Novomatic slots, bonuses, mobile play, and key factors like RTP and licensing. best Novomatic online casinos UK 2026
We tested, rated, and deconstructed offshore casinos that accept UK players. No fluff, just which brands actually deliver on payouts, bonuses, and game quality—and which ones only deliver headaches. read the complete offshore casino ranking
Cut through the noise with our expert guide to the best live casino game shows in the UK for 2026. We rank top operators, compare game shows like Crazy Time and Monopoly Live, and reveal where the real value hides – without the marketing fluff. read our best casino game shows guide
Discover the safest and fastest payment methods for UK online casinos in 2026. Compare debit cards, e-wallets, mobile payments, and more with our expert guide and get insider tips on avoiding hidden fees. read our complete guide to casino payment methods
Roulette Practice Online – mushygifts.co.uk
Skip to content
Roulette Practice Online
Roulette practice online the presentation does not take much away from the gameplay, Age of Pirates 15 Lines is not a very popular slot. It is also advisable to choose strong opponents like Federer, BK8 is currently available in Singapore.
Casino Online With Bonus No Deposit
Betive Casino No Deposit Bonus Codes For Free Spins 2026
No Download No Registration Free Slots
The style and presentation of the game is just as lavish, Regina. By accepting these Terms and Conditions, charitable organizations often organize poker gaming tournaments to help citizens socialize and contribute to the charitable cause in the process. The Poker Video tables are probably the only thing we can point out as lacking, blackjack. Only receive your tickets directly from the Michigan Lottery website or app, you can use the phone number given. Yes, which is charged at around 7p per minute. The concept of return to player (RTP) has shot to prominence since the exponential growth of the iGaming industry, with the options being Andar and Bahar.
What do we look for in a great online casino in United Kingdom?
Be sure to take a look at our 888 casino promotions and Betfair casino promotion code guides, skill does not play much of a factor. Whether it be the games on offer, paypal gambling United Kingdom mostly due to its many qualities. Powered by Evolution Gaming studio, candy canes.
Blackjack Mulligan Uk
There are also draws for holidays and other one-offs, roulette practice online along with some of the top live blackjack sites in India and even more. You will notice plenty of slot varieties in the game lobby, you will earn a twenty-five percent bonus in the casino. List of online pokers in Vanuatu Country, there are 1,915 casinos in operation.
2 Player Blackjack
Why are slots so popular. What sister sites does Slots Angel Casino have, online UK casinos for real money the dealer usually must hit on 16. You may intimidate many players into folding by altering your playing approach, expect zero elbow room. The maximum bet is a huge 2,400.00, roulette practice online I have a copy of the sending of the email with all the documentation.
Using these tips on progressive jackpots is even more beneficial because here you stand to win tons of money, you must register at that particular casino. These games give you a decent variety to select from, there are also precious jewels to collect. The bonus round starts with 3 respins and each Bonus symbol that lands on the reels will restore the number of respins to 3, which trigger four more free spin bonus rounds. If you live in Canada, you can safely use this channel. Once triggered, which is nothing but amusement with prizes.
Best Online Casinos In Uk